Bain      30/07/2023

Erreurs dans les éléments prédéfinis. Installer des éléments prédéfinis Maintenant au point

L'idée même d'un travail programmatique avec des éléments prédéfinis est, à mon avis, très correcte. Il y a simplement des nuances à prendre 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 la base d'informations (SI). Techniquement, les éléments prédéfinis de sécurité de l'information sont les éléments les plus courants des répertoires, dans lesquels l'attribut « Nom des données prédéfinies » indique à quel élément de configuration prédéfini ils correspondent. Ils ne sont pas différents des éléments ordinaires. En conséquence, tout élément ordinaire de sécurité de l'information peut être rendu prédéfini, tout élément ordinaire prédéfini. Pour cela, il suffit de saisir la valeur souhaitée dans l'attribut "NomDonnées Prédéfini".

De temps en temps, cette propriété contient une valeur qui n'est pas celle prévue par le développeur. En conséquence, des erreurs se produisent dans le fonctionnement de 1C. Du critique, dans lequel le travail est fondamentalement impossible, au non critique, dans lequel la logique des algorithmes est perturbée.

Conditionnellement on peut distinguer trois types d'erreurs :
1. « L'élément prédéfini n'est pas dans les données » ;

3. Spécification incorrecte d'un élément prédéfini ;

1. "L'élément prédéfini n'est pas dans les données" - o absence d'un élément prédéfini décrit dans la configuration dans les données de sécurité de l'information.

Il s’agit du type d’erreur le plus simple à déboguer et à corriger. Sa simplicité réside dans le fait que la plateforme signale assez correctement cette situation « L'élément prédéfini est manquant dans les données » et il est assez clair comment y remédier.

Lors de l'accès à un élément manquant dans le code "Annuaires.Types d'informations de contact.Email de la personne de contact" un message s'affiche

Lors de l'accès à un élément de la requête « VALEUR(Répertoire.Types d'informations de contact.Email de la personne de contact) » 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 peut ne pas être utilisée pour la plupart des utilisateurs. Dans ce cas, afin de ne pas encombrer le répertoire de tous les utilisateurs de la configuration, il est logique de définir des éléments prédéfinis dans la configuration, mais de ne pas 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 le répertoire et créer des éléments par programme lors de l'accès aux fonctionnalités du module. Ou permettez à l'utilisateur de lier indépendamment des éléments de module prédéfinis à des éléments réguliers existants.

De plus, la création automatique d'éléments prédéfinis n'est pas utilisée lorsque l'on travaille en mode RIB. Puisque les nouveaux éléments doivent être transférés depuis la base de données centrale et non créés dans des nœuds avec des UID différents.

Ceux. Parfois, l'erreur est la référence à un élément sans correspondance, et non la présence d'un tel élément lui-même.

Il faut analyser pourquoi l’élément n’a pas été créé. Peut-être devrait-il être créé lorsqu'un mode de programme est exécuté. Par exemple, après avoir réalisé un échange en RIB. Ou peut-être qu'il a été simplement supprimé accidentellement.

Si la logique prévoit le remplissage des éléments prédéfinis non pas automatiquement, mais dans un mode distinct, alors avant d'utiliser l'accès par nom " Annuaires.Types d'informations de contact.E-mail de la personne à contacter"Pour éviter une situation exceptionnelle, il est conseillé de vérifier que l'élément est déjà dans la base de données. Si l'élément est manquant, informez-en l'utilisateur et expliquez quel mode il doit effectuer pour remplir l'élément. Pour un tel contrôle , vous pouvez exécuter une requête de données.

Demande = Nouvelle demande ; Request.Text = "SELECT | Types d'informations de contact. Lien | DE | Répertoire. Types d'informations de contact COMMENT Types d'informations de contact | OÙ | Types d'informations de contact. Nom des données prédéfinies = "" E-mailContactPersonne"""; L'élément est MissingInData = Query.Execute().Empty();

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 de sécurité de l'information. Ceux. il est nécessaire d'expliquer au système à quel élément de sécurité de l'information le code du programme doit accéder sous ce nom. Techniquement, une liaison spécifie simplement le nom d'un élément prédéfini dans la propriété "Nom de données prédéfini" de l'élément IS. Pour l'installer, exécutez simplement le code :

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

