Maison / Tutoriels Windows / 1s remplir la colonne du tableau des valeurs. Quelles méthodes existent et comment rechercher plusieurs valeurs en même temps

1s remplir la colonne du tableau des valeurs. Quelles méthodes existent et comment rechercher plusieurs valeurs en même temps

Afin de prendre en compte l'argent et les biens, différents tableaux sont largement utilisés dans les affaires. Presque chaque document est un tableau.

Un tableau répertorie les marchandises à expédier depuis l'entrepôt. Dans un autre tableau - l'obligation de payer pour ces marchandises.

Par conséquent, dans 1C, le travail avec des tables occupe une place prépondérante.

Les tableaux en 1C sont également appelés "parties de tableau". Les livres de référence, les documents et autres en ont.

La requête renvoie une table à la suite de son exécution, accessible de deux manières différentes.

La première sélection - plus rapide -, l'obtention de lignes à partir de celle-ci n'est possible que dans l'ordre. La seconde consiste à décharger le résultat de la requête dans une table de valeurs, puis à y accéder de manière aléatoire.

//Option 1 - accès séquentiel aux résultats de la requête

// récupère le tableau
Sélection = Query.Execute().Select();
// contourne toutes les lignes du résultat de la requête dans l'ordre
Pendant que la boucle Selection.Next()
Report(Selection.Name);
FinCycle ;

//Option 2 - chargement dans le tableau des valeurs
Query = New Query("SELECT Name FROM Directory.Nomenclature");
// récupère le tableau
Table = Query.Execute().Upload().
// alors nous pouvons aussi contourner toutes les lignes
Pour chaque ligne de la boucle de table
Report(String.Name);
FinCycle ;
//ou accéder arbitrairement aux chaînes
String = Table.Find("Pelle", "Nom");

Une caractéristique importante est que dans la table, qui est obtenue à partir du résultat de la requête, toutes les colonnes seront fortement typées. Cela signifie qu'en demandant le champ Nom à partir de la recherche Nomenclature, vous recevrez une colonne de type Chaîne avec une longueur autorisée ne dépassant pas N caractères.

Tableau sur le formulaire (client lourd)

L'utilisateur travaille avec le tableau lorsqu'il est placé sur le formulaire.

Nous avons discuté des principes de base du travail avec les formulaires dans la leçon sur et dans la leçon sur

Alors, plaçons le tableau sur le formulaire. Pour ce faire, vous pouvez faire glisser le tableau depuis le panneau de configuration. De même, vous pouvez sélectionner le contrôle Form/Insert dans le menu.

Les données peuvent être stockées dans une configuration - vous devez alors sélectionner une partie tabulaire existante (précédemment ajoutée) de l'objet de configuration dont vous modifiez le formulaire.

Cliquez sur le bouton "..." dans la propriété Données. Pour voir la liste des parties tabulaires, vous devez développer la branche Objet.

Lors du choix d'une partie tabulaire, 1C lui-même ajoutera des colonnes au tableau sur le formulaire. Les chaînes saisies par l'utilisateur dans une telle table seront automatiquement enregistrées avec le répertoire/document.

Dans la même propriété Data, vous pouvez entrer un nom arbitraire et sélectionner le type ValueTable.

Cela signifie qu'une table de valeurs arbitraire a été sélectionnée. Il n'ajoutera pas automatiquement de colonnes, il ne sera pas automatiquement enregistré, mais vous pourrez en faire ce que vous voulez.

En faisant un clic droit sur le tableau, vous pouvez ajouter une colonne. Dans les propriétés de la colonne, vous pouvez spécifier son nom (pour référence dans le code 1C), l'en-tête de colonne sur le formulaire, la connexion avec l'attribut de la partie tabulaire (cette dernière - sinon un tableau arbitraire est sélectionné, mais une partie tabulaire).

Dans les propriétés du tableau du formulaire, vous pouvez spécifier si l'utilisateur peut ajouter/supprimer des lignes. Un formulaire plus avancé est la case à cocher ViewOnly. Ces propriétés sont utiles pour organiser des tables destinées à afficher des informations, mais pas à éditer.

Pour gérer la table, vous devez afficher le panneau de commande sur le formulaire. Sélectionnez l'élément de menu Formulaire/Insérer un panneau de contrôle/commande.

