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.
=>
_Nodul.
* Carti de referinta
=>
_Referinţă
=>
_Referinţă
=>
_Referencechangerec.
* Documentație
=>
_Document
=>
_Document
=>
_DocumentSchangerec.
* Secvențe de documente
=>
_Secvenţă
=>
_Sequenceboundary.
=>
_Sequencechangerec.
* Jurnale de documente.
=>
_DocumentJournal.
* Enumerări
=>
_Enum.
* Caracteristicile caracteristicilor
=>
_CHRC.
=>
_CHRC.
=>
_Chrcchangerec.
* Planuri de cont
=>
_ACC.
=>
_ACC.
=>
_ACC.
=>
_Accchangerec.
* Planuri de calcul
=>
_Calckind.
=>
_Calckind.
=>
_Calckind.
=>
_Calckind.
=>
_Calckinddn.
=>
_Calckind.
=>
_Calckindchangerec.
* Registrele de informații
=>
_Inforeg.
=>
_Inforegchangerec.
* Registrele de acumulare
=>
_Accumreg.
=>
_Acumregtotals.
=>
_Accumregturnovers.
=>
_Acumregchangerec.
=>
_ACUMREGOPTIONS - Tabelul de depozitare pentru înregistrarea înregistrează unul la toate registrele de acumulare.
* Registrele contabile
=>
_ACCNTREG.
=>
_Accntreged.
=>
_ACCTTL0.
=>
_ACCTTL.
=>
_ACCTTLC.
=>
_ACCNTREGCHIGEREC.
=>
_ACCNTOGTIONS - Setări de stocare a tabelului Tabelul pentru toate registrele contabile.
* Registrele de calcul
=>
_Calcregr.
=>
_Calcregactper.
=>
_Calcregchangerec.
=>
_Calcregrecalc.
=>
_Calcregrecalcchangerec.
* Procese de afaceri
=>
_Bprostepoint.
=>
_BusinessProcess.
=>
_BusinessProcess.
=>
_Businessprocesschangerec.
* Sarcini
=>
_Sarcină.
=>
_Sarcină.
=>
_TASKCHIGEREC.
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.