Liste des valeurs élément 1c. Structure de la collection universelle

Syntaxe complète(Cliquez pour agrandir)

ListeValeurs

Description:

Une liste de valeurs est un objet qui n'est pas enregistré dans la base de données, qui permet de construire des ensembles dynamiques de valeurs pour résoudre des problèmes d'interface et les manipuler (ajouter, modifier, supprimer des éléments, trier). Il peut être rempli de valeurs de tout type, c'est-à-dire Dans une liste, les types de valeurs stockées peuvent être différents. Un exemple d'utilisation de cet objet consiste à organiser la sélection d'un document spécifique parmi une liste de documents possibles générée à l'aide d'un algorithme complexe.

Objets de collection : ÉlémentListeValeur

Il est possible qu'un objet contourne la collection à l'aide de l'opérateur Pour chaque... De... Cycle. Le parcours sélectionne les éléments de la collection.

Il est possible d'accéder à un élément de collection à l'aide de l'opérateur [...]. L'index de l'élément est passé en argument ( numérotation à partir de 0).

Propriétés:

Méthodes :

Insérer (Index, Valeur, Représentation, Étiquette, Image) Insère un nouvel élément dans la liste de valeurs à la position à l'index spécifié.SelectItem (Titre, Article) Appelle une fenêtre pour sélection interactive l'un des éléments inclus dans la liste de valeurs. Élément- l'élément sur lequel la liste de valeurs doit initialement être positionnée lors de la sélection interactive. Si la valeur du paramètre n'est pas un élément de liste de valeurs inclus dans cette liste, le positionnement ne se produira pas.Décharger les valeurs()Crée un tableau et y copie les valeurs de la liste des éléments de valeurs.Ajouter(Valeur, Représentation, Étiquette, Image)Ajoute un nouvel élément à la fin de la liste de valeurs.ChargerValeurs(ArrayValues)Charge une liste de valeurs avec les valeurs du tableau transmis. Dans ce cas, tous les éléments précédents de la liste sont supprimés.Remplir les notes(Marque) Définit une marque pour tous les éléments de la liste de valeurs.Index(Element)Obtient l'index d'un élément dans une liste de valeurs. S'il n'est pas trouvé, alors -1 est renvoyé.Count() Obtient le nombre d'éléments dans la liste de valeurs.Rechercher par valeur(SearchValue) Recherche la valeur d'un élément dans une liste de valeurs. Si aucun élément ne stocke une valeur égale à la valeur recherchée, alors la valeur est renvoyée Indéfini. Rechercher par ID(Identifiant)Récupère la liste des valeurs élément par identifiant. Si l'élément n'est pas trouvé, alors il est renvoyé Indéfini. Marquer les éléments(En-tête) Définit ou décoche (de manière interactive) les éléments de la liste de valeurs. Retour Vrai, si le bouton "OK" est enfoncé dans la boîte de dialogue, Mensonge- sinon.Clear() Efface la liste de valeurs, en supprimant tous les éléments.Afficher la sélection d'éléments(DescriptionNotificationsOnClosing, Title, Element) Appelle une fenêtre permettant de sélectionner de manière interactive l'un des éléments inclus dans la liste de valeurs.Afficher les éléments Mark(Description des alertes de clôture, en-tête) Conçu pour définir de manière interactive les états de marquage des éléments de la liste de valeurs.Get(Index)Récupère la valeur par index. Fonctionne de manière similaire à l'opérateur.Shift (Element, Offset) Décale un élément de la liste de valeurs vers l'avant ou vers l'arrière d'un nombre spécifié de positions.Copy() Crée une copie d'une liste de valeurs.Trier par valeur(Direction) Trie une liste de valeurs par ordre croissant ou décroissant des valeurs stockées par les éléments. Voir exemple ci-dessous.Trier par vue(Direction) Trie la liste des valeurs par ordre croissant ou décroissant par ordre alphabétique des représentations des éléments inclus dans la liste de valeurs. Voir exemple ci-dessous.Remove (Element) Supprime un élément d'une liste de valeurs, où Élément- index de l'élément à supprimer, ou de l'élément lui-même.

Concepteurs :

