Masa 1C SQL. Structura de stocare a bazelor de date (forme gestionate). Diferențe față de implementările existente

Platforma 1C este un instrument de nivel înalt pentru a lucra cu baze de date. În general, dezvoltatorul nu trebuie să se gândească la ceea ce și cum se întâmplă din partea DBMS, deoarece platforma însăși decide cât de mult de a crea mese și care câmpuri vor fi în interiorul lor.

Cu toate acestea, în proiecte mari este necesar să lucrăm direct cu datele direct, de exemplu, pentru a analiza informațiile prin mijloace terțe sau, ca în cazul meu, integrarea bazei de date cu aplicații externe. Într-o astfel de situație, este necesar să avem o idee despre ce domenii ale meselor fizice să caute informațiile de care avem nevoie.

Doar pentru o astfel de caz destinată funcției încorporate Bazele structurale pe bază de oaspeți ()returnând toate datele necesare sub forma unui tabel de valori. Mai mult, unele detalii (câmpuri și indici) din acest tabel sunt tabele de valori.

Pe de o parte, toate datele dintr-o singură structură sunt convenabile, dar, pe de altă parte, există dificultăți suplimentare cu transferul acestui tabel clientului (metoda de descărcare (), din păcate, nu se încarcă tabelele imbricate). Având în vedere acest lucru, trebuie să parcurgeți toate aspectele tabelului în ciclu, care sub volume mari duce la o încetinire a muncii.

În legătură cu aceasta, cea mai bună opțiune va fi transmisă la numele de funcții ale obiectelor de metadate pentru a reduce cantitatea de date returnate. Cu toate acestea, nu toate tabelele DBMS sunt asociate cu metadatele de configurare, așa că am lăsat posibilitatea de a vizualiza lista completă.

Procesare funcțională

Când activați elementul de copac metadate, completați lista tabelelor, câmpurilor și indexurilor. Cu dublu clic pe rădăcina copacului, toate tabelele sunt afișate, inclusiv serviciul (nu este recomandat, deoarece volumele de date măresc căutarea).

În părțile tabulare, funcționează comenzile standard de căutare și ieșire.

Diferențe față de implementările existente

Există mai multe publicații similare, de exemplu, și. Cu toate acestea, inconvenientele lor sunt absența unui copac de metadate, ceea ce face dificilă navigarea. Căutarea este, de asemenea, efectuată de numele tabelelor și câmpurilor din baza de date și nu invers.

Cea mai apropiată de funcționalitate a publicației autorului (). În schimb, această prelucrare conține cel mai complet copac metadate (planuri de schimb, constante, jurnale de documente etc.). în plusstructura de date este prezentată mai clar: lista tabelelor obiectului metadate, lista câmpurilor și lista de indici sunt afișate în părți tabulare separate.

UPD-2018-01-06 (v1.3). Fixată o eroare care apare în modul de compatibilitate 8.3.7 și mai mare (comportamentul platformei).

UPD-2012-08-17 (v1.2). Plasturele este realizat pentru prelucrarea corectă a sarcinilor de reglementare, elementul de realizare a planurilor de calcul a speciilor de calcul a fost corectat, comportamentul la comutarea tipului de structură din configurația rădăcinii este corectată.

P.S. Unii angajatori la primirea muncii pun o întrebare despre numărul de tabele fizice și virtuale pentru registre. Ar fi frumos să știți răspunsurile la aceste întrebări, mai ales că acest nivel este 1C: profesional. Dacă doriți ca nu numai să aflați acest răspuns, dar și să "atingeți" aceste tabele, atunci această prelucrare este pentru dvs.!

Structura în limba de programare 1C 8.3 și 8.2 - un set de perechi de "cheie" și "valoare". Câmpul "cheie" are un tip de șir, "valoare" poate lua orice tip de date. De obicei, utilizat pentru depozitarea și transmisia între procedurile pentru un set de parametri.

Structura în limba de programare 1c poate fi creată în două moduri folosind noul design.

Primul mod:

Structură \u003d structură nouă;
Structură. Pentru a ține ("Keyparameter1", "valorile parametrului nr. 1");
Structură. Pentru a ține ("Keyparameter2", "valorile parametrului nr. 2");

Al doilea mod:

Structura \u003d noua structură ("Keyparameter1, keyparameter2", "valorile parametrului nr. 1", "Valorile parametrilor nr. 2");

Ambele metode vor crea o structură care poate fi văzută în captura de screenshot de depanare:

Obțineți 267 Tutoriale video pentru 1C gratuit:

Schimbarea

Puteți adăuga sau modifica structura utilizând metoda "Paste ()".