Dans les propriétés de la barre de commandes, cochez la case Autocomplete pour que les boutons de la barre d'outils apparaissent automatiquement.

Tableau sur formulaire (client léger/managé)

Sur un formulaire géré, ces actions semblent un peu différentes. Si vous devez placer une section tabulaire sur le formulaire, développez la branche Objet et faites glisser l'une des sections tabulaires vers la gauche. Et c'est tout!

Si vous devez placer un tableau de valeurs, ajoutez nouveaux accessoires formulaire et dans ses propriétés spécifier le type - une table de valeurs.

Pour ajouter des colonnes, utilisez le menu du bouton droit de la souris sur cet attribut de formulaire, élément Ajouter une colonne d'attribut.

Ensuite, faites également glisser le tableau vers la gauche.

Pour que le tableau ait une barre de commandes, dans les propriétés du tableau, sélectionnez les valeurs dans la section Utilisation - Position de la barre de commandes.

Exporter un tableau vers Excel

Tout tableau 1C situé sur le formulaire peut être imprimé ou téléchargé sur Excel.

Pour cela, faites un clic droit sur espace libre dans le tableau et sélectionnez Afficher la liste.

Dans un client (léger) géré, des actions similaires peuvent être effectuées à l'aide de l'élément de menu Toutes les actions/Afficher la liste.

La table de valeurs de la plate-forme 1C 8.3 (8.2) est une collection universelle de valeurs qu'un développeur peut utiliser lorsqu'il développement de logiciels pour implémenter leurs algorithmes. En fait, le tableau de valeurs 1C est un ensemble dynamique de valeurs qui ont des colonnes et des colonnes.

Articles sur d'autres collections universelles de valeurs en 1C

Apprendre la programmation en 1C dans un lieu à partir de mon livre "Programmer en 1C en 11 étapes"

  1. Le livre est écrit dans un langage compréhensible et langage clair- pour un débutant.
  2. Apprendre à comprendre l'architecture 1C ;
  3. Vous commencerez à écrire du code en langage 1C ;
  4. Maîtriser les techniques de base de la programmation ;
  5. Consolider les connaissances acquises à l'aide d'un cahier de tâches;

Un excellent guide pour développer dans une application 1C gérée, à la fois pour les développeurs novices et les programmeurs expérimentés.

  1. Langage très accessible et compréhensible
  2. Le livre est envoyé à e-mail V Format PDF. Peut être ouvert sur n'importe quel appareil!
  3. Comprendre l'idéologie d'une application 1C gérée
  4. Apprenez à développer une application gérée ;
  5. Apprendre à concevoir formulaires gérés 1C;
  6. Vous serez en mesure de travailler avec les éléments de base et nécessaires des formulaires gérés
  7. La programmation sous une application gérée deviendra claire

Code promotionnel pour une remise de 15% - 48PVXHeYu


Si cette leçon vous a aidé à résoudre un problème, l'a aimée ou vous a été utile, vous pouvez soutenir mon projet en transférant n'importe quel montant :

peut être payé manuellement :

Yandex.Money — 410012882996301
Argent Web - R955262494655

Rejoignez mes groupes.

Voici un petit fait pour commencer - exemples simples travailler avec un tableau de valeurs :

1. Créer un tableau de valeurs

Table de valeurs = Nouvelle table de valeurs ;


2. Créez les colonnes du tableau des valeurs :

ValueTable.Columns.Add("Nom");
ValueTable.Columns.Add("Nom de famille");


3. Ajoutez de nouvelles lignes en utilisant les noms de colonne :


NewString.Name = "Vasily" ;
NewRow.LastName = "Pupkin" ;


4. Comment rechercher une valeur dans la table des valeurs :
Il est nécessaire de trouver une ligne de tableau contenant la valeur souhaitée.

FoundString = ValueTable.Find(LookupValue);


5. Trouver la première occurrence dans certaines colonnes d'un tableau de valeurs

FoundString = ValueTable.Find(LookupValue, "Fournisseur, Acheteur");


6. Si vous avez besoin de rechercher toutes les occurrences dans le tableau des valeurs :
Nous utilisons la structure de recherche.

SearchStructure = Structure("Employé", LookupValue);
ArrayFoundStrings = ValueTable.FindStrings(SearchStructure);


