LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
E-mail
Nom
Nom de famille
Comment voulez-vous lire La cloche
Pas de spam

Bonne journée.

Aujourd'hui, nous allons parler d'une innovation dans la plate-forme 8.3 concernant les éléments prédéfinis.

introduction

Permettez-moi de vous rappeler qu'auparavant, en pratique, j'ai très souvent voulu regarder un élément d'ouvrage de référence pour connaître son nom prédéfini. Par exemple, vous avez créé deux entrepreneurs prédéfinis et les avez nommés IPSidorov et OOOMeteor. Et ils ont cousu une sorte de logique sur eux.

Lorsque tout a été débogué et a fonctionné, il s'est avéré que la tâche était définie dans l'autre sens et que la logique du propriétaire unique était nécessaire pour la LLC, et la logique de la LLC était nécessaire pour le propriétaire unique. « Pas de problème », nous disons, et en mode entreprise, nous renommeons les éléments. C'est beaucoup plus difficile d'entrer dans le code. Un an passe et vous êtes livré nouvelle tâche: pour SP Sidorov, mettez en place un peu plus de logique. Vous allez dans le configurateur, écrivez la logique, commencez à vérifier et rien ne fonctionne, car dans le configurateur IPSidorov et dans l'entreprise - Meteor LLC. Le cerveau est cassé et je veux détruire ce râteau. Le plus simple et le plus intuitif est de sortir le nom d'un élément prédéfini sous forme de liste. Voici une embuscade, vous ne pouvez obtenir le nom du prédéfini en 8.2 que par la méthode. Et la méthode a son propre inconvénient, elle ne peut pas être obtenue dans la requête. Celles. le premier inconvénient est d'obtenir le nom du prédéfini par référence à l'annuaire.

Le deuxième inconvénient est lorsque nous avons déjà un élément de répertoire et que nous devons le rendre prédéfini. Nous créons un élément prédéfini et obtenons deux éléments dans le répertoire. L'un prédéfini, l'autre fonctionnel, référencé par tous nos documents. Le remplacement des liens aide certainement, mais si la base de données est volumineuse, alors c'est difficile.

Maintenant sur le cas

La première est que la référence possède désormais la propriété "Mettre à jour les données prédéfinies".

Que nous apporte ce champ ? S'il est défini sur "Ne pas mettre à jour automatiquement", alors en ajoutant un élément prédéfini, nous ne le verrons pas dans la référence immédiatement. Celles. les métadonnées n'ont rien à voir avec les données. Et s'il n'est pas créé dans le répertoire, s'y référer par son nom via le gestionnaire de répertoires provoquera une erreur de syntaxe.

Très intéressant, mais pourquoi ? Comment crée-t-on un article dans la référence ? Et comme vous le souhaitez, vous pouvez créer, ou vous pouvez le lier à un existant. La recherche a maintenant l'attribut "PredefinedDataName". Nous créons un élément de catalogue par programme comme d'habitude via "References.Contractors.CreateElement ()" et remplissons son attribut "PredefinedDataName" égal au nom de l'élément prédéfini. Ou, si l'élément existe déjà, nous obtenons son objet et remplissons à nouveau le "PredefinedDataName" dedans. Tout.

Et enfin un peu de sirop

Ce nouveau props est non seulement en lecture/écriture, mais également disponible dans les requêtes. Ainsi, vous pouvez lui imposer des conditions dans les requêtes, déterminer s'il est prédéfini ou non.

Merci pour votre attention.

Lorsque l'on travaille sur la plate-forme 1C : Enterprise 8.x, il est souvent nécessaire de lier dans le code du programme aux éléments habituels (non prédéfinis) des répertoires. Par exemple, une organisation peut avoir cinq types de prix qui sont utilisés dans presque tous les mécanismes. Dans ce cas, une référence programmatique à un prix précis s'effectue au mieux soit en grinçant par un code dans un ouvrage de référence, au pire par le nom d'un élément.

J'ai vu comment dans les rapports pour obtenir le prix requis, la sélection par type de prix était utilisée dans une demande par son nom (voir la capture d'écran suivante).