Structură. Pentru a ține ("Name Wnispu", fără sens);

Dacă doriți să modificați valoarea cheii vechi, introduceți numele acestuia. Dacă adăugați o cheie nouă, adăugați un nume unic în raport cu toate tastele structurale.

Pentru a șterge elementul de colectare, trebuie să utilizați metoda Ștergere unde să transferați numele cheie:

Structură. Eliberare ("nume wnispu");

De asemenea, este posibil să curățați toate obiectele colecției:

Structură. Pentru a vă rugăm ();

Ocolind structura

Pentru a trece prin colecția structurii, trebuie să utilizați designul "pentru fiecare tastă din structura ciclului".

De exemplu:

Pentru fiecare tastă din structura ciclului
...... // Procesul, de exemplu, schimbați valorile
Endcycle;

Fiecare ciclu va fi văzut că vor fi disponibile următoarele câmpuri:

Date care definesc logica funcționării sistemului bazate pe 1c: Întreprinderile aparțin bazei de informații. Depozitarea bazei de informații se efectuează într-o bază de date cu un set de tabele, pentru care 1C: întreprindere 8.1 poate utiliza unul dintre cele patru sisteme de gestionare a bazelor de date (DBMS):
* IncorporatÎn 1C: întreprindere 8.1 (opțiunea de fișier a bazei de informații). În acest caz, toate datele privind baza de date a informațiilor sunt stocate în fișier cu numele 1cv8.1cd. Acest fișier are un format binar și este în esență o bază de date pentru încorporarea 1C: întreprindere 8.1 DBMS.
* Microsoft SQL Server (Versiunea client-server a bazei de informații). Toate datele privind baza de date a informațiilor sunt stocate în baza de date Microsoft SQL Server.
* Postgresql. (Versiunea client-server a bazei de informații). Toate datele bazei de date de informații sunt stocate în baza de date postgreSQL.
* IBM DB2. (Versiunea client-server a bazei de informații). Toate datele bazei de date de informații sunt stocate în baza de date IBM DB2.

La nivelul obiectelor de bază de date (tabele, câmpuri, indici etc.) ca fișier și versiunea client-server a bazei de informații are un format similar (caracterizat prin piese nesemnificative). Unele informații despre acest format sunt conținute mai jos.

Întreaga bază de informație este trimisă în baza de date sub forma unui set de tabele. Printre acestea există mai multe mese care sunt neapărat prezente în reprezentarea oricărei baze de informații:

* Config - Configurația principală a bazei de informații. Această configurație corespunde structurii reale a datelor și utilizată 1C: întreprindere 8.0 în modul întreprinderii.
* Configsave. - Configurarea editată de configurator. Configurația din configurația este rescrisă la configurare atunci când efectuați o "Actualizare de configurare a bazei de date" în configurator și invers - când rulați în configuratorul de operare, "Configurare - o configurație a bazei de date - reveniți la configurația bazei de date".
* Fișiere. Conține informații despre serviciu, cum ar fi lucrul cu configurarea configurației.
* Params. Conține parametrii bazei de informații. Printre ei:
=> Lista utilizatorilor bazei de date de informații.
=> Setările bazei naționale de informații.
=> Tabel de conformitate a obiectelor de metadate și a obiectelor de bază de date (tabele, câmpuri, indici).
=> Alte informații.
* _Yearoffset. - deplasarea datelor din baza de date. Acest tabel este creat numai atunci când se utilizează Microsoft SQL Server.
* Dbschema. Conține informații despre structura structurii bazei de date 1C: întreprinderi și determină alte obiecte de bază de date utilizate de această bază de informații.

La începutul lui 1C: Compania verifică prezența tabelelor enumerate în baza de informații și în absența oricăror dintre acestea mesajul "Baza de informare este distrusă" este emisă. Absența tuturor tabelelor enumerate înseamnă că baza de informații este goală. În acest din urmă caz, aceste tabele vor fi create.

Lista și structura altor tabele de bază de date sunt determinate de o configurație specifică, și anume definită în obiectele de metadate. Numele fiecărui tabel constă dintr-un prefix alfabetic și următorul număr din spatele ei. Prefixul determină scopul tabelului, iar numărul vă permite să distingeți tabelele aceleiași destinații legate de diferite obiecte de metadate. Dacă IBM DB2 este utilizat ca DBMS, atunci structura descrisă nu are nume de tabele, ci și aliasurile lor.

Dacă configurația definește cel puțin un plan de schimb cu pavilionul "Baza de informații distribuite", vor fi create următoarele tabele:

* _Configchangerec. - Tabelul de înregistrare a modificărilor obiectelor de configurare.
* _Configchangerec_extprops. - Tabelul de fișiere Numele proprietăților externe modificate ale obiectelor de configurare.

Următoarele obiecte de metadate sunt enumerate mai jos, care pot corespunde anumitor tabele.

* Constanti
=> _Conss conține valorile curente ale tuturor constantelor definite în configurație.
=> _CONSTSSCHANGEREC - schimbarea constantă a tabelului. Se creează dacă cel puțin o constantă participă la cel puțin un plan de schimb.
* Planuri de schimb
=> _Nodul. - tabelul planului de schimb.
=> _Nodul. _Vt. - Partea de masă a planului de schimb este creată pentru fiecare parte tabară.
* Carti de referinta
=> _Referinţă - Cartea de referință.
=> _Referinţă _Vt. - Părți de masă ale cărții de referință - pentru fiecare parte tabară.
=> _Referencechangerec. - Tabelul de înregistrare a modificărilor apelurilor de referință. Acesta este creat dacă directorul participă cel puțin un plan de schimb.
* Documentație
=> _Document - Tabelul documentelor pentru fiecare obiect metadate "document".
=> _Document _Vt. - partea de masă a documentului - pentru fiecare parte tabară a fiecărui document.
=> _DocumentSchangerec. - Tabel de înregistrare a modificărilor obiectului de metadate de tip "document". Acesta este creat pentru fiecare tip de "document" de tip metadate dacă participă la cel puțin un plan de schimb.
* Secvențe de documente
=> _Secvenţă - Tabel de înregistrare a documentelor - pentru fiecare secvență.
=> _Sequenceboundary. - Tabelul de limite de secvență - pentru fiecare secvență.
=> _Sequencechangerec. - tabel de înregistrare a modificărilor în secvență. Este creat pentru fiecare secvență care participă la cel puțin un plan de schimb.
* Jurnale de documente.
=> _DocumentJournal. - Tabelul de jurnal de documente este creat pentru fiecare jurnal de documente.
* Enumerări
=> _Enum. - Tabelul de listare este unul pentru fiecare listă.
* Caracteristicile caracteristicilor
=> _CHRC. - Planul de bază al tabelului de caracteristici.
=> _CHRC. _Vt. - o parte tab-uri a tipului de caracteristici - pentru fiecare parte tabară.
=> _Chrcchangerec. - Tabelul de înregistrare a modificărilor în planul de caracteristici. Se creează dacă planul de caracteristici participă la cel puțin un plan de schimb.
* Planuri de cont
=> _ACC. - Tabelul planului de masă de bază.
=> _ACC. _Extdim. - Tabelul de tipuri de plan de cont subconto, este creat pentru planul de cont în cazul în care numărul maxim de subconto este mai mare decât zero.
=> _ACC. _Vt. - Partea de masă a planului de cont este creată pentru fiecare parte tabară a planului de cont.
=> _Accchangerec. - Tabelul înregistrării modificărilor din planul de cont. Se creează dacă planul de cont participă cel puțin un plan de schimb.
* Planuri de calcul
=> _Calckind. - Planul de plan de bază al planului de calcul.
=> _Calckind. _Basect este un tabel de specii de calcul de bază, este creat pentru planul de specii de calcul în cazul în care "dependența de bază" are o valoare diferită de "nu depinde".
=> _Calckind. _Displackck - tabelul de specii de calcul în mod deplasat, este creat pentru planul specii de calcul în cazul în care are o "utilizare o perioadă de acțiune".
=> _Calckind. _Leadck - Tabelul de top de calcul - pentru fiecare plan de specii de calcul.
=> _Calckinddn. - Tabel auxiliar pentru ordinea deplasării, este creat dacă planul speciilor de calcul este setat la "Utilizarea perioadei de acțiune".
=> _Calckind. _Vt. - Partea de masă a planului de specii de calcul este creată pentru fiecare parte tabară.
=> _Calckindchangerec. - tabel de înregistrare a modificărilor în planul speciilor de calcul. Se creează dacă planul pentru specii participă la cel puțin un plan de schimb.
* Registrele de informații
=> _Inforeg. - Mișcările înregistrării informațiilor.
=> _Inforegchangerec. - Tabelul înregistrării modificărilor din Registrul de informații. Acesta este creat dacă registrul de informații participă cel puțin un plan de schimb.
* Registrele de acumulare
=> _Accumreg. - Tabelul de mișcare a registrului de acumulare.
=> _Acumregtotals. - Tabelul rezultatului registrului de acumulare, dacă registrul sprijină resturile.
=> _Accumregturnovers. - Tabelul de înregistrare a acumulării, dacă registrul acceptă întoarcerea.
=> _Acumregchangerec. - Tabelul de înregistrare a modificărilor în registrul de acumulare. Acesta este creat dacă registrul de acumulare participă la cel puțin un plan de schimb.
=> _ACUMREGOPTIONS - Tabelul de depozitare pentru înregistrarea înregistrează unul la toate registrele de acumulare.
* Registrele contabile
=> _ACCNTREG. - Tabelul mișcărilor registrelor contabile.
=> _Accntreged. - se creează tabelul registrului de contabilitate subconto dacă se referă la planul de cont, care are un număr maxim de subconto mai mult decât zero.
=> _ACCTTL0. - Tabelul de rezultat în cont.
=> _ACCTTL. - unde am de la 1 la numărul maxim de subconto. Tabelul de rezultat din cont cu numărul de tipuri de subconto egale cu i.
=> _ACCTTLC. - Tabelul de viteză a revoluțiilor între conturi, numai pentru corespondența de susținere a registrului contabil.
=> _ACCNTREGCHIGEREC. - Tabelul de înregistrare a modificărilor în registrul de contabilitate. Acesta este creat dacă registrul contabil participă cel puțin un plan de schimb.
=> _ACCNTOGTIONS - Setări de stocare a tabelului Tabelul pentru toate registrele contabile.
* Registrele de calcul
=> _Calcregr. - Tabelul de mișcare a registrului de calcul.
=> _Calcregactper. - Tabelul perioadelor reale de acțiune pentru registrul de calcul, este creat dacă registrul de calcul are o "perioadă de acțiune".
=> _Calcregchangerec. - Tabelul de înregistrare a modificărilor în registrul de calcul. Creat pentru fiecare registru de calcul care participă cel puțin într-un plan de schimb.
=> _Calcregrecalc. - Tabelul de recalculare a registrului de calcul, este creat pentru fiecare recalculare.
=> _Calcregrecalcchangerec. - Tabelul înregistrării modificărilor în recalculare. Se creează dacă recalcularea participă cel puțin în același plan de schimb.
* Procese de afaceri
=> _Bprostepoint. - Punctele de masă ale traseului procesului de afaceri pentru fiecare proces de afaceri.
=> _BusinessProcess. - Tabel de proces de bază de afaceri.
=> _BusinessProcess. _Vt. - Procesul de afaceri tabular pentru fiecare parte tabară.
=> _Businessprocesschangerec. - Tabelul de înregistrare a modificărilor procesului de afaceri. Acesta este creat pentru fiecare proces de afaceri care participă cel puțin un plan de schimb.
* Sarcini
=> _Sarcină. - Tabelul principal de activitate.
=> _Sarcină. _Vt. - părți de masă ale sarcinii pentru fiecare parte tabară.
=> _TASKCHIGEREC. - înregistrarea tabelului de modificări ale sarcinilor. Se creează pentru fiecare obiect de tip "sarcină" de tip metadate, care participă la cel puțin un plan de schimb.