Créons une structure de recherche dont chaque élément contiendra le nom de la colonne comme clé et la valeur recherchée dans cette colonne comme valeur. Nous passons la structure de recherche en tant que paramètre à la méthode FindStrings(). En conséquence, nous obtenons les lignes du tableau.
Si nous ajoutons la recherche de la valeur souhaitée à la structure de recherche, par exemple également dans la colonne Responsable, à la suite de l'application de la méthode FindRows(), nous obtiendrons toutes les lignes où Employé et Responsable sont égaux à la valeur souhaitée.

7. Comment parcourir une table de valeurs dans un ordre aléatoire

Pour chaque boucle CurrentRow de ValueTable
Rapport(CurrentLine.Name);
FinCycle ;

Faites de même en utilisant les index :

SeniorIndex = ValueTable.Count() - 1 ;
Pour MF = 0 par SeniorIndex Cycle
Report(ValueTable[Count].Name);
FinCycle ;


8. Suppression d'une ligne de table de valeurs existante

ValueTable.Delete(RemoveRow);

par indice

ValeurTable.Delete(0);


9. Supprimer une colonne existante du tableau des valeurs

ValueTable.Columns.Delete(RemoveColumn);


par indice

ValueTable.Columns.Delete(0);

Il faut tenir compte du fait que la suppression d'une ligne (ou d'une colonne) "du milieu" du tableau des valeurs entraînera une diminution de l'un des index des lignes qui étaient "après" la suppression

10. Comment remplir le tableau des valeurs si les noms de colonnes sont contenus dans des variables ?

NouvelleLigne = ValueTable.Add();
NouvelleLigne[NomColonne] = Valeur ;


11. Comment remplir toute la colonne du tableau des valeurs avec la valeur souhaitée ?
La colonne FiscalAccounting Flag dans la table des valeurs de la table des valeurs doit être remplie avec la valeur False

ValueTable.FillValue(False, "Indicateur de comptabilité fiscale");


Nous utilisons la méthode FillValues() pour le tableau des valeurs. Le premier paramètre est la valeur à remplir. Le deuxième paramètre est le nom de la colonne remplie.

12. Comment remplir la table de valeurs "TableRecipient" avec les données de la table de valeurs "SourceTable" ?

Si la table réceptrice n'existe pas encore au moment de l'opération, ou si ses colonnes précédentes n'ont pas besoin d'être enregistrées, vous pouvez la créer comme une copie complète de l'original

TableReceiver = TableOriginal.Copy();


Deuxième option : la table TableReceiver existe, et il est dommage de perdre ses colonnes et ses restrictions sur les types de données des colonnes. Mais vous devez remplir les données des colonnes dont les noms correspondent aux noms de la table source.

Transfert de données partiel pour les colonnes avec des noms correspondants :

Pour chaque ligne de SourceTable à partir de la boucle SourceTable
FillPropertyValues(NewString, SourceTableString);
FinCycle


Pour chaque ligne de la table source, une nouvelle ligne est ajoutée à la table de destination et les valeurs sont renseignées dans les colonnes de la nouvelle table dont les noms correspondent aux noms des colonnes de la table source

Si les tables n'ont pas de colonnes portant le même nom, la table destination se retrouvera avec autant de lignes avec des valeurs nulles qu'il y avait de lignes dans la table source.
Si pour certaines colonnes du même nom, le type de valeur de données de la table source ne tombe pas dans le tableau des types autorisés de la colonne de la table de destination, nous obtiendrons des valeurs vides dans ces champs.
Considérons le troisième cas. Dans le cas de colonnes de même nom, la colonne de la table destination doit être mise en parfaite conformité avec la colonne de la table source.

Copie complète des données pour les colonnes avec des noms correspondants

SimilarColumns = Nouveau tableau();

Pour chaque colonne de la boucle SourceTable.Columns
MatchingColumn = TableReceiver.Columns.Find(Column.Name);

Si la colonne correspond<>Indéfini Alors

// Récupère les propriétés de la colonne.
Nom = Colonne.Nom ;
ValueType = Colonne.ValueType ;
Titre = Colonne.Titre ;
Largeur = Colonne.Largeur ;

// Remplace les colonnes dans la table de destination.
Index = TableReceiver.Columns.Index(CoincidentColumn);

TableReceiver.Columns.Delete(Index);
TableReceiver.Columns.Insert(Index, Nom, ValueType, Titre, Largeur);

// Ajoute le nom suivant des colonnes correspondantes au tableau.
Même-nomColumns.Add(Column.Name);