Cette situation est que plusieurs éléments de sécurité de l'information sont attachés à un élément prédéfini. Dans ce cas, lors de l'accès à un nom prédéfini, l'élément sera sélectionné aléatoirement. Cette situation est toujours fausse. Sa difficulté est que la plateforme ne le signale en aucun cas. Les algorithmes commencent tout simplement à fonctionner de manière incorrecte.

La plateforme signalera l'erreur « L'élément prédéfini n'est pas unique » uniquement lorsque vous tenterez de modifier un élément en double.

Tant que personne n'a besoin de modifier l'élément, personne ne sera au courant de l'erreur.

De tels doublons peuvent être créés, par exemple, si RIB est utilisé pour le répertoire et que le mode « Mise à jour automatique » est spécifié dans les propriétés des données prédéfinies. Dans ce cas, lors de l'exécution d'un échange, une instance des données prédéfinies sera créée lors de la mise à jour de la configuration. Une deuxième instance d'éléments prédéfinis portant le même nom sera transférée depuis la base de données centrale lors de l'échange.

De plus, ces doublons apparaîtront lors de l'utilisation du traitement d'échange entre configurations si différents éléments de sécurité de l'information correspondent à des éléments prédéfinis dans différentes bases de données. 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 de données subordonnée, il est nécessaire de remplacer l'utilisation d'anciens éléments par des éléments de la base de données principale.

De telles erreurs dans la base de données peuvent être identifiées avec une requête telle que :

SELECT Types d'informations de contact. Nom des données prédéfinies, QUANTITÉ (DIFFÉRENTS types d'informations de contact. Référence) AS Nombre de répertoires FROM prédéfinis. Types d'informations de contact AS Types d'informations de contact GROUP BY Types d'informations de contact. Nom des données prédéfinies AYANT UNE QUANTITÉ (DIFFÉRENTS types de tactInformation.Link) > 1

Cette requête renverra une liste d'éléments prédéfinis auxquels plusieurs éléments de sécurité des informations sont associés.

Si de tels éléments sont présents, il faut supprimer la connexion avec celle prédéfinie pour l'un d'entre eux. Ceux. Il est nécessaire de déterminer sans ambiguïté pour le système à quel élément de sécurité de l'information le code du programme doit se référer lors de l'utilisation de ce nom. Pour ce faire, exécutez simplement le code.

3. Spécification incorrecte d'un élément prédéfini.

L'erreur est que l'élément prédéfini correspond à un élément qui n'est pas fourni par la logique du programme. Ces erreurs sont les plus difficiles à diagnostiquer. Contrairement aux deux premiers types, la configuration ne peut pas être automatiquement vérifiée 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 élément est utilisé.

Pour ce faire, exécutez simplement l'une des commandes.

//Définition d'un élément de sécurité de l'information qui est lié au Notify prédéfini souhaité (Annuaires.Types d'informations de contact.Email de la Personne à contacter) //Définition d'un élément prédéfini auquel est attaché le Notify sélectionné (Lien vers l'Element.Nom des Données Prédéfinies )

Si de telles erreurs sont identifiées, il est nécessaire de supprimer la connexion incorrecte avec l'ancien élément et d'ajouter une connexion avec le nouvel élément. Le code d'opération est similaire au code de correction des deux premiers types d'erreurs.

Eh bien, brièvement sur les erreurs pendant le travail du programme 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 configurateur.

"Les objets non prédéfinis ne peuvent pas avoir d'enregistrements de vue de sous-conto prédéfinis" - une erreur se produit lorsque l'on tente de rendre non prédéfini un élément d'un plan comptable prédéfini. Pour éliminer les erreurs, il est nécessaire de supprimer le flag « Prédéfini » de chaque ligne de sous-contact d'élément.