En conséquence, nous obtenons un rapport instable qui cessera de fonctionner lorsque le nom du type de prix sera modifié. Si vous vous liez au code d'un élément, alors il y a toujours la possibilité de le changer. Par exemple, en raison d'une violation de l'unicité des codes du catalogue, l'administrateur peut commencer à renuméroter les objets, ce qui entraînera une modification des codes des éléments et le rapport cessera de fonctionner correctement.

De plus, si vous vous liez au nom ou au code des éléments du répertoire, alors lorsque vous recevez un lien vers l'élément, une recherche sera toujours effectuée dans la table du répertoire. Malgré le fait que les attributs système standard soient indexés par le SGBD, leur recherche peut dans certains cas prendre des ressources importantes. De plus, il serait plus rationnel de ne pas effectuer requête de recherche selon la table de référence, si, disons, le lien vers l'élément est déjà "connu à l'avance".

Comme solution de rechange, vous pouvez stocker une référence à chaque article fréquemment utilisé dans la recherche "Types de prix d'article" dans des constantes distinctes et en obtenir les valeurs dans la requête. Cependant, dans ce cas, le développeur devra ajouter une constante distincte pour chacun de ces éléments. La situation deviendra beaucoup plus compliquée si de tels éléments ne se trouvent pas seulement dans le répertoire "Types de prix d'articles", mais aussi dans d'autres répertoires ("Catégories d'objets", "Qualité", "Nomenclature" et autres). Le nombre de constantes dans le système peut alors augmenter plusieurs fois !

Bien entendu, on pourrait ajouter des éléments prédéfinis à chacun des répertoires et il serait beaucoup plus facile d'y accéder. Cependant, la modification des objets génériques compliquerait le processus de mise à jour de la configuration à partir des packages des fournisseurs.

Il y en a plus approche optimale tant du point de vue du développement de la structure des métadonnées de configuration, que du côté des performances du système. Aujourd'hui, nous allons parler de lui.

Solution unique