Fin si;

FinCycle ;

// Boucle sur les lignes de la table source.
Pour chaque ligne de SourceTable à partir de la boucle SourceTable

// Ajouter nouvelle ligne au tableau de destination.
NouvelleChaîne = TableReceiver.Add();

// Remplissez les valeurs dans les cellules correspondantes.
Pour chaque NameColumns Of Same NameColumns Loop
NouvelleChaîne[ColumnName] = SourceTableString[ColumnName] ;

FinCycle ;

FinCycle ;


Nous devrons remplacer la colonne de la table de destination par une nouvelle, dont les propriétés correspondront parfaitement à la colonne de la table source.
Ainsi, si une colonne du même nom est trouvée dans la table des destinataires, nous collectons dans des variables toutes les propriétés de la nouvelle colonne. Ensuite, supprimez l'ancien et créez une nouvelle colonne. Ensuite, nous parcourons les lignes de la table source.
Dans la boucle, nous ajoutons une nouvelle ligne à la table des destinataires et ouvrons une boucle à travers les noms des colonnes dans le tableau des colonnes correspondantes.
A l'intérieur de cette boucle imbriquée, nous remplissons les cellules de la table destinataire avec les données de la cellule de la table source.

13. Comment ajouter des colonnes au tableau des valeurs "Table of Values" avec des restrictions de type ?

Lors de l'ajout d'une colonne, vous pouvez simplement spécifier son nom, et ne pas toucher au deuxième paramètre de la méthode Add(). Dans ce cas, le type de données de la colonne est arbitraire.

Ajouter une colonne sans spécifier de type de données

// Ajoute une colonne sans restriction de type.
ValueTable.Columns.Add("Objet");


Vous pouvez renseigner la valeur du deuxième paramètre. Il faut y passer une description du type autorisé pour la colonne. La description elle-même peut être obtenue à l'aide du constructeur, en passant le nom de chaîne du type en tant que paramètre (s'il existe plusieurs types, puis séparés par des virgules) ou un tableau de types valides.

Ajout d'une colonne spécifiant le type de données

// Restrictions sur les types de données de colonne :
// Uniquement les éléments du répertoire "Entrepreneurs".
ValueTable.Columns.Add("Account",NewTypeDescription("ReferenceReference.Accounts"));


S'il existe une chaîne parmi les types autorisés pour remplir les données de la colonne, vous pouvez limiter sa profondeur de bits (longueur), spécifier l'utilisation d'une longueur variable ou fixe. Tout cela est fourni en créant un objet à l'aide du constructeur StringQualifiers. De plus, cet objet sera utilisé comme l'un des paramètres du constructeur TypeDescription.

Utilisation de qualificateurs pour spécifier le type de données d'une colonne de table de valeurs

// Préparer et définir des limites pour les données de type String.
Qualificateurs de chaîne = Nouveaux qualificatifs de chaîne (20, ValidLength.Variable);
AllowedTypes = NewTypeDescription("String",StringQualifiers);
ValueTable.Columns.Add("NoteStringShort", ValidTypes);


Vous pouvez faire de même pour les qualificateurs de nombre et de date.
Remarque : la description de type peut être construite par le constructeur "à partir de zéro", et vous pouvez utiliser une description de type existante comme base

Utilisation de déclarations de type existantes pour spécifier le type de données d'une colonne de table de valeurs

// Extension de la description des types précédemment utilisée.
Qualificateurs de nombre = Nouveaux qualificatifs de nombre (10, 2, ValidSign.Non-negative);
DateQualifiers = Nouveaux DateQualifiers(DateParts.Date);
ExtendedValidTypes = NewTypeDescription(ValidTypes, "Number, Date",NumberQualifiers,DateQualifiers);

ValueTable.Columns.Add("Remarque", ExtendedAllowedTypes);

Rechercher dans le tableau des valeurs 1C

Quelles méthodes existent et comment rechercher plusieurs valeurs en même temps.

Il existe deux méthodes spéciales pour rechercher une table de valeurs :

1. Trouver

TVHorizon = Répertoires.Nomenclature.FindBy Name("Horizon TV");
FoundString = TZNomenclature.Find(TVHorizon);
// nous pouvons également spécifier dans quelles colonnes rechercher pour accélérer la recherche
FoundString = TKNomenclature.Find(TVHorizon, "Nomenclature");

