Table SQL 1C. Structure de stockage de base de données (formulaires gérés). Différences des implémentations existantes

La plate-forme 1C est un outil de haut niveau pour travailler avec des bases de données. En général, le développeur n'a pas besoin de penser à quoi et à la manière dont il se passe sur le côté de la SGBD, car la plate-forme elle-même décide de la quantité de tables et de quels champs seront à l'intérieur d'eux.

Toutefois, dans les grands projets, il est nécessaire de travailler directement avec des données, par exemple, d'analyser des informations par des moyens tiers ou, comme dans mon cas, l'intégration de la base de données avec des applications externes. Dans une telle situation, il est nécessaire d'avoir une idée de quels domaines de tables physiques à rechercher les informations dont nous avons besoin.

Juste pour une telle case intégrée Guest Struit structural basé ()Renvoyer toutes les données nécessaires sous la forme d'une table de valeurs. De plus, certains détails (champs et indices) de cette table elles-mêmes sont des tables de valeurs.

D'une part, toutes les données d'une structure sont pratiques, mais, de l'autre, il existe des difficultés supplémentaires avec le transfert de cette table au client (la méthode de téléchargement (), malheureusement, ne charge pas les tables imbriquées). Compte tenu de cela, vous devez parcourir toutes les dispositions de la table dans le cycle, qui sous les gros volumes conduit à un ralentissement du travail.

En relation avec cela, la meilleure option sera transmise aux noms de fonction des objets de métadonnées afin de réduire la quantité de données retournées. Cependant, toutes les tables DBMS ne sont pas associées à des métadonnées de configuration, j'ai donc laissé la possibilité de voir la liste complète.

Traitement fonctionnel

Lorsque vous activez l'élément d'arborescence de métadonnées, remplissez la liste des tables, des champs et des index. À double-cliquant sur la racine de l'arborescence, toutes les tables sont affichées, y compris le service (non recommandé, car les volumes de données augmentent la recherche).

Dans les pièces tabulaires, les commandes de recherche standard et de sortie fonctionnent.

Différences des implémentations existantes

Il existe plusieurs publications similaires, par exemple, et. Cependant, leur inconvénient est l'absence d'un arbre de métadonnées, ce qui rend difficile la navigation. La recherche est également effectuée par le nom des tables et des champs de la base de données et non inversement.