L'essence d'une solution universelle sera la suivante : une référence sera créée à laquelle le développeur ajoutera des éléments prédéfinis. La variable "Valeur" a été ajoutée à la référence, dont le type dépend des valeurs pour lesquelles la correspondance "Elément de référence prédéfini -> Valeur associée" sera créée. La structure des métadonnées du répertoire ressemble à ceci (voir la capture d'écran suivante).

Pour obtenir un article prédéfini la meilleure option est d'utiliser la méthode globale "Valeur prédéfinie (<Имя>)" ... Le chemin complet vers l'élément prédéfini est transmis à la méthode en tant que paramètre. La syntaxe est similaire à la fonction de langage de requête "VALUE ()".

Pour faciliter le développement, je recommande de déplacer la fonction pour obtenir la valeur associée à un élément prédéfini dans un module commun. V configuration d'essai, disponible en téléchargement sur le lien en fin d'article, un module général "PredefinedElement Values" avec une fonction d'export a été créé "GetValuePredefinedElement (<ИмяПредопределенногоЭлемента>)" ... Le code programme de la fonction reçoit un lien vers un élément prédéfini, puis, sur demande, reçoit les valeurs de l'attribut "Valeur". La capture d'écran suivante montre la liste complète de la fonction.

Comme on peut le voir, la fonction génère une requête vers l'attribut "Valeur" de l'élément prédéfini passé en paramètre. Le paramètre de fonction est une chaîne avec le nom d'un élément prédéfini.
Pour que le mécanisme créé fonctionne correctement, vous devez lier un élément prédéfini à un élément de catalogue normal en mode utilisateur en sélectionnant l'élément correspondant dans l'attribut "Valeur". Passons à la question de l'impact sur la performance.

Impact sur les performances

Réalisation d'un test de vitesse pour les deux options de recherche : par nom et par référence à partir d'un élément prédéfini. La recherche est passée par le répertoire "Produits" avec 20 000 enregistrements. Lors de la réalisation des tests de base de fichiers Les résultats suivants ont été obtenus:

Les résultats ont montré que pour la version fichier de travail, l'utilisation d'éléments prédéfinis pour obtenir des éléments fréquemment utilisés d'autres répertoires fonctionne presque 4 fois plus lentement !

Dans le mode de fonctionnement client-serveur, les résultats des tests montrent une image complètement différente. La vitesse d'obtention d'un lien vers l'élément souhaité n'a pas diminué de manière significative (un des tests a montré 0,002 s. Pour la recherche par nom et 0,0008 s. En travaillant sur un élément prédéfini), cependant, la fiabilité du programme a considérablement augmenté !

conclusions

Dans les cas où il est souvent nécessaire de se lier à des éléments de répertoire ordinaires, je recommande de ne pas utiliser la liaison par code ou nom. Cette approche réduit la fiabilité et les performances du système.

Au cours de mon travail avec la plateforme, j'ai rencontré à plusieurs reprises des situations où, après avoir changé le nom, par exemple, pour un élément du livre de référence "PriceNomenclature Types", la plupart des rapports non standard se sont écrasés.

Plus il y a d'algorithmes associés à des éléments de répertoire ordinaires via un code ou un nom, moins le système est stable.

De plus, cette approche vous permettra de ne pas modifier les objets de configuration typiques si vous devez leur ajouter un élément prédéfini. À l'avenir, cela facilitera quelque peu le processus de mise à jour de la configuration.

Fichiers à télécharger :

  1. Déchargement de la base de test avec des exemples de l'article.

Tout le monde connaît la différence entre les éléments prédéfinis et les éléments ordinaires : "Les éléments prédéfinis sont créés dans le mode" Configurateur " et ne peuvent pas être supprimés dans le mode 1C : Entreprise." En mode utilisateur, vous pouvez distinguer un élément prédéfini de ceux ajoutés par les utilisateurs par une icône spéciale (voir la capture d'écran suivante).

Fondamentalement, des éléments prédéfinis sont créés par les développeurs afin de leur lier les algorithmes dans divers objets de configuration. Par exemple, dans la configuration "Manufacturing Enterprise Management" de la référence "Qualité", les développeurs ont ajouté une rubrique prédéfinie "Nouveau".

Cet élément est utilisé dans de nombreux modules de configuration. Ainsi dans le document « Entrée de biens et services », lors de l'affichage dans tous les registres où il y a une dimension « Qualité », la valeur d'un élément prédéfini est substituée. Voici une liste de la façon de remplir le tableau des transactions dans le registre "Organisations Biens":

// MARCHANDISES DANS LE REGISTRE Organisations de marchandises. Ensemble de mouvements = mouvements. ProduitsOrganisations ; Si Type de reçu = Virements. Types de biens à revenu. En stock alors // Obtient une table de valeurs qui correspond à la structure du jeu d'enregistrements du registre. Déplacer la table = déplacer l'ensemble. Décharger (); // Remplir la table des mouvements. Usage général. LoadInTableValues ​​(Produits TableBy, TableMotions); // Champs manquants. Tableau des mouvements. FillValues ​​​​(Organisation, "Organisation"); Tableau des mouvements. FillValues ​​(Undefined, "Commissaire"); Tableau des mouvements. FillValues ​​​​(Références. Qualité. Nouveau, "Qualité"); // Qualité de remplissage à partir d'un élément prédéfini

Ainsi, les caractéristiques des éléments prédéfinis et leur finalité sont assez simples. Regardons comment ils sont stockés dans les tables de la base de données et en quoi cela diffère des éléments ordinaires.

Différences

Le répertoire "Produits" a été créé dans la configuration de test. Le groupe « Éléments de test » a été créé dans celui-ci. Vous pouvez voir le contenu du groupe dans la capture d'écran au début de l'article. Pour la référence "Produits" dans la base de données SQL, il existe une table correspondante "_Reference37" avec la structure suivante :

Mais comment déterminer la correspondance des attributs avec l'arbre de configuration et les champs de la table SQL ?

Nous utiliserons méthode standard contexte global "GetDatabaseStorageStructure()", qui nous retournera une table de valeurs avec une description de la structure des tables.

Dans la table de valeurs "Champs", on voit la correspondance entre les champs de la table SQL et les attributs de l'objet dans l'arbre des métadonnées. Dans notre exemple, nous considérons la structure du répertoire "Produits". Tous les répertoires ont un attribut de type booléen "Prédéfini" standard, qui est défini sur TRUE pour les éléments prédéfinis :

D'après le tableau avec la structure de stockage de l'ouvrage de référence dans la base de données, on peut dire avec certitude que le champ "Prédéfini" correspond au champ "IsMetadata". Si nous regardons le contenu de la table "_Reference37" dans la base de données SQL, nous verrons ceci :

Dans l'entrée d'un élément prédéfini, la valeur du champ "IsMetadata" est définie sur "0x01", ce qui correspond au drapeau TRUE. Pour les articles ordinaires, la valeur est définie sur « 0x00 ». C'est la principale différence entre les éléments prédéfinis et les éléments ordinaires. Tous les autres champs sont stockés dans la base de données de la même manière que pour les éléments réguliers ajoutés par l'utilisateur.

Les éléments prédéfinis peuvent s'avérer avoir des utilisations très intéressantes. Avec leur aide, vous pouvez interdire la suppression / marquer pour suppression d'un groupe d'éléments dans l'ouvrage de référence et d'autres objets où ils peuvent être ajoutés. Si nous essayons de supprimer ou de marquer pour suppression le groupe « Éléments de test ». alors on obtient les erreurs suivantes :

Ainsi, les éléments prédéfinis rendent le groupe dans lequel ils sont placés également "prédéfini".

Achèvement

Les éléments prédéfinis font partie intégrante de la plupart des configurations. Leur utilisation simplifie le développement et rend la construction des fonctionnalités logiquement plus « harmonieuse » et cohérente.

Dans la quatrième leçon de notre nous continuerons à nous familiariser avec le programme. Aujourd'hui, nous sommes sur exemples pratiques faire connaissance etrépertoires hiérarchiques, ainsi qu'apprendre à créer des éléments prédéfinis.

Durée des 4 leçons du cours :

00:19 Changements dans le guide de l'employé après avoir terminé les devoirs pour la 3e leçon du cours
00:35 Modification de l'ordre des attributs dans les répertoires
02:54 Création du livre de référence Nomenclature
03:40 Création et configuration d'un annuaire hiérarchique
05:10 Création de groupes Services et Produits dans l'annuaire Nomenclature
06:05 Remplir le livre de référence Nomenclature
07:14 3 façons de déplacer un élément du répertoire vers un autre groupe
08:21 Création de l'annuaire Entrepôts
09:19 Création d'éléments de catalogue prédéfinis
11:25 Remplir le répertoire des entrepôts
12:20 Prendre le test de matériel Leçon 4

Répertoire hiérarchique- un ouvrage de référence avec possibilité de hiérarchisation de ses éléments. Par exemple, dans le répertoire Nomenclature, des groupes peuvent être créés : Biens, Services, etc., dans lesquels se trouvent les éléments appartenant à ces groupes. De plus, les groupes de répertoires peuvent inclure d'autres groupes, créant ainsi une structure hiérarchique à plusieurs niveaux.

De plus, les dictionnaires prennent également en charge un autre type de hiérarchie, dans lequel les éléments des dictionnaires n'appartiendront pas à des groupes, mais à d'autres éléments des mêmes dictionnaires. Ce genre de hiérarchie ( hiérarchie des éléments) peut être utilisé, par exemple, lors de la création de l'annuaire Subdivisions, où une subdivision (subdivision dans ce cas, un élément de l'annuaire, pas un groupe) peut inclure plusieurs autres subdivisions. Ce type de hiérarchie est rarement utilisé.

Formulaires d'annuaire- présentation visuelle de l'ouvrage de référence. En fonction des actions que nous souhaitons effectuer avec notre répertoire, nous devons afficher le répertoire dans des "vues différentes". Ainsi, dans la 4ème leçon du cours, nous avons édité l'ordre des prérequis sous forme de liste et sous forme d'élément de référence.

Le système crée (génère) des formulaires automatiquement, mais, si nécessaire, le développeur peut "dessiner" les formulaires lui-même.

Il existe 5 formulaires (types de formulaires) pour les ouvrages de référence :

  • forme de l'élément- pour créer ou modifier un élément du répertoire ;
  • forme de groupe- pour créer ou éditer un groupe d'annuaires ;
  • formulaire de liste- pour afficher une liste d'éléments du répertoire ;
  • formulaire de sélection- permet de sélectionner un des éléments de ce répertoire dans un champ d'une certaine forme. Par exemple, afin de sélectionner un entrepôt spécifique dans le répertoire Entrepôts dans le document d'entrée de marchandises dans le champ entrepôt ;
  • formulaire de sélection de groupe- permet de sélectionner l'un des groupes de cet annuaire dans le champ d'un certain formulaire.

Éléments de répertoire prédéfinis- les éléments du répertoire créés par le développeur en mode Configurateur, et accessibles depuis le langage 1c intégré par Nom.

Il existe une différence fondamentale entre les éléments de répertoire normaux et prédéfinis. Les éléments réguliers sont incohérents dans la configuration. Pendant le travail de l'utilisateur, ils peuvent être créés, modifiés et supprimés et, par conséquent, ils ne doivent pas être invoqués lors de l'exécution d'algorithmes (le code et le nom de l'élément peuvent être modifiés par l'utilisateur).En revanche, les éléments prédéfinis sont permanents. En cours de travail, même si l'utilisateur renomme un tel élément, il sera possible d'y accéder depuis le langage 1c intégré. Ceci est obtenu grâce au fait que l'élément prédéfini a un accessoire Nom qui n'est pas disponible pour l'utilisateur. Les éléments ordinaires du répertoire n'ont pas un tel attribut.

Important! Techniquement, l'utilisateur a la possibilité de supprimer un élément de dictionnaire prédéfini, mais, en règle générale, les utilisateurs n'ont pas le droit de supprimer des éléments de dictionnaire prédéfinis.

Devoirs pour la 4ème leçon du cours

Les devoirs de la quatrième leçon du cours seront à votre disposition immédiatement après avoir réussi l'examen théorique.

L'idée même de travailler par programmation avec des éléments prédéfinis, à mon avis, est très correcte. Il y a juste quelques nuances qui doivent être prises en compte lors du travail.

Tout d'abord, vous devez clairement comprendre par vous-même qu'il existe des éléments prédéfinis dans la configuration et qu'il existe des éléments prédéfinis dans l'infobase (IB). Les éléments de sécurité de l'information techniquement prédéfinis sont les éléments les plus courants des dictionnaires, dans lesquels l'attribut "PredefinedDataName" spécifie à quel élément de configuration prédéfini ils correspondent. Ils ne sont pas plus différents des éléments ordinaires. En conséquence, n'importe quel élément IB ordinaire peut être rendu prédéfini, n'importe quel élément ordinaire prédéfini. Pour ce faire, il suffit d'entrer la valeur souhaitée dans les props. "NomDonnées prédéfinies".

Périodiquement, cette propriété s'avère ne pas être la valeur fournie par le développeur. En conséquence, des erreurs se produisent dans le travail de 1C. De critique, dans lequel le travail est, en principe, impossible, à non critique, dans lequel la logique des algorithmes est violée.

On peut distinguer conditionnellement trois types d'erreurs :
1. « Un élément prédéfini est manquant dans les données » ;

3. Indication invalide d'un élément prédéfini ;

1. "Un élément prédéfini est manquant dans les données" - o L'absence d'un élément prédéfini décrit dans la configuration dans les données IB.

C'est le type d'erreur le plus simple à déboguer et à corriger. Sa simplicité est que la plate-forme rapporte suffisamment correctement cette situation "Un élément prédéfini est manquant dans les données" et il est assez clair comment y remédier.

En se référant à l'élément manquant dans le code "Directories.Types of ContactInformation.EmailContactPerson" le message s'affiche

Lors de l'accès à un élément de la requête "VALUE (Directory.Types of ContactInformation.EmailContactPerson)", le message suivant s'affiche :

Cette erreur se produit si un élément est décrit dans la configuration, mais que l'élément ne lui est pas associé dans la base de données.

Pour commencer, précisons que cette situation n'est pas toujours mauvaise. Il est tout à fait possible d'utiliser des données prédéfinies dans une sorte de logique de programme, qui pour la plupart des utilisateurs peuvent ne pas être utilisées. Dans ce cas, afin de ne pas surcharger l'ouvrage de référence pour tous les utilisateurs de la configuration, il est logique de définir des éléments prédéfinis dans la configuration, mais pas de les créer dans tous les systèmes de sécurité de l'information, mais uniquement pour les systèmes de sécurité de l'information dans lesquels la logique de configuration requise est utilisée. Dans ce cas, le programmeur peut spécifier la propriété "Ne pas mettre à jour les données prédéfinies" pour l'ouvrage de référence et créer des éléments par programmation lors de l'accès aux fonctionnalités du module. Soit de permettre à l'utilisateur de lier indépendamment les éléments prédéfinis du module aux éléments habituels dont il dispose.

Pas utilisé non plus création automatiqueéléments prédéfinis lors du fonctionnement en mode RIB. Étant donné que les nouveaux éléments doivent être transférés depuis la base centrale et non créés dans des nœuds avec des UID différents.

Celles. parfois c'est une erreur de se référer à un élément sans correspondance, plutôt que la présence même d'un tel élément.

Vous devez analyser pourquoi l'élément n'a pas été créé. Peut-être devrait-il être créé lorsqu'un certain mode du programme est exécuté. Par exemple, après avoir effectué un échange en RIB. Ou peut-être a-t-il été simplement supprimé accidentellement.

Si la logique prévoit de remplir des éléments prédéfinis non pas automatiquement, mais dans un mode séparé, alors avant d'utiliser l'appel par le nom " Répertoires.Types d'informations de contact.EmailContactPerson"Pour éviter une exception, il est conseillé de vérifier que l'élément est déjà dans la base de données. Si l'élément est absent, alors informez-en l'utilisateur et expliquez quel mode il doit exécuter pour remplir l'élément. Pour une telle vérification, vous pouvez exécuter une requête sur les données.

Demande = Nouvelle demande ; Request.Text = "SELECT | Types d'informations de contact.Link | FROM | Répertoire.Types d'informations de contact AS Types d'informations de contact | WHERE | Types d'informations de contact. PredefinedData Name =" " CourrielContactPerson"" " ; ElementNoNo.VD = Request.Run (). Vide ();

S'il s'agit toujours d'une erreur dans les données de la base de données, il est alors nécessaire de se lier à un élément prédéfini de l'élément IB. Celles. il est nécessaire d'expliquer au système à quel élément de sécurité de l'information le code du programme doit se référer par ce nom. Techniquement, la liaison consiste simplement à spécifier le nom d'un élément prédéfini dans une propriété "NomDonnées prédéfinies"Elément IB. Pour l'installer, exécutez simplement le code :

2. "L'élément prédéfini n'est pas unique" - h advoi éléments prédéfinis :

Cette situation consiste dans le fait que plusieurs éléments IB sont liés à un élément prédéfini. Dans ce cas, en faisant référence à un nom prédéfini, l'élément sera sélectionné au hasard. Cette situation est toujours fausse. Sa difficulté est que la plateforme ne communique à ce sujet en aucune façon. C'est juste que les algorithmes commencent à mal fonctionner.

Le cadre signalera l'erreur « L'élément prédéfini n'est pas unique » uniquement lorsque vous essayez de modifier un élément dupliqué.

Jusqu'à ce que personne n'ait besoin de modifier l'élément, personne ne connaîtra l'erreur.

De tels doublons peuvent être créés, par exemple, si le RIB est utilisé pour l'ouvrage de référence et que le mode « Mettre à jour automatiquement » est spécifié dans les propriétés des données prédéfinies. Dans ce cas, lors de l'échange, une instance des données prédéfinies sera créée lors de la mise à jour de la configuration. Une seconde instance d'articles prédéfinis portant le même nom sera transférée de la base de données centrale lors de l'échange.

De plus, ces doublons se produiront lors de l'utilisation du traitement d'échange entre configurations dans le cas où dans des bases différentes différents éléments de sécurité de l'information correspondent à des éléments prédéfinis. Dans ce cas, une copie des données prédéfinies existe déjà dans la base de données, la seconde viendra lors du chargement des données avec un UID différent. Si vous effectuez des transferts de données, vous devez décider quels éléments de base de données sont considérés comme principaux et les utiliser dans la base de données subordonnée. Dans la base subordonnée, il est nécessaire de remplacer l'utilisation d'éléments anciens par des éléments de la base principale.

De telles erreurs dans la base de données peuvent être détectées par une requête de la forme :

SELECT Types d'informations de contact .PredefinedData Nom, QUANTITÉ (DIFFERENTS TYPES D'INFORMATIONS DE CONTACT.Lien) COMME UN NuméroPrédéfini à partir de l'annuaire.Types d'informations de contact AS Types d'informations de contact.