Cette méthode renvoie la première chaîne trouvée avec la valeur que vous recherchez, ou Undefined si elle ne la trouve pas. Par conséquent, il est pratique de l'utiliser pour rechercher valeurs uniques, parce que sinon, lors de la recherche d'une valeur, vous devrez la supprimer de la table afin de trouver la suivante.

Pour ne pas souffrir comme ça, il existe la méthode suivante, qui permet de trouver un tableau de chaînes convenables :

2. Trouver des chaînes


Sélection Structure.Insert("Nomenclature", TVHorizon); // nous spécifions d'abord la colonne où rechercher, puis ce qu'il faut rechercher.

Cette méthode renvoie toujours un tableau, mais il peut être vide si rien n'est trouvé. Et cette méthode, comme la précédente, renvoie les lignes du tableau des valeurs elles-mêmes, et non les valeurs elles-mêmes dans un tableau séparé. Par conséquent, en modifiant les valeurs dans la ligne du tableau ou, comme dans la méthode précédente, pour la ligne trouvée, vous modifierez la valeur dans le tableau de valeurs traité.

Ce qui est bien avec cette méthode, c'est qu'elle peut rechercher plusieurs colonnes de la table de valeurs à la fois :


SelectionStructure = Nouvelle structure ;
Sélection Structure.Insert("Nomenclature", TVHorizon);
Sélection Structure.Insert("Quantité", 10);
FoundStringArray = TKNomenclature.FindStrings(SelectionStructure);

Le seul point négatif, comme vous pouvez le voir, vous ne pouvez pas utiliser d'autres types de comparaison autre que "égal"

Une table de valeurs est un objet générique spécifique conçu pour stocker des données dans une vue tabulaire. La principale différence entre une table et les objets d'application est qu'elle n'est pas liée aux tables de base de données physiques. La table des valeurs n'existe que dans mémoire vive, ce qui donne d'une part opportunités uniques En revanche, il impose certaines restrictions. Néanmoins, les possibilités d'interaction avec une table sont comparables à l'interaction avec des objets qui existent réellement dans la base de données.

Historiquement, le tableau des valeurs en 1C a un double objectif, étant un analogue virtuel des tableaux existants, mais en même temps - et un élément de contrôle. Avec la transition vers une application gérée, la plupart de ces fonctionnalités sont devenues obsolètes, mais même maintenant, il peut également s'agir d'un élément d'interface utilisateur, mais avec un certain nombre de limitations importantes.

Structure du tableau de valeurs en tant qu'objet

Les propriétés d'une table de valeurs sont définies par des combinaisons de deux collections prédéfinies : ses colonnes et ses lignes.

Tableau des valeurs Colonnes

La colonne de la table de valeurs est sa propriété de définition. C'est l'ensemble des colonnes d'une table qui détermine sa structure. Les colonnes correspondent à des champs dans des tables physiques ou à des colonnes d'interface utilisateur familières dans une section tabulaire ou un journal de documents. Une colonne peut avoir un nom interne, un type de valeur et un en-tête qui s'affiche lors de l'interaction avec la table.

Comme les colonnes sont des collections d'objets, vous pouvez ajouter, supprimer et modifier des colonnes.

Ligne du tableau des valeurs

Du point de vue de l'interface du programme, les chaînes sont une collection distincte intégrée dans une table de valeurs. Ils sont analogues aux enregistrements de tables physiques, c'est-à-dire aux lignes d'une partie tabulaire ou d'un journal de documents familiers à l'utilisateur. Chaque ligne individuelle est un objet avec un ensemble de propriétés nommées dont les noms correspondent aux noms des colonnes de la table.

Ainsi, interagir avec une chaîne est très similaire à interagir avec d'autres objets. Vous pouvez lire et écrire ses propriétés, y compris en utilisant la fonction prédéfinie "FillPropertyValues()". Puisque les lignes sont la collection principale du tableau de valeurs, la méthode "Clear()" est utilisée pour supprimer toutes les lignes du tableau.

Créer un tableau de valeurs

Il existe de nombreuses façons d'obtenir une table de valeurs prête à l'emploi. Considérons certains d'entre eux. Chaque exemple sera fourni sous forme de listes de codes avec des commentaires.

Créer une table avec un constructeur