Nouvelle liste de valeurs
&OnClient Procédure ExecuteCode (Commande) /// Comment créer une liste de valeurs en 1s 8.3, 8.2 Liste = Nouvelle liste de valeurs ; /// Comment ajouter un élément à la liste des valeurs en 1s 8.3, 8.2 // ajoute les paramètres de la méthode :// - signification // - performance // - marque (obligatoire) // - image (obligatoire) Liste. Ajouter( 1980, // valeur de l'élément "L'année de naissance de Vasya"// performance ) ; Liste. Ajouter(1985, "L'année de naissance de Yulia") ; // les valeurs peuvent être de différents types Liste. Ajouter("Polina" , "Nom de l'enfant" ) ; /// Comment insérer un élément dans une liste de valeurs en 1s 8.3, 8.2 // insertion en position n°2 (les éléments sont numérotés à partir de 0) // élément avec valeur 2010 et représentation // "L'année de naissance de leur fille commune" Liste. Insérer(2, 2010, "L'année de naissance de leur fille commune") ; /// Comment contourner les éléments de la liste de valeurs en 1s 8.3, 8.2 Pour chaque élément du rapport de boucle de liste (Element. Representation + ": " + String(Element. Value) ) ; Fin du cycle ; /// Comment effacer la liste des valeurs en 1s 8.3, 8.2 Liste. Clair() ; Liste. Ajouter("Lundi"); Liste. Ajouter("Mardi"); Liste. Ajouter("Mercredi" ) ; /// Comment connaître le nombre d'éléments d'une liste de valeurs, ainsi que /// récupère un élément de liste par son index en 1s 8.3, 8.2 // numérotation à partir de zéro Pour Index = 0 Par liste. Quantité() - Rapport sur 1 cycle (Liste[Index]) ; Fin du cycle ; /// Comment trouver un élément de liste par sa valeur en 1s 8.3, 8.2 ValueTuesday = Liste. FindByValue("Mardi"); /// Comment connaître l'index d'un élément dans une liste en 1s 8.3, 8.2 Rapport(Liste.Index(ValueTuesday)) ; // 1, puisque la numérotation commence à zéro /// Comment trier une liste par ses valeurs en 1s 8.3, 8.2 // était : lundi, mardi, mercredi Liste. SortByValue(SortDirection.Descending) ; // est devenu : mercredi, lundi, mardi /// Comment supprimer un élément d'une liste de valeurs en 1s 8.3, 8.2 // supprime le premier élément // paramètre : élément de liste // ou index de l'élément// vous pouvez faire cette liste. Supprimer(Liste[ 0 ]) ; // ou alors // Liste.Delete(0); /// Comment décaler un élément d'une liste de valeurs en 1s 8.3, 8.2 // avance l'élément zéro d'une position // était : lundi mardi Liste. Déplacer(0, 1); // est devenu : mardi lundi /// Comment faire une copie d'une liste en 1s 8 ListCopy = Liste. Copie() ; Couleurs = NewValueList ; Couleurs. Ajouter("Rouge" ) ; Couleurs. Ajouter("Vert" ) ; Couleurs. Ajouter("Bleu" ) ; /// Comment télécharger des valeurs de liste dans un tableau en 1s 8.3, 8.2 ArrayColors = Couleurs. DéchargerValeurs() ; /// Comment charger les valeurs d'une liste à partir d'un tableau en 1s 8.3, 8.2 Couleurs. LoadValues(ArrayColors) ; Fin de la procédure /// Comment faire une sélection non modale d'une valeur dans une liste /// valeurs en 1s 8.3, 8.2&Sur la procédure client Comment effectuer une sélection de valeur non modale (commande) Colors = New ValueList ; Couleurs. Ajouter("Rouge" ) ; Couleurs. Ajouter("Vert" ) ; Couleurs. Ajouter("Bleu" ) ; // la procédure AfterSelectingElement est définie juste en dessous AlertAfterElementSelection = Nouvelles alertes de description ( "Après la sélection d'éléments", CetObjet ) ; Couleurs. ShowElementSelection(NotificationAfterElementSelection, "Choisissez votre couleur préférée") ; Fin de procédure &Sur procédure client Après sélection d'élément (élément, paramètres) Exporter si élément<>Non défini Then Report(Element.Value) ; Fin si ; Fin de la procédure /// Comment faire un marquage non modal des valeurs d'une liste /// valeurs en 1s 8.3, 8.2&Sur la procédure client Comment faire un marquage non modal des valeurs (Commande) Couleurs = Nouvelle liste de valeurs ; Couleurs. Ajouter("Rouge" ) ; Couleurs. Ajouter("Vert" ) ; Couleurs. Ajouter("Bleu" ) ; // la procédure AfterMarkingElements est définie juste en dessous AlertAfterMarkingItems = Nouvelles alertes de description ( "Après le marquage des éléments", CetObjet ) ; Couleurs. ShowTagItems( AlertAfterTagItems, "Choisissez vos couleurs préférées") ; Couleurs. RemplissezNotes(Vrai) ; Fin de procédure &Sur procédure client Après marquage des éléments (Éléments, Paramètres) Exporter si éléments<>Indéfini puis pour chaque couleur du cycle des éléments si couleur. Marquer puis signaler (Color.Value) ; Fin si ; Fin du cycle ; Fin si ; Fin de la procédure /// Comment faire une sélection modale d'une valeur dans une liste en 1s 8.3, 8.2&Sur la procédure client Comment créer une ModalValueSelection(Command) Colors = New ValueList; Couleurs. Ajouter("Rouge" ) ; Couleurs. Ajouter("Vert" ) ; Couleurs. Ajouter("Bleu" ) ; SelectColor = Couleurs. Sélectionner un article( "Choisissez votre couleur préférée") ; Si SélectionnerCouleur<>Non défini puis rapport (SelectColor.Value) ; Fin si ; Fin de la procédure /// Comment marquer modalement les valeurs d'une liste /// valeurs en 1s 8.3, 8.2&Sur la procédure client Comment faire une marque modale de valeurs (Commande) Couleurs = Nouvelle liste de valeurs ; Couleurs. Ajouter("Rouge" ) ; Couleurs. Ajouter("Vert" ) ; Couleurs. Ajouter("Bleu" ) ; Si les couleurs. Marquer les éléments ( "Choisissez vos couleurs préférées") Puis pour chaque couleur du cycle de couleur si couleur. Marquer puis signaler (Color.Value) ; Fin si ; Fin du cycle ; Fin si ; // voici comment définir toutes les marques en même temps // liste une valeur spécifique Couleurs. RemplissezNotes(Vrai) ; Fin de la procédure /// Téléchargez et exécutez ces exemples sur votre ordinateur