Cette requête renverra une liste d'éléments prédéfinis avec plus d'un élément IB associé.

S'il existe de tels éléments, il est nécessaire de supprimer le lien avec celui prédéfini pour l'un d'entre eux. Celles. il est nécessaire de déterminer sans ambiguïté pour le système à quel élément du SI le code de programme doit se référer lors de l'utilisation de ce nom. Pour ce faire, il vous suffit d'exécuter le code.

3. Indication invalide d'un élément prédéfini.

L'erreur réside dans le fait que l'élément prédéfini correspond au mauvais élément, qui est fourni par la logique du programme. De telles erreurs sont les plus difficiles à diagnostiquer. Contrairement aux deux premiers types, vous ne pouvez pas vérifier automatiquement la configuration pour ces erreurs. Ils ne peuvent être identifiés qu'en analysant la logique du travail. En cas de doute, vous pouvez vérifier si le bon article est utilisé.

Pour ce faire, il suffit d'exécuter l'une des commandes.

// Définition d'un élément IB lié au rapport prédéfini requis (Directories.Types of ContactInformation.EmailContactPerson) // Définit un élément prédéfini auquel le rapport sélectionné est lié (ElementRef.Name of PredefinedData)

Si de telles erreurs sont trouvées, il est nécessaire de supprimer le lien incorrect avec l'ancien élément et d'ajouter un lien avec le nouvel élément. L'opcode est similaire au code de correction pour les deux premiers types d'erreurs.