Le plus proche de la fonctionnalité à la publication de l'auteur (). En revanche, ce traitement contient l'arbre le plus complet métadonnées (plans d'échange, constantes, journaux de documents, etc.). en outrela structure de données est présentée plus clairement: la liste des tables de l'objet de métadonnées, la liste des champs et la liste des index sont affichées dans des pièces tabulaires séparées.

UPD-2018-01-06 (v1.3). Correction d'une erreur sur le mode de compatibilité 8.3.7 et supérieur (le comportement de la plate-forme).

UPD-2012-08-17 (v1.2). Le correctif est effectué pour un traitement correct des tâches réglementaires, l'élément de préparation des espèces de calcul a été corrigé, le comportement lors de la commande du type de structure dans la configuration racine est corrigé.

P.s. Certains employeurs lors de la réception du travail posent une question sur le nombre de tables physiques et virtuelles pour les registres. Ce serait bien de connaître les réponses à ces questions, d'autant plus que ce niveau est 1c: professionnel. Si vous voulez non seulement apprendre cette réponse, mais aussi pour "toucher" ces tables, ce traitement est pour vous!

Structure dans la langue de programmation 1C 8.3 et 8.2 - Un ensemble de paires de "clé" et de "valeur". Le champ "Key" a un type de chaîne "la valeur" peut prendre n'importe quel type de données. Habituellement utilisé pour le stockage et la transmission entre les procédures d'un ensemble de n'importe quel paramètre.

La structure dans la langue de programmation 1c peut être créée de deux manières en utilisant la nouvelle conception.

La première façon:

Structure \u003d nouvelle structure;
Structure. Pour tenir ("keyaparameter1", "les valeurs du paramètre n ° 1");
Structure. Pour tenir ("KeyAparameter2", "Valeurs du paramètre n ° 2");

La deuxième façon:

Structure \u003d nouvelle structure ("KeyAparameter1, KeyAparameter2", "Valeurs du paramètre n ° 1", "Valeurs de paramètre n ° 2");

Les deux méthodes créeront une structure qui peut être vue dans la capture d'écran du débogage:

Obtenez 267 tutoriels vidéo pour 1c gratuitement:

Le changement

Vous pouvez ajouter ou modifier la structure à l'aide de la méthode "Coller ()".

Structure. Tenir ("Nom wniscu", sans signification);

Si vous souhaitez modifier la valeur de l'ancienne clé, entrez son nom. Si vous ajoutez une nouvelle clé, ajoutez un nom unique par rapport à toutes les clés de structure.

Pour supprimer l'élément de collecte, vous devez utiliser la méthode Supprimer où transférer le nom de la clé:

Structure. Libération ("nom wniscu");

Il est également possible de nettoyer tous les objets de la collection:

Structure. Pour s'il vous plaît ();

Contourner la structure

Pour passer par la collecte de la structure, vous devez utiliser la conception "pour chaque clavier de la structure du cycle".

Par example:

Pour chaque clavier de la structure du cycle
...... // processus, par exemple, modifier les valeurs
Endyclycle;

Chaque cycle sera vu que les champs suivants seront disponibles:

Les données qui définissent la logique du fonctionnement du système basée sur 1C: les entreprises appartiennent à la base d'informations. Le stockage de la base d'informations est effectué dans une base de données avec un ensemble de tables, pour lesquels 1C: Enterprise 8.1 peut utiliser l'un des quatre systèmes de gestion de base de données (SGBD):
* Intégréen 1C: Entreprise 8.1 (option de fichier de la base d'informations). Dans ce cas, toutes les données de base de données d'informations sont stockées dans le fichier avec le nom 1cv8.1cd. Ce fichier a un format binaire et est essentiellement une base de données pour l'intégré 1C: Enterprise 8.1 SGBM.
* Server Microsoft SQL (Version client-serveur de la base d'informations). Toutes les données de base de données d'informations sont stockées dans la base de données Microsoft SQL Server.
* PostgreSQL (Version client-serveur de la base d'informations). Toutes les données de base de données d'informations sont stockées dans la base de données PostgreSQL.
* IBM DB2. (Version client-serveur de la base d'informations). Toutes les données de base de données d'informations sont stockées dans la base de données IBM DB2.

Au niveau des objets de base de données (tables, champs, index, etc.) en tant que fichier et la version client-serveur de la base d'informations a un format similaire (caractérisé par des pièces insignifiantes). Certaines informations sur ce format sont contenues ci-dessous.

Toute la base d'informations est soumise dans la base de données sous la forme d'un ensemble de tables. Parmi eux, plusieurs tables sont nécessairement présentes dans la représentation de toute base d'informations:

* Config - la configuration principale de la base d'informations. Cette configuration correspond à la structure de données réelle et utilisée 1C: Enterprise 8.0 en mode entreprise.
* Configure. - Configuration éditée par le configurateur. La configuration de ConfigSave est réécrit à la configuration lors de la réalisation d'une "mise à jour de la configuration de la base de données" dans le configurateur, et inversement - lors de l'exécution de l'opération Configurateur "Configuration - une configuration de la base de données - retour à la configuration de la base de données".
* Des dossiers. Contient des informations de service, telles que travailler avec le stockage de configuration.
* Paramètres. Contient les paramètres de la base d'informations. Parmi eux:
=> Liste des utilisateurs de la base de données d'informations.
=> Paramètres de base des informations nationales.
=> Tableau de conformité des objets de métadonnées et des objets de base de données (tableaux, champs, index).
=> Quelques autres informations.
* _Yearoffset. - Déplacement des dates dans la base de données. Ce tableau est créé uniquement lors de l'utilisation de Microsoft SQL Server.
* Dbschema. Contient des informations sur la structure de la structure de la base de données 1C: entreprises et détermine d'autres objets de base de données utilisés par cette base d'informations.

Au début de la 1C: la société vérifie la présence de tables répertoriées dans la base d'informations et en l'absence de l'un d'entre eux, le message "Base d'information est détruit" est émis. L'absence de toutes tables répertoriées signifie que la base d'informations est vide. Dans ce dernier cas, ces tables seront créées.

La liste et la structure d'autres tables de base de données sont déterminées par une configuration spécifique, notamment définie dans les objets de métadonnées informatiques. Le nom de chaque table consiste en un préfixe alphabétique et le numéro suivant derrière elle. Le préfixe détermine le but de la table et le numéro vous permet de distinguer les tables de la même destination liées à différents objets de métadonnées. Si IBM DB2 est utilisé comme SGMS, la structure décrite n'a aucun nom de table, mais leurs alias.

Si la configuration définit au moins un plan d'échange avec le drapeau "Base d'information distribué", les tables suivantes seront créées:

* _Configchagerec. - Tableau d'enregistrement des modifications des objets de configuration.
* _Configchagerec_extProps. - Tableau des noms de fichiers des propriétés externes modifiées des objets de configuration.

Les objets de métadonnées suivants sont énumérés ci-dessous, ce qui peut correspondre à certaines tables.

* Constantes
=> _Conssst contient les valeurs actuelles de toutes les constantes définies dans la configuration.
=> _CONSTSCHANGANGEREC - Constant de changement de changement de changement. Il est créé si au moins une constante participe à au moins un plan d'échange.
* Plans d'échange
=> _Nœud. - Table de plan d'échange.
=> _Nœud. _VERMONT. - La partie de table du plan d'échange est créée pour chaque partie tabulaire.
* Livres de référence
=> _Référence - Livre de table de référence.
=> _Référence _VERMONT. - Pièces de table du livre de référence - Pour chaque partie tabulaire.
=> _Referencechangerec. - Tableau d'enregistrement des changements d'appel de référence. Il est créé si le répertoire participe au moins un plan d'échange.
* Documentation
=> _Document - Tableau des documents pour chaque objet de métadonnées "document".
=> _Document _VERMONT. - une partie du document - pour chaque partie tabulaire de chaque document.
=> _DocumentChangerec. - Tableau d'enregistrement des modifications de l'objet de métadonnées de type "document". Il est créé pour chaque type de "document" de type métadonnées s'il participe au moins un plan d'échange.
* Séquences de documents
=> _Séquence - Tableau d'inscription de documents - pour chaque séquence.
=> Présence de la recherche - Tableau des limites de séquence - Pour chaque séquence.
=> _Enceckechangerec. - Tableau d'enregistrement des modifications de la séquence. Il est créé pour chaque séquence qui participe à au moins un plan d'échange.
* Journaux de document.
=> _DocumentJournal - La table du journal des documents est créée pour chaque journal de document.
* Énumérations
=> _Enum - La table de liste est une pour chaque liste.
* Caractéristiques des caractéristiques
=> _Chrc. - Tableau de base du plan de caractéristiques.
=> _Chrc. _VERMONT. - partie tabsale du type de caractéristiques - pour chaque partie tabulaire.
=> _ChrcChangerec. - Tableau d'enregistrement des changements dans le plan des caractéristiques. Il est créé si le plan de caractéristiques participe à au moins un plan d'échange.
* Plans de compte
=> _Acc. - Table de plan de table de base.
=> _Acc. _Extdim - Tableau des types de régime de comptes Sous -Conto est créé pour le plan de compte dans le cas où le nombre maximal de sous-calcul est supérieur à zéro.
=> _Acc. _VERMONT. - La partie de tableau du plan de compte est créée pour chaque partie tabulaire du plan de compte.
=> _Accchegerec. - Tableau d'enregistrement des changements dans le plan de compte. Il est créé si le plan de compte participe au moins un plan d'échange.
* Plans de calcul
=> _Calckind. - Tableau de base du plan de plan de calcul.
=> _Calckind. _Baseck est une table d'espèces de calcul de base, elle est créée pour le plan d'espèces de calcul dans le cas où sa propriété "dépendance à la base" a une valeur autre que "ne dépend pas".
=> _Calckind. _DISPLACEDCK - Tableau des espèces de calcul déplacées, est créée pour le plan d'espèces de calcul au cas où il ait une "période d'action".
=> _Calckind. _LeadingCK - Tableau des principaux types de calcul - pour chaque plan d'espèces de calcul.
=> _Calckinddn. - Tableau auxiliaire pour l'ordre du déplacement, il est créé si le plan de l'espèce de calcul est défini sur "utilise la période d'action".
=> _Calckind. _VERMONT. - La partie du tableau du plan d'espèce de calcul est créée pour chaque partie tabulaire.
=> _Calckindchangerec. - Tableau d'enregistrement des changements dans le plan d'espèces de calcul. Il est créé si le plan d'espèce participe à au moins un plan d'échange.
* Registres d'information
=> _Frforeg. - Tableau des mouvements du registre de l'information.
=> _ForegChangerec. - Tableau d'enregistrement des modifications apportées au registre de l'information. Il est créé si le registre de l'information participe au moins un plan d'échange.
* Registres d'accumulation
=> _Accummisreg - Tableau de mouvement du registre de l'accumulation.
=> _Accummisregtotals. - Tableau de l'issue du registre de l'accumulation, si le registre soutient les vestiges.
=> _AccummisRregTurnovers - Table de registre d'accumulation, si le registre prend en charge les virages.
=> _Accumumregchagerec. - Tableau d'enregistrement des modifications apportées au registre de l'accumulation. Il est créé si le registre d'accumulation participe à au moins un plan d'échange.
=> _CAccumMegoption - La table des paramètres de stockage pour le stockage enregistre un à tous les registres d'accumulation.
* Registres de comptabilité
=> _Accntreg. - Tableau des mouvements du registre de comptabilité.
=> _Accentré. - Le tableau des valeurs du registre de comptabilité de Sous -Conto est créé s'il s'agit du plan de compte, qui comporte un nombre maximum de sous-correspondants plus de zéro.
=> _ACCTTL0. - Tableau du résultat sur le compte.
=> _ACCTTL. - Où i de 1 au nombre maximum de sous-classe. Tableau du résultat sur le compte du nombre de types de subconts égaux à i.
=> _ACCTTLC. - Tableau de vitesse des révolutions entre les comptes, uniquement pour le registre comptable correspondant à la correspondance.
=> _Accntregchangerec. - Tableau d'enregistrement des modifications apportées au registre de comptabilité. Il est créé si le registre de la comptabilité participe au moins un plan d'échange.
=> _ACPNTEGOPTIONS - Paramètres de stockage de table Tableau 1 pour tous les registres de comptabilité.
* Registres de calcul
=> _CALCREG - Tableau de mouvement du registre de calcul.
=> _Calcregiscer - Tableau des périodes d'action réelles pour le registre de calcul, il est créé si le registre de calcul a une "période d'action".
=> _CalcregCHangerec. - Tableau d'enregistrement des modifications apportées au registre de calcul. Créé pour chaque registre de calcul participant au moins dans un plan d'échange.
=> _Calcregecalc. - Tableau de recalcul du registre de calcul, est créé pour chaque recalcul.
=> _CalcregrecalcChangerec. - Tableau d'enregistrement des changements de recalcul. Il est créé si la recalculition participe au moins dans le même plan d'échange.
* Processus d'affaires
=> _Bproutepoint - Points de table de la route des processus métier pour chaque processus métier.
=> _Processus d'affaires - Tableau de base des processus métier.
=> _Processus d'affaires _VERMONT. - Processus d'entreprise tabulaire pour chaque partie tabulaire.
=> _BusinessProcessCHangerec. - Tableau d'enregistrement des changements de processus métier. Il est créé pour chaque processus métier participant au moins un plan d'échange.
* Tâches
=> _Tâche. - Tableau principale.
=> _Tâche. _VERMONT. - Pièces de table de la tâche pour chaque partie tabulaire.
=> _Taskchangerec. - Enregistrement de la table des changements de tâches. Il est créé pour chaque objet de type métadonnée "Tâche", qui participe au moins un plan d'échange.

Lorsque vous utilisez IBM DB2, les préfixes des pseudonymes de table ne commencent pas à partir du symbole de soulignement, mais immédiatement du sujet.

Le nombre de ces tableaux dépend de la fonctionnalité de la configuration et peut être assez grand. En mode normal 1C: la société ne vérifie pas leur présence, ainsi que l'intégrité et la cohérence des données contenues dans elles. Par conséquent, il est important que la base de données dans laquelle la base d'informations de 1c est la suivante: les entreprises 8.1 ont été protégées de l'accès non autorisé et sa modification n'a été effectuée que par des moyens de 1c: les entreprises. Pour vérifier, vous devez utiliser la fonction "Administration - Test et Correction" intégrée au configurateur.

Il est également important que la sauvegarde et la restauration de la base de données stockant la base d'informations ne soient effectuées que. À cette fin, il est recommandé d'utiliser des outils de sauvegarde de la base de données intégrés dans les SGBD utilisés. Sauvegarde de la version de fichier de la base de données d'informations peut être effectuée en copiant le fichier 1CV8.1CD.

Le configurateur dispose d'une fonctionnalité spéciale: Administration - Déchargez la base d'informations. Avec cela, vous pouvez décharger sur le fichier spécifié (fichier de déchargement) toutes les données relatives à la base d'informations et plus. La fonction "Base de données de téléchargement" permet de télécharger la base d'informations actuelle au lieu de télécharger toutes les données du fichier de déchargement. Ces fonctions peuvent également être utilisées pour sauvegarder les données de base d'informations dans le fichier et dans la version client-serveur.