De quoi parle l'article?

Cet article poursuit la série d'articles «Premiers pas dans le développement 1C». Il couvre les principes de travail avec les collections universelles. Après avoir lu l'article, vous apprendrez :

  • Que sont les collections universelles, quand et dans quels cas doivent-elles être utilisées ?
  • Quel est le point commun entre toutes les collections universelles ? Quelles techniques pouvez-vous utiliser pour travailler avec chacun d’eux ?
  • Qu’est-ce qu’un tableau, comment et quand l’utiliser ? De quelles méthodes dispose-t-il ?
  • Pourquoi utiliser une structure ? En quoi est-ce différent d’un tableau ?
  • Quand faut-il utiliser une liste de valeurs ? Comment l'afficher sur le formulaire ?
  • Conformité – qu’est-ce que c’est et quand l’utiliser ? Quels sont les avantages en termes de structure ?
  • A quoi sert la table de valeurs ? Comment décrire sa structure ? Comment ajouter/supprimer des lignes ? Comment l'afficher sur le formulaire ?
  • Arbre de valeurs – à quoi sert-il ? Comment remplir et afficher le formulaire ? Comment travailler avec ?

Applicabilité

L'article traite de la plate-forme 1C:Enterprise 8.3 de l'édition actuelle.

Comment travailler avec des collections universelles en 1C

Une collection de valeurs est un conteneur qui peut généralement contenir n'importe quel nombre d'éléments. Cependant, il n’existe souvent aucune restriction stricte quant au type de données.

Vous pouvez ajouter des valeurs à une collection générique. Toutes les valeurs de la collection peuvent être parcourues. Ces collections sont principalement utilisées pour certains types de traitements algorithmiques. Ceux. Voici quelques-uns structures dynamiques, qui existent pendant la durée de l’algorithme.

Il est important de comprendre que les collections ne sont pas stockées dans une base de données (nous ne parlons pas du type de données Value Store, qui peut stocker presque tous les types de données).

Exister différentes sortes collections universelles : Tableau, Structure, Correspondance, Tableau fixe, Table de valeurs, Partie tabulaire etc. Mais toutes les collections ont un comportement similaire.

Une collection peut être créée à la suite du fonctionnement d'une fonction (la fonction renvoie une collection universelle sous forme de valeur).

Disponible nouvelle collection manuellement en accédant au constructeur et en créant une instance de la classe.

Par exemple: OurArray = Nouveau tableau ;

Les constructeurs de nombreuses collections génériques sont paramétrés.

Ainsi, dans le constructeur pour Vous pouvez spécifier le nombre de membres dans les dimensions correspondantes. Ceux. vous pouvez immédiatement déclarer multidimensionnel .

La description correspondante du constructeur se trouve dans l'assistant de syntaxe.

Ainsi, à l'aide des paramètres du constructeur, vous pouvez immédiatement définir le comportement souhaité d'un objet donné.

Mais les paramètres sont facultatifs ; le développeur ne peut pas les définir et définir davantage le comportement du tableau comme bon lui semble.

Presque n'importe quelle collection universelle peut être créée à l'aide d'un constructeur (à l'exception des parties de table, qui agissent comme des objets de configuration).

Pour les collections universelles, il existe de tels concepts généraux, comme l'index et le numéro. Chaque élément de la collection possède un index. Dans ce cas, l'index part de zéro.

Pour accéder à un élément Notre tableau, vous pouvez utiliser l'accès à l'index ; pour cela, l'index est indiqué entre crochets.

Par exemple, Notre tableau. Veuillez noter que dans ce cas, le système renvoie l'élément Array avec l'index 3, et dans l'ordre, il s'agit du quatrième élément du Array.

Pour certaines collections, il existe également la notion de numéro de ligne. Le numéro de ligne commence par un. Par exemple, pour la partie tabulaire, il existe une propriété telle que le numéro de ligne. Il est important de garder à l’esprit que si nous connaissons le numéro de ligne et souhaitons y accéder par index, nous devons alors utiliser une valeur inférieure d’une unité au numéro de ligne comme index.

La notion de numéro de ligne n'existe pas dans toutes les collections, mais principalement dans celles pouvant être affichées dans l'interface utilisateur.

Toutes les collections utilisent le parcours des éléments de collection. Le contournement est possible de deux manières : cycle Pour Et cycle Pour chacun des.