Eh bien, brièvement sur les erreurs lorsque travail programmatique ou en mode configurateur :

"L'élément prédéfini n'appartient pas à<Имя справочника>" - une erreur se produit lors de la tentative d'écriture d'un élément prédéfini avec un nom qui ne correspond pas au nom dans le co-configurateur.

"Les objets non prédéfinis ne peuvent pas avoir d'entrées de type subconto prédéfinies" - une erreur se produit lorsque vous essayez de rendre indéfini un élément de plan comptable prédéfini. Pour éliminer les erreurs, il est nécessaire de décocher le drapeau "Prédéfini" pour chaque ligne de sous-traitance de l'élément.

"Les objets non prédéfinis ne peuvent pas avoir d'enregistrements prédéfinis des principaux types de calculs"- une erreur se produit lorsque vous essayez de rendre indéfini un élément prédéfini d'un graphe de types de calcul. Pour éliminer les erreurs, il est nécessaire d'effacer le drapeau "Prédéfini" pour chaque ligne du premier type de calcul d'élément.

"Les éléments prédéfinis ne sont pas uniques"- une erreur s'affiche dans le configurateur lors de la mise à jour base d'informations pour une version de configuration sans mode de compatibilité 8.3.4. Il est nécessaire de vérifier les doublons et de les éliminer avant la mise à jour.

"Le nom de l'élément prédéfini n'est pas unique" - l'erreur se produit s'il y a plusieurs éléments prédéfinis du même nom dans la configuration lors de la mise à jour vers la plateforme8.3.6.2332 et versions ultérieures. Il est nécessaire d'éliminer les doublons dans la configuration.

Pour travailler avec des données prédéfinies, je recommande le traitement. Elle sait effectuer toutes actions avec des données prédéfinies, et peut également vérifier la configuration dans son ensemble pour la présence d'erreurs des deux premiers types (éléments dupliqués et manquants) dans tous les objets de sécurité de l'information (référentiels, plans comptables, PVC , PVR).

LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
E-mail
Nom
Nom de famille
Comment voulez-vous lire La cloche
Pas de spam