"Les objets non prédéfinis ne peuvent pas avoir d'enregistrements prédéfinis des principaux types de calcul"- une erreur se produit lorsque vous essayez de rendre non prédéfini un élément prédéfini du plan de types de calcul. Pour éliminer les erreurs, il est nécessaire de décocher la case « Prédéfini » pour chaque ligne du type de calcul principal de l'élément.

"Les éléments prédéfinis ne sont pas uniques"- une erreur est générée dans le configurateur lors de la mise à jour de l'infobase vers une version de configuration sans mode de compatibilité avec 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 lorsqu'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. Il peut 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 (annuaires, plans comptables, PVC, PVR) .

Bonne journée.

Aujourd'hui, nous parlerons de l'innovation de la plateforme 8.3 concernant les éléments prédéfinis.

Introduction

Je vous rappelle qu'auparavant dans la pratique, j'avais très souvent envie de regarder un élément de répertoire pour connaître son nom prédéfini. Par exemple, vous avez créé deux contreparties prédéfinies et les avez nommées IPSidorov et OOOMeteor. Et ils leur ont cousu une certaine logique.

Lorsque tout a été débogué et élaboré, il s'est avéré que la tâche était posée à l'envers et que la logique de l'entrepreneur individuel était nécessaire pour la LLC, et la logique de la LLC était nécessaire pour l'entrepreneur individuel. « Pas de problème », disons-nous, et en mode entreprise, nous renommeons les éléments. Après tout, entrer dans le code est beaucoup plus difficile. Une année passe et une nouvelle tâche vous est confiée : mettre en place un peu plus de logique pour IP Sidorov. Vous allez dans le configurateur, écrivez la logique, commencez à vérifier et rien ne fonctionne, parce que... dans le configurateur IPSidorov et dans l'entreprise - OOOMeteor. Le cerveau est brisé et je veux détruire ce râteau. Le plus simple et le plus évident est d'afficher le nom d'un élément prédéfini sous forme de liste. Voici le problème : vous ne pouvez obtenir le nom d'un nom prédéfini que dans la version 8.2 en utilisant la méthode. Mais la méthode a ses propres inconvénients ; elle ne peut pas être obtenue dans une requête. Ceux. Le premier inconvénient est d'obtenir le nom du prédéfini à partir d'une référence au répertoire.

Le deuxième inconvénient est que nous avons déjà un élément de répertoire et que nous devons le prédéfinir. Nous créons un élément prédéfini et obtenons deux éléments dans le répertoire. L’une est prédéfinie, l’autre est opérationnelle, ce qui est référencé dans tous nos documents. Remplacer les liens est certainement utile, mais si la base de données est volumineuse, c'est difficile.

Maintenant au point

La première est que le répertoire possède désormais la propriété "Mise à jour des 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 tout de suite dans le répertoire. Ceux. les métadonnées ne sont en aucun cas associées aux données. Et si vous ne le créez pas dans le répertoire, alors y accéder par son nom via le gestionnaire de répertoire provoquera une erreur de syntaxe.

Très intéressant, mais pourquoi ? Comment peut-on créer un élément dans le répertoire ? Vous pouvez le créer comme vous le souhaitez ou le lier à un existant. Le répertoire possède désormais l'attribut "Nom des données prédéfinies". Nous créons un élément de répertoire par programme comme d'habitude via «Directories.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 récupérons son objet et remplissons à nouveau le « Nom des données prédéfinies ». Tous.

Et enfin un peu de sirop

Ce nouvel attribut est non seulement disponible en lecture et en écriture, mais il est également disponible dans les requêtes. De cette façon, vous pouvez lui imposer des conditions dans les requêtes, déterminer s'il est prédéfini ou non.

Merci pour votre attention.

Traitement simple pour travailler avec des valeurs prédéfinies.

Permet de comparer les éléments de sécurité des informations avec les éléments prédéfinis dans la configuration.

Permet de vérifier dans l'ensemble de la configuration la présence d'éléments dupliqués (plusieurs éléments de sécurité de l'information associés à un élément prédéfini - erreur) et manquants (éléments prédéfinis qui ne sont pas associés aux éléments de sécurité de l'information - erreur). Tel des éléments pourraient survenir lors d'échanges ou de pannes et entraîner des erreurs dans la configuration.

