1c korešpondencia sql tabuliek a objektov. Štruktúra úložiska databázy (spravované formuláre). Rozdiely od existujúcich implementácií
Štruktúra v programovacom jazyku 1C 8.3 a 8.2 je množina párov „Kľúč“ a „Hodnota“. Pole "Kľúč" má typ reťazca, "Hodnota" môže mať akýkoľvek typ údajov. Zvyčajne sa používa na ukladanie a prenos súboru parametrov medzi procedúrami.
Štruktúru v programovacom jazyku 1C je možné vytvoriť dvoma spôsobmi pomocou konštrukcie „Nová“.
Prvý spôsob:
Štruktúra = Nová štruktúra;
Štruktúra. Vložte ("Parameter kľúča1", "Hodnoty parametra # 1");
Štruktúra. Vložte ("Parameter kľúča2", "Hodnoty parametra # 2");
Druhý spôsob:
Štruktúra = Nová štruktúra ("Parameter kľúča1, Parameter kľúča2", "Hodnoty parametra č. 1", "Hodnoty parametra č. 2");
Obe metódy vytvoria štruktúru, ktorú môžete vidieť na snímke obrazovky z ladenia:
Získajte bezplatné videonávody 267 1C:
Zmena
Štruktúru môžete pridať alebo zmeniť pomocou metódy "Vložiť ()".
Structure.Insert ("KeyName", KeyValue);
Ak potrebujete zmeniť hodnotu starého kľúča, zadajte jeho názov. Ak pridáte nový kľúč, pridajte jedinečný názov vzhľadom na všetky kľúče štruktúry.
Ak chcete odstrániť prvok kolekcie, musíte použiť metódu „Odstrániť“, kde zadáte názov kľúča:
Structure.Remove ("KeyName");
Je tiež možné vymazať všetky objekty v kolekcii:
Structure.Clear ();
Priebeh štruktúry
Ak chcete opakovať kolekciu štruktúry, musíte použiť konštrukciu „Pre každý kľúč a hodnotu zo slučky štruktúry“.
Napríklad:
Pre každý kľúč a význam štruktúrnej slučky
…… // spracovať napríklad zmenu hodnôt
Koniec cyklu;
V každom cykle uvidíme, že máme k dispozícii nasledujúce polia:
Údaje, ktoré určujú logiku fungovania systému založeného na 1C: Enterprise, súvisia s informačnou základňou. Skladovanie informačnú základňu sa vykonáva v databáze vo forme súboru tabuliek, pre ktoré môže 1C: Enterprise 8.1 používať jeden zo štyroch systémov správy databáz (DBMS):
* Vstavaný v 1C: Enterprise 8.1 (verzia súboru infobase). V tomto prípade sú všetky údaje informačnej databázy uložené v súbore s názvom 1Cv8.1CD. Tento súbor má binárny formát a v skutočnosti je databázou pre DBMS zabudovanú do 1C: Enterprise 8.1.
* Microsoft SQL Server
(klientsko-serverová verzia infobázy). Všetky údaje databázy sú uložené v databáze údaje spoločnosti Microsoft SQL Server.
* PostgreSQL(klientsko-serverová verzia infobázy). Všetky údaje databázy sú uložené v databáze PostgreSQL dáta.
* IBM DB2(klientsko-serverová verzia infobázy). Všetky údaje informačnej databázy sú uložené v databáze IBM DB2.
Na úrovni databázových objektov (tabuľky, polia, indexy a pod.) má súborová aj klientsko-serverová verzia infobázy podobný formát (líši sa v nepodstatných detailoch). Niektoré informácie o tomto formáte sú uvedené nižšie.
Celá informačná báza je prezentovaná v databáze ako súbor tabuliek. Medzi nimi je niekoľko tabuliek, ktoré sú nevyhnutne prítomné v prezentácii akejkoľvek informačnej databázy:
* Konfigurácia- hlavná konfigurácia informačnej bázy. Táto konfigurácia zodpovedá skutočnej dátovej štruktúre a používa ju 1C: Enterprise 8.0 v režime Enterprise.
* ConfigSave- konfigurácia upravená konfigurátorom. Konfigurácia z ConfigSave sa prepíše v Config, keď sa v konfigurátore vykoná "Aktualizácia konfigurácie databázy" a naopak - keď sa v konfigurátore vykoná operácia "Konfigurácia - Konfigurácia databázy - Návrat do konfigurácie databázy".
* Súbory obsahuje servisné informácie, napríklad o práci s ukladacím priestorom konfigurácií.
* Parametre obsahuje parametre infobase. Medzi nimi:
=>
Zoznam užívateľov infobase.
=>
Národné nastavenia informačnej bázy.
=>
Tabuľka korešpondencie objektov metadát a objektov databázy (tabuľky, polia, indexy).
=>
Niektoré ďalšie informácie.
* _YearOffset- posun dátumov v databáze. Táto tabuľka sa vytvorí iba vtedy pomocou Microsoftu SQL Server.
* DBSchema obsahuje informácie o štruktúre databázy 1C: Enterprise a definuje ďalšie databázové objekty používané touto infobázou.
Pri spustení 1C: Enterprise skontroluje prítomnosť uvedených tabuliek v infobáze a ak niektorá z nich chýba, zobrazí sa hlásenie „infobáza zničená“. Absencia všetkých uvedených tabuliek znamená, že informačná základňa je prázdna. V druhom prípade sa vytvoria tieto tabuľky.
Zoznam a štruktúra ostatných databázových tabuliek je určená špecifickou konfiguráciou, konkrétne objektmi metadát, ktoré sú v nej definované. Každý názov tabuľky pozostáva z abecednej predpony, za ktorou nasleduje číslo. Predpona definuje účel tabuľky a číslo vám umožňuje rozlíšiť medzi tabuľkami s rovnakým účelom a odkazmi na rôzne objekty metadát. Ak sa IBM DB2 používa ako DBMS, potom opísaná štruktúra nemá názvy tabuliek, ale ich aliasy.
Ak je v konfigurácii definovaný aspoň jeden výmenný plán s nastaveným príznakom "Distribuovaná infobáza", vytvoria sa nasledujúce tabuľky:
* _ConfigChangeRec- tabuľka pre registráciu zmien v konfiguračných objektoch.
* _ConfigChangeRec_ExtProps- tabuľka názvov súborov zmenených externých vlastností konfiguračných objektov.
Nižšie sú uvedené rôzne objekty metadát, ktorým môžu tabuľky zodpovedať.
* Konštanty
=>
_Consts obsahuje aktuálne hodnoty všetkých konštánt definovaných v konfigurácii.
=>
_ConstsChangeRec - tabuľka na registráciu konštantných zmien. Vytvorené, ak sa aspoň jedna konštanta zúčastňuje aspoň jedného výmenného plánu.
* Výmenné plány
=>
_Uzol
=>
_Uzol
* Referencie
=>
_Odkaz
=>
_Odkaz
=>
_ReferenceChangeRec
* Dokumenty
=>
_Dokument
=>
_Dokument
=>
_DocumentChangeRec
* Sekvencie dokumentov
=>
_Sekvencia
=>
_SequenceBoundary
=>
_SequenceChangeRec
* Denníky dokumentov.
=>
_DocumentJournal
* Výčty
=>
_Enum
* Plány typov charakteristík
=>
_Chrc
=>
_Chrc
=>
_ChrcChangeRec
* Účtovné osnovy
=>
_Acc
=>
_Acc
=>
_Acc
=>
_AccChangeRec
* Plány typov výpočtov
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKindDN
=>
_CalcKind
=>
_CalcKindChangeRec
* Registre informácií
=>
_InfoReg
=>
_InfoRegChangeRec
* Akumulačné registre
=>
_AccumReg
=>
_AccumRegTotals
=>
_AccumRegTurnovers
=>
_AccumRegChangeRec
=>
_AccumRegOptions - tabuľka nastavení pre ukladanie súčtov akumulačných registrov, jedna pre všetky akumulačné registre.
* Účtovné registre
=>
_AccntReg
=>
_AccntRegED
=>
_AccTtl0
=>
_AccTtl
=>
_AccTtlC
=>
_AccntRegChangeRec
=>
_AccntRegOptions - tabuľka nastavení ukladania súčtov, jedna pre všetky účtovné registre.
* Výpočtové registre
=>
_CalcReg
=>
_CalcRegActPer
=>
_CalcRegChangeRec
=>
_CalcRegRecalc
=>
_CalcRegRecalcChangeRec
* Obchodné procesy
=>
_BProutePoint
=>
_BusinessProcess
=>
_BusinessProcess
=>
_BusinessProcessChangeRec
* Úlohy
=>
_Úloha
=>
_Úloha
=>
_TaskChangeRec
Keď používate IBM DB2, predpony aliasov tabuliek nezačínajú podčiarkovníkom, ale okamžite začínajú abecednou časťou.
Počet týchto tabuliek závisí od funkčnosti konfigurácie a môže byť dosť veľký. V normálnom režime 1C: Enterprise nekontroluje ich prítomnosť, ako aj integritu a konzistenciu údajov, ktoré obsahujú. Preto je dôležité, aby databáza, v ktorej sa nachádza informačná báza 1C: Enterprise 8.1, bola chránená pred neoprávneným prístupom a aby sa jej úprava vykonávala iba pomocou 1C: Enterprise. Na overenie je potrebné použiť funkciu „Správa – test a opravy“ zabudovanú v konfigurátore.
Dôležité je aj to, aby sa databáza uchovávajúca infobázu zálohovala a obnovovala len celá. Na tento účel sa odporúča použiť finančné prostriedky Rezervovať kópiu databázy vložené do používaných DBMS. Verziu súboru informačnej databázy je možné zálohovať skopírovaním súboru 1Cv8.1CD.
Konfigurátor má špeciálna funkcia: Administrácia - Uvoľnite informačnú základňu. Dá sa použiť na vyloženie zadaný súbor(súbor výpisu) všetky údaje súvisiace s infobázou a nič iné. Reverzná funkcia "Načítať infobázu" umožňuje načítanie všetkých údajov z nahrávaného súboru do aktuálnej infobáze namiesto existujúcich. Tieto funkcie je možné použiť aj na zálohovanie dát infobase vo verziách súborov aj klient-server.
Platforma 1C je nástroj na vysokej úrovni pre prácu s databázami. Vo všeobecnosti vývojár nemusí premýšľať o tom, čo a ako sa deje na strane DBMS, pretože platforma sama rozhoduje o tom, koľko tabuliek vytvorí a aké polia budú v nich.
Vo veľkých projektoch je však potrebné pracovať s údajmi priamo, napríklad analyzovať informácie pomocou nástrojov tretích strán alebo ako v mojom prípade integrovať databázu s externé aplikácie... V takejto situácii je potrebné mať predstavu o tom, v ktorých poliach fyzických tabuliek hľadať informácie, ktoré potrebujeme.
Vstavaná funkcia je určená práve pre takýto prípad. GetDatabaseStorageStructure () ktorý vráti všetky požadované údaje ako tabuľku hodnôt. Navyše, niektoré detaily (polia a indexy) tejto tabuľky sú samotné tabuľky hodnôt.
Na jednej strane je výhodné mať všetky dáta v jednej štruktúre, no na druhej strane vznikajú ďalšie ťažkosti s prenosom tejto tabuľky klientovi (metóda Load (), bohužiaľ, nenačítava vnorené tabuľky ). Vzhľadom na to je potrebné prebehnúť všetky riadky tabuľky v slučke, čo pri veľkých objemoch vedie k spomaleniu práce.
Najlepšou možnosťou by preto bolo odovzdať názvy objektov metaúdajov funkcii, aby sa znížilo množstvo vrátených údajov. Nie všetky tabuľky DBMS sú však spojené s metaúdajmi konfigurácie, takže možnosť zobrazenia úplný zoznam Odišiel som.
Funkcionalita spracovania
Keď je aktivovaný prvok stromu metadát, vyplní sa zoznam tabuliek, polí a indexov. Keď dvakrát kliknete na koreň stromu, zobrazia sa všetky tabuľky vrátane servisných tabuliek (neodporúča sa, pretože sa zvyšuje množstvo vyhľadávaných údajov).
V tabuľkové častištandardné príkazy vyhľadávania a zoznamu fungujú.
Rozdiely od existujúcich implementácií
Existuje niekoľko podobných publikácií, napríklad a. Ich nevýhoda však spočíva v absencii stromu metadát, čo sťažuje navigáciu. Vyhľadávanie sa vykonáva aj podľa názvov tabuliek a polí v databáze a nie naopak.
Funkčne najbližšie k publikácii autora (). Na rozdiel od nej, dané spracovanie obsahuje najkompletnejší strom metaúdaje (výmenné plány, konštanty, denníky dokumentov atď.). Okrem toho dátová štruktúra je prezentovaná prehľadnejšie: zoznam tabuliek objektu metadát, zoznam polí a zoznam indexov sú zobrazené v samostatných tabuľkových sekciách.
UPD-2018-01-06 (v1.3). Opravená chyba, ktorá sa vyskytla v režime kompatibility 8.3.7 a vyššej (zmenené správanie platformy).
UPD-2012-08-17 (v1.2). Bola urobená záplata pre správne spracovanie naplánovaných úloh, opravená položka pre zobrazenie plánov výpočtových typov, opravené správanie pri prepínaní typu štruktúry v koreňovom adresári konfigurácie.
P.S. Niektorí zamestnávatelia pri prijímaní do zamestnania kladú otázku o počte fyzických a virtuálnych stolov pre registre. Bolo by pekné poznať odpovede na tieto otázky, najmä preto, že ide o úroveň 1C: Professional. Ak sa chcete nielen naučiť túto odpoveď, ale si tieto tabuľky aj „ohmatať“, potom je toto spracovanie určené práve vám!