Când utilizați IBM DB2, prefixele de pseudonime de masă încep de la simbolul sublinier, dar imediat de la subiect.

Numărul acestor tabele depinde de funcționalitatea configurației și poate fi destul de mare. În modul normal 1c: Compania nu verifică prezența acestora, precum și integritatea și coerența datelor conținute în ele. Prin urmare, este important ca baza de date în care baza de informații a 1c este: Întreprinderile 8.1 a fost protejată de accesul neautorizat, iar modificarea acestuia a fost efectuată numai prin intermediul 1C: întreprinderi. Pentru a verifica, trebuie să utilizați funcția "Administrare - Testarea și Fix" încorporată în configurator.

De asemenea, este important ca copierea și restabilirea bazei de date stocând baza de informații. În acest scop, se recomandă utilizarea instrumentelor de rezervă a bazei de date construite în DBMS utilizate. Copierea de rezervă a versiunii de fișiere a bazei de date de informații poate fi efectuată prin copierea fișierului 1CV8.1CD.

Configuratorul are o caracteristică specială: administrare - descărcați baza de informații. Cu aceasta, puteți descărca în fișierul specificat (fișierul de descărcare) toate datele referitoare la baza de informații și nu mai sunt. Funcția "Baza de date de descărcare" permite descărcarea bazei de informații curente în loc de descărcarea tuturor datelor din fișierul descărcare. Aceste funcții pot fi, de asemenea, utilizate pentru a crea copii de rezervă a datelor de bază ale informațiilor atât în \u200b\u200bfișier, cât și în versiunea client-server.