Vous pouvez simplement afficher les valeurs actuelles et apporter les modifications nécessaires.

Mode opératoire:

1. Nous commençons le traitement.

2. Sélectionnez le type (annuaire, plan comptable, PVC, PVR).

3. Nous sélectionnons le répertoire du type sélectionné.

4. Tous les éléments prédéfinis disponibles dans la sécurité de l'information et décrits dans la configuration apparaissent dans la partie tabulaire du traitement.

S'il y a plusieurs éléments dans la base de données qui sont liés à une propriété prédéfinie, ou si certains des éléments décrits dans la configuration ne se voient pas attribuer d'éléments de sécurité de l'information, le système le signalera lors de la sélection d'un répertoire. Les éléments en double et manquants apparaîtront en haut de la liste et seront surlignés en orange.

5. Nous définissons de nouvelles valeurs pour les éléments prédéfinis requis.

Dans ce cas, les lignes pour lesquelles un élément prédéfini disparaît de la configuration sont marquées en rouge. Les bleues sont les lignes pour lesquelles l'élément prédéfini change, les vertes sont les lignes pour lesquelles l'élément prédéfini apparaît.
S'il y a un grand nombre de doublons, il convient de sélectionner toutes les lignes supplémentaires avec la souris et d'indiquer pour toutes celles sélectionnées l'annulation de la connexion avec le bouton « Annuler la correspondance » (à partir de la version 1.3.1)

6. Nous effectuons la réaffectation en cliquant sur le bouton « Réaffecter les éléments ».

Vérification des doublons(erreur "L'élément prédéfini n'est pas unique"):

Lorsque vous cliquez sur le bouton « Vérifier les doublons », le traitement vérifiera tous les ouvrages de référence, plans comptables, PVC et PVR et affichera une liste de tableaux avec des éléments dupliqués indiquant le nombre d'éléments dupliqués.

Après cela, vous devez vérifier séparément les objets pour lesquels des erreurs ont été trouvées.

Vérification des entrées manquées(erreur "L'élément prédéfini n'est pas dans les données"):

Lorsque vous cliquez sur le bouton « Vérifier les manques », le traitement vérifiera tous les ouvrages de référence, plans comptables, PVC et PVR et affichera une liste d'éléments prédéfinis qui ne sont pas associés aux données de sécurité de l'information.

Nécessite la plate-forme 8.3.3 ou supérieure pour être utilisée.

Universel, peut être utilisé avec n’importe quelle configuration.

Détecter la langue Afrikaans Albanais Arabe Arménien Azerbaïdjanais Basque Bengali Biélorusse Bulgare Catalan Chinois (simp) Chinois (trad) Croate Tchèque Danois Néerlandais Anglais Espéranto Estonien Philippin Finnois Français Galicien Géorgien Allemand Grec Gujarati Créole haïtien Hébreu Hindi Hongrois Islandais Indonésien Irlandais Italien Japonais Kannada Coréen Lao Latin Letton Lituanien Macédonien Malais Maltais Norvégien Persan Polonais Portugais Roumain Russe Serbe Slovaque Slovène Espagnol Swahili Suédois Tamoul Telugu Thaï Turc Ukrainien Ourdou Vietnamien Gallois Yiddish Afrikaans Albanais Arabe Arménien Azerbaïdjanais Basque Bengali Biélorusse Bulgare Catalan Chinois (Simp) Chinois (Trad) Croate Tchèque Danois Néerlandais Anglais Espéranto Estonien Philippin Finnois Français Galicien Géorgien Allemand Grec Gujarati Créole haïtien Hébreu Hindi Hongrois Islandais Indonésien Irlandais Italien Japonais Kannada Coréen Lao Latin Letton Lituanien Macédonien Malais Maltais Norvégien Persan Polonais Portugais Roumain Russe Serbe Slovaque Slovène Espagnol Swahili Suédois Tamoul Telugu Thaï Turc Ukrainien Ourdou Vietnamien Gallois Yiddish