La méthode principale, qui vous permet de créer exactement le type de table dont le développeur a besoin, est malheureusement la plus longue, car elle vous oblige à spécifier manuellement toutes les propriétés nécessaires de la table.

DemoTable = Nouvelle table de valeurs ; // Tout d'abord, nous initialisons le TK // Ensuite, nous définissons les paramètres nécessaires pour les nouvelles colonnes et les ajoutons à la collection // Création de la colonne "Nomenclature" Name = "Nomenclature"; ValueType = New TypeDescription("ReferenceReference.Nomenclature"); Titre = "Nomenclature (article)" ; DemoTable.Columns.Add(Nom, ValueType, Titre); // Création de la colonne "Montant" Nom = "Montant" ; ValueType = NewTypeDescription("Numéro"); DemoTable.Columns.Add(Nom, ValueType); // Suite à ces manipulations, nous avons créé une table vide avec des colonnes typées // Si vous avez besoin d'utiliser un typage plus précis des types primitifs, alors vous devez utiliser la syntaxe étendue du constructeur "TypeDescription"

Création d'un tableau par copie

Si vous disposez d'une référence avec une structure et/ou une composition appropriée, vous pouvez copier ou télécharger le tableau des valeurs de référence. Si la référence est une autre table, alors vous devez appliquer la méthode "Copier la table de référence". Si vous avez affaire à partie tabulaire ou un ensemble d'enregistrements de registre, vous devez utiliser la méthode "Décharger table de valeurs". Si vous n'avez besoin que de la structure, vous pouvez utiliser la méthode "CopyColumns".

// Variante avec copie de toutes les lignes du standard TK mais avec sauvegarde de seulement deux colonnes spécifiées Colonnes de référence = "Nomenclature, Quantité" ; DemoTable = TableReference.Copy(, ColumnsReference); // Variante avec copie des lignes préalablement sélectionnées à partir du standard TK, tout en préservant les deux colonnes spécifiées. Colonnes de référence = "Nomenclature, Quantité" ; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); // Option avec copie des lignes de la norme TK selon le filtre spécifié, tout en conservant une colonne "Nomenclature" // Toutes les lignes seront sélectionnées lorsque la valeur dans la colonne Quantité est 0, seule la colonne Nomenclature sera incluse dans le tableau résultant Sélection de ligne = Nouvelle structure("Quantité", 0); Colonnes de référence = "Nomenclature" ; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); // Variante avec copie complète de la table et suppression ultérieure d'une ligne avec la valeur du champ de quantité égale à zéro et suppression de toute la colonne "Number" RowSelection = New Structure("Number", 0); Colonnes de référence = "Nomenclature" ; DemoTable = TableReference.Copy(RowsReference, ColumnsReference); TableString = DemoTable.Find(0, "Count"); DemoTable.Delete(TableString); DemoTable.Columns.Delete("Quantité"); // Des options similaires et leurs modifications peuvent être appliquées à parties tabulaires et enregistrer des ensembles d'enregistrements

Créer une table avec une requête

Si la base de données a un modèle pour la table dont vous avez besoin, vous pouvez utiliser une requête pour créer rapidement une table avec la structure souhaitée.

// Un exemple de création d'une table vide suivant la structure du registre d'accumulation // Il est facile de deviner que de cette façon, vous pouvez également obtenir la table remplie Request = New Request("SELECT FIRST 0 * From Accumulation Register. Goods in Warehouse"); QueryResult = Query.Execute(); DemoTable = QueryResult. Upload(); // Un exemple avec la création d'une table vide par des types et des noms de champ explicitement spécifiés Query = New Query; Query.Text = "SELECT FIRST 0 | Value(Catalog.Nomenclature.NullReference) AS Nomenclature, | EXPRESS(0 AS NUMBER(15, 3)) AS Quantity" ; QueryResult = Query.Execute(); DemoTable = QueryResult. Upload(); // IMPORTANT! N'oubliez pas que le type Null est toujours présent dans les types de valeur de colonne obtenus à partir de la requête // Ainsi, la MT créée par la requête a toujours des types de colonne composites

Conclusion

Dans ce court article, nous avons couvert les propriétés de base et les techniques pratiques pour créer une table de valeurs, suffisamment pour comprendre et commencer à utiliser. L'objet de table de valeurs lui-même est si multiforme que Description détaillée ses capacités nécessitent la rédaction d'un article séparé sur les techniques et les méthodes de travail.