Les méthodes qui s'appliquent à la plupart des collections génériques sont Count, Index, Add, Insert, Delete et Find.

Count est une fonction qui renvoie le nombre d'éléments dans une collection. Il peut être utilisé avant un cycle Pour, comme le montre la figure.

La méthode Index n'existe pas pour toutes les collections, mais uniquement pour celles dont les éléments peuvent être référencés. Un exemple est Tableau des valeurs.

Tableau des valeurs– il s’agit d’une collection spécifique de lignes, les lignes peuvent contenir différentes colonnes avec différents types valeurs.

Chaque ligne représente une entité indépendante. Vous pouvez obtenir un lien vers celui-ci ; grâce à cette ligne, vous pouvez accéder aux valeurs des colonnes de cette ligne.

La méthode Index permet de déterminer quel index correspond à une ligne donnée (c'est-à-dire la position actuelle de la ligne dans le tableau). Les valeurs d'index commencent à zéro.

Méthodes pour ajouter de nouvelles valeurs à cette collection existent dans presque toutes les collections universelles. La figure montre comment remplir un tableau avec des valeurs de 0 à 10 de deux manières.

Pour ajouter un élément au tableau, nous pouvons utiliser la méthode Ajouter, indiquez la valeur à ajouter entre parenthèses. Dans ce cas, la valeur sera ajoutée à la fin de la liste, c'est-à-dire Le tableau augmentera constamment en raison de la dernière position.

Une autre méthode qui vous permet d'ajouter des valeurs à une collection est la Insérer. C'est différent de la méthode Ajouter en ce sens que vous pouvez spécifier où insérer l'élément ajouté.

Syntaxe: Insérer (,)

Le premier paramètre spécifie l'index dans lequel la nouvelle valeur sera insérée. Ceux. par exemple, on peut spécifier que chaque valeur doit être insérée au début de la liste (deuxième méthode dans la figure ci-dessus).

Pour supprimer des éléments d'une collection, utilisez la méthode Supprimer. La méthode Supprimer spécifie par index quel élément nous allons supprimer.

Syntaxe: Supprimer()
Exemple d'utilisation : NotreArray.Delete(5);

Il convient de noter que pour les collections où les chaînes représentent une entité indépendante (par exemple, pour Tableaux de valeurs), on peut également utiliser la méthode d'obtention de l'index afin de supprimer ultérieurement cette ligne.

Presque toutes les collections ont une méthode pour rechercher une valeur - Trouver. La valeur que nous voulons trouver est transmise à la méthode. Certaines collections vous permettent de définir certaines restrictions.

Par exemple, dans Tableau des valeurs vous pouvez spécifier les lignes et les colonnes dans lesquelles vous souhaitez effectuer une recherche.

Si la valeur est trouvée, cette méthode renvoie l'index ou la chaîne spécifiée. Si la valeur n'est pas trouvée, une valeur de type est renvoyée Indéfini. Par rapport à un tableau, renvoie Indice, ou valeur Indéfini.

Exemple d'utilisation : NotreVariable = OurArray.Find(8);

Les collections universelles peuvent être effacées très rapidement, c'est-à-dire supprimez absolument tous les éléments. A cet effet, la méthode est utilisée Clair(), qui supprime les éléments du tableau, les lignes Tableaux de valeurs, ou des données provenant d’autres collections.

Méthodes supplémentaires pour Array

Méthode BBorder() renvoie le nombre d'éléments moins un. Ceux. si on utilise une boucle Pour, alors au lieu de la méthode Quantité, nous pouvons immédiatement utiliser la méthode Frontière().

En particulier, la variable QuantityInArray pourrait être définie différemment :

QuantitéInArray = OurArray.InBorder();
Ensuite, lors de la description du cycle lui-même, il ne faut pas soustraire cette variable.

La méthode Set permet d'attribuer une valeur à un élément du tableau par index.

Syntaxe: Installer(,)

Exemple: NotreArray.Set(2,8);

Option alternative : NotreTableau = 8 ;

Vous pouvez utiliser la méthode pour un tableau Obtenir, pour lire une valeur à un index sans recourir à des crochets.

Syntaxe: Obtenir()

Exemple: NotreVariable = OurArray.Get(2);

Option alternative : NotreVariable = NotreArray;

Structure de la collection universelle

Une Structure, comme un Tableau, peut avoir un nombre illimité d'éléments, mais le contenu de l'élément diffère de celui du Tableau.

La structure est une collection dont chaque valeur est constituée d'une paire. Le premier élément de la paire s’appelle Clé. Le deuxième élément de la paire est Signification.

Clé est un type de données strictement chaîne qui décrit une valeur. Par exemple, À la clé« Code » peut correspondre à la valeur 113 ; À la clé« Nom » signifiant « Vasya ». La valeur elle-même n'est pas soumise à une restriction de type de données.

La structure est très pratique à utiliser si nous voulons créer une certaine liste de paramètres. Si ce Structure appelé NotreStructure, alors nous ferons référence à ses deux valeurs comme suit : OurStructure.Code et OurStructure.Name.

Ce type d'accès est beaucoup plus pratique que si nous définissions tous les paramètres d'un tableau et y accédions par index.

La structure rend le code du programme lisible (compréhensible). Structure est utilisée assez souvent, beaucoup plus souvent que Array.

Il est utilisé pour décrire certains paramètres, qui sont assez souvent un grand nombre de dans tous les algorithmes.

De plus, la Structure est utilisée si la procédure et la fonction contiennent un grand nombre de paramètres passés.

Il est alors beaucoup plus pratique d’écrire tous les paramètres dans la structure et de les transmettre. Ceux. les paramètres des procédures et des fonctions sont « packés ».

Par ailleurs, il convient de noter que, comme Clé Absolument aucune ligne ne peut apparaître dans la structure. Certaines restrictions s'appliquent.

Clé devrait servir d’identifiant. Cela signifie que dans Klyuche il ne doit y avoir aucun espace et il ne peut pas commencer par un chiffre.

Début acceptable Clé avec une lettre ou un trait de soulignement. Ainsi, Clé doit satisfaire aux exigences de création d’identifiants.

Notons en quoi une structure diffère d'un tableau. Il existe une méthode dans la Structure Insérer, il existe deux méthodes d'insertion dans Array : Insérer(à une certaine position) et Ajouter(jusqu'à la fin de la liste). Dans un tableau, tous les éléments sont ordonnés.

La structure est une sorte d’ensemble désordonné. C'est pourquoi il n'existe qu'une méthode insert pour une Structure.

La valeur n'est pas insérée à une position spécifique, mais dans l'ensemble spécifié. Une structure n’est pas accessible par index, comme les autres collections génériques.

Les éléments de structure sont accessibles uniquement par nom de clé. Cependant, la boucle For Each fonctionne également pour la Structure, mais vous ne devez pas vous fier à l'ordre des éléments de la Structure.

Une structure est créée de la même manière que les autres collections génériques en utilisant le constructeur New, en spécifiant le type de données Structure.

Comme un Array, le constructeur d'une Structure peut avoir des paramètres. Ceux. il est possible de décrire le contenu même d'une Structure à l'aide d'un constructeur.

Contrairement à un tableau, où vous pouvez simplement spécifier le nombre d'éléments pour toutes les dimensions, dans une structure, vous pouvez spécifier le contenu lui-même.

Par exemple: NotreStructure = Nouvelle Structure (« Code, Nom », 133, « Vasya »);

Séparés par des virgules, les noms des Clés sont d'abord répertoriés, puis, respectivement, dans le même ordre, les valeurs des paramètres.

Il existe une méthode pour ajouter une nouvelle valeur à la structure Insérer, qui insère une nouvelle paire (Clé et Valeur).

Par exemple: OurStructure.Insert("FamilyMembers",3);

La Structure se caractérise par une autre méthode assez souvent utilisée. C'est la méthode Propriété.

Grâce à cette méthode, vous pouvez comprendre s'il existe un élément dans cette Structure dont la Clé porte tel ou tel nom.

Si un tel élément existe, le système renverra la valeur True, sinon – False.

Par exemple, l'expression OurStructure.Property (« Membres de la famille ») sera égal à la valeur True. Cette méthode est utilisée assez souvent lors de l’analyse de la structure.

Comme pour toute collection universelle, il est possible d'accéder aux propriétés d'une Structure par index. Mais l'index de la structure est une valeur de chaîne.

Par exemple: Rapport (NotreStructure[« Membres de la famille »]);

Cependant, il ne faut pas oublier qu'une Structure est un ensemble d'objets non ordonnés, c'est pourquoi l'accès par index 0, 1, 2 est inacceptable.

Collection générique Liste de valeurs

ListeValeurs est une liste linéaire d'éléments de tout type de données.

Chaque élément est constitué de plusieurs valeurs. Schématiquement, une liste de valeurs peut être représentée comme une liste à quatre colonnes.

Première colonne - Marque. Il a un type de données booléen et permet à l'utilisateur de cocher ou de décocher des cases.

L'autre colonne est une image qui peut d'une manière ou d'une autre représenter visuellement cet élément, c'est-à-dire faites correspondre cette chaîne avec une image.

La troisième colonne est la valeur stockée elle-même, c'est-à-dire il s'agit de n'importe quel type de données, et elles peuvent être différentes selon les lignes.

La quatrième colonne est la présentation, c'est-à-dire c'est une sorte de chaîne de description d'une valeur donnée. La vue sera affichée à l'utilisateur lorsqu'il visualisera cet élément. Dans ce cas, si la représentation n'est pas précisée, le système tentera d'obtenir des représentations pour l'élément contenu dans cette position.

ListeValeurs– c'est l'objet avec lequel l'utilisateur peut travailler visuellement. Ceux. ListeValeurs peuvent être affichés sur le formulaire.

L'utilisateur peut effectuer certaines actions avec. En plus, ListeValeurs peut être déduit indépendamment à l’aide de méthodes, c’est-à-dire afficher à l'écran dans certaines branches de l'algorithme (sauf code du serveur) afin que l'utilisateur sélectionne une ligne ou coche certaines cases.

Nous trouverons ListeValeurs dans l'assistant sitax. Constructeur ListeValeurs non paramétré (vous ne pouvez pas définir de valeurs par défaut).

Il existe des méthodes telles que :

  • Insérer(,) ;
  • Ajouter(,);
  • Quantité();
  • Indice().

Il existe également des méthodes spéciales, par exemple DéchargerValeurs(). Cela crée un tableau dans lequel la liste de valeurs est copiée. Par exemple:

Tableau d'éléments = Liste de PriceTypes.OutloadValues();

Il existe également une méthode inverse :
ListPriceTypes.LoadValues(ArrayItems);

Il existe des méthodes de recherche :
FindByValue(); FindByIdentifier().

Il existe une méthode de copie :
ListCopy = PriceTypeList.Copy();
Cette méthode est destiné à apporter une sorte de modification à la copie.

Il existe des méthodes :
SortByValue();
SortByView().

Méthodes Sélectionner un article(,) Et Marquer les éléments() appeler une boîte de dialogue modale qui arrête l'exécution de l'algorithme jusqu'à ce que l'utilisateur ferme la fenêtre.

Pour utiliser ces méthodes dans les propriétés de configuration Mode d'utilisation de la modalité doit être réglé sur Utiliser.

Exemple de code appelé depuis un module d'application gérée :

Affichez ce code en mode utilisateur (boîte de dialogue modale).

Ci-dessous ListeValeurs utilisé comme type de données disponible pour les attributs de formulaire. Nous créons un nouvel attribut pour le formulaire de traitement et définissons son type ListeValeurs et affichez-le sur le formulaire.

Nous créons nouvelle équipe RemplirCadeaux, transférez-le vers le formulaire et définissez un gestionnaire d'action pour celui-ci.

En mode utilisateur, lorsque vous cliquez sur le bouton Remplir les cadeaux dans le formulaire de traitement, une liste complétée apparaîtra.

Si vous le souhaitez, la liste peut être modifiée : certains éléments peuvent être ajoutés, d'autres peuvent être supprimés.

Conformité de collecte polyvalente

Cette collection est très similaire à Structure. Tout comme la structure, les mappages sont des ensembles de valeurs constitués d'une clé et de la valeur elle-même.

La principale différence est que n'importe quel type de données peut être spécifié comme clé, ainsi que comme valeur. Compte tenu de cette fonctionnalité, il est nécessaire d'accéder à la valeur de correspondance par index ; la valeur clé est indiquée comme valeur d'index.

La clé peut être un type de données autre qu'une chaîne. Les propriétés et méthodes de travail avec Compliance sont presque les mêmes que celles de Structure.

Le constructeur de conformité, contrairement à la structure, ne contient pas la possibilité de spécifier des paramètres.

Exemple d'utilisation :

La correspondance est pratique à utiliser lorsque vous devez connecter deux structures. Par exemple, chaque ligne de la section tabulaire doit correspondre à une ligne du tableau de valeurs.
Dans ce cas, la ligne de la section du tableau est utilisée comme clé de correspondance et la valeur correspondante est indiquée.

Lors de l'insertion d'éléments dans une collection Match en plus de la méthode Insérer(,) Une autre façon d'insérer une valeur consiste à utiliser l'opérateur d'affectation normal.

Par exemple: NotreMatch = NouveauMatch ;
Correspondance = 999 ;

Ceux. si un élément n'était pas présent dans la collection, alors il sera ajouté à l'aide de l'opérateur d'affectation, et s'il était présent, il sera mis à jour.

Cela contraste avec Structure.

Table de valeurs de la collecte universelle

Tableau des valeurs est un tableau avec un nombre arbitraire de lignes et un nombre arbitraire de colonnes. L'intersection peut stocker des valeurs de n'importe quel type de données. Si nécessaire, des colonnes peuvent être saisies, c'est-à-dire que vous pouvez déterminer dans quelle colonne quel type de données est stocké.

Vous pouvez laisser les colonnes non typées, puis les valeurs de différents types peuvent être stockées dans une colonne sur différentes lignes.

Différences Tableaux de valeursà partir d'un tableau bidimensionnel :

  • il s'agit d'un objet avec lequel l'utilisateur peut travailler (le tableau des valeurs peut être affiché à l'écran, l'utilisateur peut le remplir, et les données saisies peuvent ensuite être lues) ;
  • créer des index pour une recherche rapide ;
  • clonage, remplissage d'une colonne entière avec une certaine valeur, téléchargement de toutes les colonnes dans un tableau.

Tableau des valeurs utilisé comme une sorte de tampon de stockage d’informations. Tableau des valeurs est renvoyé et accepté comme paramètre par de nombreuses méthodes système. Il est possible de construire une requête sur la table des valeurs.

Donc, Tableau des valeurs se compose d’un ensemble de lignes et d’un ensemble de colonnes. Les lignes et les colonnes sont des collections.

Ceux. à l'intérieur de la collection Tableau des valeurs il y a deux autres collections. Passons à l'assistant de syntaxe et trouvons Tableau des valeurs.

Types de données pris en charge : lui-même Tableau des valeurs, qui se compose de chaînes. Chaque ligne est représentée par un type de données Valeurs de la table de lignes, qui a ses propres propriétés et ses propres méthodes. Disponible Collection de valeurs de colonnes de tableau possède également certaines propriétés.

Point important! La procédure qui crée Tableau des valeurs, doit compiler &OnServer.

Avant de commencer à travailler avec Tableau des valeurs, vous devez déterminer quelles colonnes il contiendra (c'est-à-dire les créer). Syntaxe:

Ajouter(,)
(facultatif)
Type : chaîne.
(facultatif)
Type : DescriptionTypes
(facultatif)
Type : chaîne.
(facultatif)
Tapez : Numéro.

Par exemple:

Pour appeler cette procédure, nous utiliserons la commande.

En description Tableaux de valeurs les éléments de la collection sont précisément LignesTableValues.

Contrairement aux colonnes, qui sont constituées uniquement de propriétés (Nom, Type, En-tête, Largeur), dans Valeurs de la table de lignes Il existe à la fois des propriétés (accès par nom de colonne) et des méthodes (vous pouvez obtenir et définir une valeur, travailler avec les propriétaires).

Ajouter nouvelle ligneà la table, vous devez utiliser la méthode soit Ajouter(), ou Insérer(). Dans le second cas, vous devez indiquer à quelle position la ligne souhaitée doit être placée.

Pour attribuer une valeur à une colonne, nous utilisons un point pour accéder au nom ou à l'index de la colonne (à l'aide de crochets).

Pour remplissage Tableaux de valeurs Les méthodes suivantes peuvent être utilisées :

Clair()– pour supprimer toutes les lignes de Tableaux de valeurs.

FillValues(,)– vous permet de remplir toutes les colonnes ou les colonnes sélectionnées avec une seule valeur.
ChargerColonne(,)– charge une colonne du tableau.
DéchargerColonne()– décharge la colonne dans un tableau.

Les deux dernières méthodes sont pratiques à utiliser lorsque vous devez transférer une colonne d'une table de valeurs à une autre.

Copie(,)– vous permet d’en créer un nouveau basé sur un tableau existant Tableau des valeurs, et pas toutes les lignes et toutes les colonnes, mais seulement certaines d'entre elles. Valeur de retour – Tableau des valeurs.

Vous pouvez copier la structure Tableaux de valeurs. Il existe une méthode correspondante pour cela CopierColonnes(). Nous en aurons un vide Tableau des valeurs avec la structure requise.

DANS Tableau des valeurs il y a une méthode Total(). Vous pouvez spécifier la colonne dans laquelle vous souhaitez additionner les valeurs numériques. Par rapport au code précédemment affiché dans le Tableau, vous pouvez calculer la valeur : TK.Total (« Montant »).

DANS Tableau des valeurs il est possible de regrouper (réduire) les valeurs numériques par valeurs identiques de certaines colonnes en utilisant la méthode Effondrement(,).

Par rapport au code précédemment affiché dans le Tableau, vous pouvez calculer la valeur : TZ.Collapse(« Jour de la semaine », « Montant »).

Tableau des valeurs peut être affiché sur l'écran de l'utilisateur afin que vous puissiez effectuer n'importe quelle action avec lui. Mais contrairement à ListeValeurs Vous ne pouvez pas simplement appeler un tableau à l’écran à partir du code du programme.

Afficher Tableau des valeurs sur l'écran, créez un attribut de formulaire et attribuez-lui un type de données Tableau des valeurs.

Après cela, le tableau résultant devrait être affiché sur le formulaire.

Dans le module formulaire à la fin de l'algorithme précédemment compilé (dans la Procédure de création d'une table de valeurs), vous devez ajouter :
ValueInFormData(TK, tableau);

Collection universelle Arbre des valeurs

une collection universelle qui ressemble beaucoup à Tableau des valeurs. La différence avec un tableau est que les lignes de l'arbre peuvent être subordonnées les unes aux autres, c'est-à-dire une sorte de hiérarchie peut être formée.

Cela peut également se refléter sur l’écran. Un arbre de valeurs se compose explicitement d’une collection de lignes et d’une collection de colonnes. Il y a deux propriétés dans l'arborescence : les lignes et les colonnes.

Puisque les lignes peuvent être subordonnées les unes aux autres, chaque ligne peut avoir un parent, ainsi que ses lignes subordonnées.

Créons la commande Tree correspondante et sa procédure de traitement.

Créons dans lequel il y a une ligne parent et deux lignes subordonnées.

Créons les attributs du formulaire DerZn(type de données – Arbre de valeurs).

Pour cet attribut, nous allons créer les colonnes Année et Mois.

Déplacer l'élément correspondant DerZn Sur le formulaire.

À la fin Procédures TreeOnServer() ajoutons :

ValueInFormData(ArbreZn, DerZn);

Vérifions ce qui s'est passé en mode utilisateur.

Utiliser un bouton Ajouter vous pouvez ajouter de nouvelles lignes. Ils peuvent également former une hiérarchie.

Pour parcourir tous les éléments de l’arbre de valeurs, nous devrons utiliser la récursivité, c’est-à-dire appeler une procédure à partir d'elle-même. Par exemple, le traitement d'une arborescence de valeurs pourrait ressembler à ceci :

Ceci conclut notre première connaissance des collections universelles.

Dans le prochain article, nous examinerons quel mécanisme important un développeur peut utiliser pour simplifier l'accès à un élément de répertoire à partir du code du programme.

Dans cette unité, nous nous familiariserons avec un nouveau type de données du langage 1C, appelé ListeValeurs.

Liste de valeurs est un tableau, mais avec de grandes capacités. Et si c'est le cas, alors il s'agit également d'une collection de données et vous pouvez y insérer un ensemble de nombres :

// créé une liste de valeurs

Liste.Add(23);

Jusqu’à présent, tout ressemble beaucoup à un tableau, n’est-ce pas ? Mais passons à autre chose. Pour maintenant afficher ces numéros à l'utilisateur, on écrit :

// boucle sur chaque élément de la liste For Each Element From List Loop Report(Element.Value);

// affiche la valeur de l'élément EndCycle;

Et voici la première différence. Les éléments d’un tableau régulier sont les nombres eux-mêmes. Et accès à la valeur actuelle d'un élément Liste nous utilisons l'option Signification, en utilisant la construction Élément. Signification.

Examinons quelques fonctionnalités supplémentaires Valeurs.

Peut trier

Par exemple, nous pouvons facilement trier une liste de valeurs. La liste peut le faire elle-même :

List.SortByValue(SortDirection.Age); Dans le cas d'un tableau régulier, nous devrions implémenter l'un des algorithmes de tri (par exemple, "bulle").

Peut rechercher

La liste de valeurs peut rechercher seule ses éléments. Disons que nous voulons savoir si un numéro saisi par l'utilisateur est présent dans notre liste :

EnterNumber(Nombre); // a saisi un numéro de l'utilisateur FoundElement = List. FindByValue (Nombre);

Si FoundItem = Undefined Then OpenValue("Number " + Number + " introuvable dans la liste!"); Sinon

OpenValue("Number " + Number + " est dans la liste. Le voici :" + FoundElement.Value);

fin si; ListeValeurs

Prend en charge l'insertion et la suppression

Une liste de valeurs, comme un tableau, prend en charge l'insertion et la suppression d'éléments :

Liste. Insérer (0, 1000);

// insère un millier au tout début de la liste List.Delete(O); // et supprimez-le immédiatement de la liste List. Insérer(Liste.Quantité(), 13);

// insère 13 à la fin de la liste Report(List[List.Quantity() - 1]);

// affiche le dernier élément de la liste (13)

Prend en charge les crochets

Comme vous l'avez déjà compris, la numérotation des éléments de la liste commence également à zéro, et on peut accéder à n'importe quel élément par son index à l'aide de crochets :

Rapport (Liste.Valeur); // affiche le deuxième élément de la liste Ainsi, on peut parcourir tous les éléments de la liste comme ceci :

Pour A = 0 Par List.Quantity() - 1 Rapport de boucle (List[A].Value);

Fin du cycle ;

Peut créer une copie de lui-même

La liste de valeurs a juste une fonctionnalité intéressante : elle peut créer une copie d'elle-même :

ListCopy = List.Copy();

// fait une copie de la liste // nous pouvons maintenant modifier en toute sécurité la copie de la liste // alors que la liste d'origine ne changera pas la copie de la liste. Valeur = 123456 ;

Peut se transformer en tableau

Et enfin, vous pouvez facilement vider tous les éléments de la liste dans un tableau à tout moment :

ArrayNumbers = Liste. DéchargerValeurs();

// vidé dans un tableau

Pour A = 0 Par ArrayNumber.Quantity() - 1 Cycle

Rapport (ArrayNumbers [A]); // pas besoin de spécifier // option Valeur

Fin du cycle ;

Pour pratiquer et consolider le matériel de cette unité, il est recommandé d’effectuer la tâche suivante.

Il faut saisir 5 nombres de l'utilisateur, trouver le plus grand et le plus petit d'entre eux et les afficher à l'utilisateur. La solution doit utiliser une liste de valeurs.

Solution

Liste = Nouvelle liste de valeurs ;

// a créé une liste de valeurs pour A = 1 à 5 Cycle Number = 0 ;

EnterNumber(Nombre); // entrez un numéro de l'utilisateur List.Add(Number); // et l'ajoute à la liste EndCycle; // et ainsi de suite 5 fois

// trie la liste des nombres

Liste. Trier par valeur (SortDirection.Age);

// après le tri, le premier élément de la liste est // le plus petit élément, et le dernier est le plus grand OpenValue("Smallest element" + List +

", et le plus grand " + List[List.Quantity() - 1]);