1c apstrādes SQL tabulu apraksts. Datu bāzes krātuves struktūra (pārvaldītās formas). Atšķirības no esošajām implementācijām

Programmēšanas valodas 1C 8.3 un 8.2 struktūra ir “atslēgas” un “vērtības” pāru kopa. Laukam “Atslēga” ir virknes veids, savukārt laukā “Vērtība” var pieņemt jebkuru datu tipu. Parasti izmanto, lai saglabātu un pārsūtītu parametru kopu starp procedūrām.

Struktūru 1C programmēšanas valodā var izveidot divos veidos, izmantojot konstrukciju “Jauns”.

Pirmais veids:

Struktūra = jauna struktūra;
Structure.Insert("ParameterKey1", "ParameterValues ​​​​No.1");
Structure.Insert("ParameterKey2", "ParameterValues ​​​​No.2");

Otrais veids:

Struktūra = New Structure ("ParameterKey1, ParameterKey2", "ParameterValues ​​​​No.1", "ParameterValues ​​​​No.2");

Abas metodes izveidos struktūru, kas redzama atkļūdošanas ekrānuzņēmumā:

Saņemiet 267 video nodarbības 1C bez maksas:

Mainīt

Struktūru var pievienot vai mainīt, izmantojot metodi “Insert()”.

Structure.Insert("KeyName", KeyValue);

Ja jāmaina vecās atslēgas vērtība, ievadiet tās nosaukumu. Ja pievienojat jaunu atslēgu, pievienojiet unikālu nosaukumu attiecībā uz visām atslēgām struktūrā.

Lai izdzēstu kolekcijas elementu, jums ir jāizmanto metode “Dzēst”, kurā nododat atslēgas nosaukumu:

Structure.Delete("KeyName");

Ir iespējams arī notīrīt visus kolekcijas objektus:

Struktūra.Notīrīt();

Struktūras šķērsošana

Lai atkārtotu struktūras kolekciju, jums ir jāizmanto konstrukcija “Katrai atslēgas vērtībai no struktūras cilpas”.

Piemēram:

Katrai atslēgas nozīmei no struktūras cilpas
…… //apstrādāt, piemēram, mainīt vērtības
EndCycle;

Katrā ciklā jūs redzēsiet, ka mums ir pieejami šādi lauki:

1C platforma ir augsta līmeņa rīks darbam ar datu bāzēm. Kopumā izstrādātājam nav jādomā par to, kas un kā notiek DBVS pusē, jo platforma pati izlemj, cik tabulu tai vajadzētu izveidot un kādi lauki tajās būs.

Tomēr lielos projektos ir nepieciešams strādāt ar datiem tieši, piemēram, analizēt informāciju, izmantojot trešo pušu rīkus, vai, kā manā gadījumā, datubāzi integrēt ar ārējām lietojumprogrammām. Šādā situācijā ir nepieciešams priekšstats, kuros fizisko tabulu laukos meklēt mums nepieciešamo informāciju.

Iebūvētā funkcija ir paredzēta tieši šādam gadījumam GetDatabaseStorageStructure(), kas atgriež visus nepieciešamos datus vērtību tabulas veidā. Turklāt dažas šīs tabulas detaļas (lauki un indeksi) ir vērtību tabulas.

No vienas puses, ir ērti, ja visi dati ir vienā struktūrā, bet, no otras puses, ar šīs tabulas pārsūtīšanu klientam rodas papildu grūtības (Load() metode diemžēl neielādē ligzdotas tabulas). Šī iemesla dēļ jums ir jāiziet cauri visiem tabulas ierakstiem cilpā, kas noved pie lēnāka darba lieliem apjomiem.

Tādēļ labāka iespēja būtu metadatu objektu nosaukumus nodot funkcijai, lai samazinātu atgriezto datu apjomu. Tomēr ne visas DBVS tabulas ir saistītas ar konfigurācijas metadatiem, tāpēc es atstāju iespēju skatīt pilnu sarakstu.

Apstrādes funkcionalitāte

Kad ir aktivizēts metadatu koka elements, tiks aizpildīts tabulu, lauku un indeksu saraksts. Veicot dubultklikšķi uz koka saknes, tiek parādītas visas tabulas, tostarp pakalpojumu tabulas (nav ieteicams, jo palielinās meklējamo datu apjoms).

Tabulas daļās darbojas standarta meklēšanas un saraksta komandas.

Atšķirības no esošajām implementācijām

Ir vairākas līdzīgas publikācijas, piemēram, un. Tomēr viņu neērtības ir metadatu koka trūkums, kas apgrūtina navigāciju. Meklēšana tiek veikta arī pēc tabulu un lauku nosaukumiem datu bāzē, nevis otrādi.

Funkcionalitāte ir vistuvāk autora publikācijai (). Turpretim šī apstrāde satur vispilnīgāko koku metadati (apmaiņas plāni, konstantes, dokumentu žurnāli utt.). Turklāt datu struktūra ir attēlota skaidrāk: metadatu objekta tabulu saraksts, lauku saraksts un indeksu saraksts tiek attēlots atsevišķās tabulas daļās.

UPD-2018-01-06 (v1.3). Novērsta kļūda, kas radās saderības režīmā 8.3.7 un jaunākā versijā (platformas darbība ir mainījusies).

UPD-2012-08-17 (v1.2). Ir izveidots ielāps rutīnas uzdevumu pareizai apstrādei, ir fiksēts aprēķinu veidu plānu attēlošanas vienums un ir fiksēta uzvedība, mainot struktūras veidu konfigurācijas saknē.

P.S. Daži darba devēji, pieņemot darbā, jautā par fizisko un virtuālo tabulu skaitu reģistriem. Būtu jauki uzzināt atbildes uz šiem jautājumiem, jo ​​īpaši tāpēc, ka šis ir 1C: profesionālais līmenis. Ja vēlies ne tikai uzzināt šo atbildi, bet arī “sajust” šīs tabulas, tad šī procedūra ir domāta Tev!

Dati, kas nosaka uz 1C:Enterprise balstītas sistēmas darbības loģiku, pieder informācijas bāzei. Informācijas bāze tiek glabāta datu bāzē tabulu kopas veidā, kurai 1C:Enterprise 8.1 var izmantot vienu no četrām datu bāzes pārvaldības sistēmām (DBVS):
* Iebūvēts 1C:Enterprise 8.1 (informācijas bāzes faila versija). Šajā gadījumā visi informācijas bāzes dati tiek saglabāti failā ar nosaukumu 1Cv8.1CD. Šim failam ir binārais formāts, un tā būtībā ir DBVS, kas iebūvēta 1C:Enterprise 8.1, datubāze.
* Microsoft SQL Server(informācijas bāzes klienta-servera versija). Visi informācijas bāzes dati tiek glabāti Microsoft SQL Server datu bāzē.
* PostgreSQL(informācijas bāzes klienta-servera versija). Visi informācijas bāzes dati tiek glabāti PostgreSQL datu bāzē.
* IBM DB2(informācijas bāzes klienta-servera versija). Visi informācijas bāzes dati tiek glabāti IBM DB2 datu bāzē.

Datu bāzes objektu līmenī (tabulas, lauki, indeksi utt.) gan informācijas bāzes faila, gan klienta-servera versijām ir līdzīgs formāts (atšķiras nelielās detaļās). Tālāk ir iekļauta informācija par šo formātu.

Visa informācijas bāze tiek parādīta datu bāzē kā tabulu kopa. Starp tām ir vairākas tabulas, kas noteikti ir atrodamas jebkuras informācijas bāzes skatījumā:

*Konfig- informācijas bāzes pamatkonfigurācija. Šī konfigurācija atbilst reālajai datu struktūrai, un to izmanto 1C:Enterprise 8.0 Enterprise režīmā.
*ConfigSave- konfigurācija, ko rediģējis konfigurators. Konfigurācijas programmā ConfigSave konfigurācija tiek pārrakstīta uz Config, veicot “Datu bāzes konfigurācijas atjaunināšanu” konfiguratorā un otrādi - veicot darbību “Konfigurācija - Datu bāzes konfigurācija - Atgriezties uz DB konfigurāciju” konfiguratorā.
* Faili satur pakalpojumu informāciju, piemēram, par darbu ar konfigurācijas repozitoriju.
* Parametri satur informācijas bāzes parametrus. Starp viņiem:
=> Informācijas bāzes lietotāju saraksts.
=> Nacionālās informācijas bāzes uzstādījumi.
=> Atbilstības tabula starp metadatu objektiem un datu bāzes objektiem (tabulas, lauki, indeksi).
=> Vēl kāda informācija.
*_Gada nobīde- datuma nobīde datu bāzē. Šī tabula tiek izveidota tikai tad, ja tiek izmantots Microsoft SQL Server.
* DBSchema satur informāciju par 1C:Enterprise datu bāzes struktūru un definē citus datu bāzes objektus, ko izmanto šī informācijas bāze.

Kad 1C:Enterprise tiek startēts, tas pārbauda, ​​vai informācijas bāzē ir uzskaitītās tabulas, un, ja kāda no tām trūkst, tiek parādīts ziņojums “Informācijas bāze ir iznīcināta”. Visu uzskaitīto tabulu trūkums nozīmē, ka informācijas bāze ir tukša. Pēdējā gadījumā šīs tabulas tiks izveidotas.

Citu datu bāzes tabulu sarakstu un struktūru nosaka konkrētā konfigurācija, proti, tajā definētie metadatu objekti. Katras tabulas nosaukums sastāv no burta prefiksa, kam seko cipars. Prefikss nosaka tabulas mērķi, un numurs ļauj atšķirt viena un tā paša mērķa tabulas, kas pieder dažādiem metadatu objektiem. Ja kā DBVS tiek izmantota IBM DB2, tad aprakstītā struktūra ir nevis tabulu nosaukumi, bet gan to aizstājvārdi.

Ja konfigurācijā ir definēts vismaz viens apmaiņas plāns ar karogu "Izplatītā informācijas bāze", tiks izveidotas šādas tabulas:

*_ConfigChangeRec- tabula konfigurācijas objektu izmaiņu reģistrēšanai.
* _ConfigChangeRec_ExtProps- konfigurācijas objektu modificēto ārējo īpašību failu nosaukumu tabula.

Tālāk ir norādīti dažādi metadatu objekti, kuriem var atbilst katra tabula.

* Konstantes
=> _Consts satur visu konfigurācijā definēto konstantu pašreizējās vērtības.
=> _ConstsChangeRec - tabula pastāvīgu izmaiņu reģistrēšanai. Izveidots, ja vismaz vienā apmaiņas plānā ir iesaistīta vismaz viena konstante.
* Kopīgojiet plānus
=> _Mezgls - apmaiņas plānu tabula.
=> _Mezgls _VT - apmaiņas plāna tabulas daļa, kas izveidota katrai tabulas daļai.
* Katalogi
=> _Atsauce - atsauces tabula.
=> _Atsauce _VT - direktorijas tabulas daļa - katrai tabulas daļai.
=> _ReferenceChangeRec - tabula direktoriju izmaiņu reģistrēšanai. Izveidots, ja direktorijs piedalās vismaz vienā apmaiņas plānā.
* Dokumentācija
=> _Dokuments - dokumentu tabula katram metadatu objektam "dokuments".
=> _Dokuments _VT - dokumenta tabulas daļa - katrai katra dokumenta tabulas daļai.
=> _DocumentChangeRec - tabula “dokumenta” tipa metadatu objekta izmaiņu reģistrēšanai. Izveidots katram "dokumenta" tipa metadatu objektam, ja tas piedalās vismaz vienā apmaiņas plānā.
* Dokumentu secības
=> _Secība - dokumentu reģistrācijas tabula - katrai secībai.
=> _SequenceBoundary - secības robežu tabula - katrai secībai.
=> _SequenceChangeRec - tabula secības izmaiņu ierakstīšanai. Izveidots katrai secībai, kas piedalās vismaz vienā apmaiņas plānā.
* Dokumentu žurnāli.
=> _Dokumentu žurnāls - dokumentu žurnāla tabula, kas izveidota katram dokumentu žurnālam.
* Pārskaitījumi
=> _Enum - uzskaitījuma tabula - katram uzskaitījumam pa vienai.
* Plāni raksturlielumu veidiem
=> _Chrc - raksturlielumu tipu plāna galvenā tabula.
=> _Chrc _VT - raksturlielumu veidu plāna tabulas daļa - katrai tabulas daļai.
=> _ChrcChangeRec - tabula izmaiņu reģistrēšanai raksturlielumu veidu plānā. Izveidots, ja raksturīgā tipa plāns piedalās vismaz vienā apmaiņas plānā.
* Kontu shēmas
=> _Acc - kontu plāna galvenā tabula.
=> _Acc _ExtDim - kontu plāna apakškonto tipu tabula, kas izveidota kontu plānam, ja maksimālais apakškontēmu skaits ir lielāks par nulli.
=> _Acc _VT - kontu plāna tabulas daļa, kas izveidota katrai kontu plāna tabulas daļai.
=> _AccChangeRec - tabula izmaiņu ierakstīšanai kontu plānā. Izveidots, ja kontu plāns piedalās vismaz vienā apmaiņas plānā.
* Plāni aprēķinu veidiem
=> _CalcKind - aprēķinu veidu plāna galvenā tabula.
=> _CalcKind _BaseCK ir pamata aprēķinu tipu tabula, kas izveidota aprēķinu tipu plānam, ja tā rekvizītam “Bāzes atkarība” ir cita vērtība, nevis “Neatkarīgs”.
=> _CalcKind _DisplacedCK - pārvietoto aprēķinu tipu tabula, kas izveidota aprēķinu tipa plānam, ja ir iestatīts tās karodziņš "Izmanto derīguma periodu".
=> _CalcKind _LeadingCK - vadošo aprēķinu tipu tabula - katram aprēķinu veida plānam.
=> _CalcKindDN - pārvietošanas secības palīgtabula, kas izveidota, ja aprēķinu veidu plānā ir iestatīts karogs "Izmanto derīguma termiņu".
=> _CalcKind _VT - aprēķinu veidu plāna tabulas daļa, kas izveidota katrai tabulas daļai.
=> _CalcKindChangeRec - tabula izmaiņu fiksēšanai aprēķinu veidu plānā. Izveidots, ja aprēķina tipa plāns piedalās vismaz vienā apmaiņas plānā.
* Informācijas reģistri
=> _InfoReg - informācijas reģistra kustību tabula.
=> _InfoRegChangeRec - tabula izmaiņu reģistrēšanai informācijas reģistrā. Izveidots, ja informācijas reģistrs piedalās vismaz vienā apmaiņas plānā.
* Uzkrāšanas reģistri
=> _AccumReg - uzkrāšanas reģistra kustību tabula.
=> _AccumRegTotals - uzkrāšanas reģistra kopsummas tabula, ja reģistrs atbalsta atlikumus.
=> _AccumRegTurnovers - akumulācijas reģistra apgriezienu tabula, ja reģistrs atbalsta apgriezienus.
=> _AccumRegChangeRec - tabula izmaiņu reģistrēšanai uzkrāšanas reģistrā. Izveidots, ja uzkrāšanas reģistrs piedalās vismaz vienā apmaiņas plānā.
=> _AccumRegOptions - iestatījumu tabula uzkrāšanas reģistru kopsummas glabāšanai, viena visiem uzkrāšanas reģistriem.
* Grāmatvedības reģistri
=> _AccntReg - kustību tabula grāmatvedības reģistrā.
=> _AccntRegED - grāmatvedības reģistra subkontu vērtību tabula, kas izveidota, ja tā attiecas uz kontu plānu, kurā maksimālais apakškontu skaits ir lielāks par nulli.
=> _AccTtl0 - kontu kopsummas tabula.
=> _AccTtl - kur i ir no 1 līdz maksimālajam apakškontēmu skaitam. Kontu kopsummas tabula ar apakškonto tipu skaitu, kas vienāds ar i.
=> _AccTtlC - tabulu par apgrozījuma kopsummu starp kontiem, tikai uzskaites reģistram, kas atbalsta korespondenci.
=> _AccntRegChangeRec - tabula izmaiņu ierakstīšanai grāmatvedības reģistrā. Izveidots, ja grāmatvedības reģistrs piedalās vismaz vienā apmaiņas plānā.
=> _AccntRegOptions - kopsummas glabāšanas iestatījumu tabula, viena visiem grāmatvedības reģistriem.
* Aprēķinu reģistri
=> _CalcReg - aprēķinu reģistra kustību tabula.
=> _CalcRegActPer - aprēķinu reģistra faktisko derīguma termiņu tabula, kas izveidota, ja aprēķinu reģistram ir iestatīts karodziņš "Derīguma termiņš".
=> _CalcRegChangeRec - tabula izmaiņu reģistrēšanai aprēķinu reģistrā. Izveidots katram norēķinu reģistram, kas piedalās vismaz vienā apmaiņas plānā.
=> _CalcRegRecalc - aprēķinu reģistra pārrēķinu tabula, kas izveidota katram pārrēķinam.
=> _CalcRegRecalcChangeRec - tabula pārrēķina izmaiņu reģistrēšanai. Izveidots, ja pārrēķins ir iesaistīts vismaz vienā apmaiņas plānā.
* Biznesa procesi
=> _BPRutePoint - biznesa procesa maršruta punktu tabula katram biznesa procesam.
=> _Biznesa process - biznesa procesa galvenā tabula.
=> _Biznesa process _VT - biznesa procesa tabulas daļa katrai tabulas daļai.
=> _BusinessProcessChangeRec - tabula biznesa procesu izmaiņu reģistrēšanai. Izveidots katram biznesa procesam, kas piedalās vismaz vienā apmaiņas plānā.
* Uzdevumi
=> _Uzdevums - galveno uzdevumu tabula.
=> _Uzdevums _VT - katrai tabulas daļai uzdevuma tabulas daļa.
=> _TaskChangeRec - tabula uzdevumu izmaiņu reģistrēšanai. Izveidots katram metadatu objektam, kura tipa "uzdevums", kas piedalās vismaz vienā apmaiņas plānā.

Izmantojot IBM DB2, tabulu aizstājvārdu prefiksi nesākas ar pasvītrojumu, bet gan sākas ar burta daļu.

Šo tabulu skaits ir atkarīgs no konfigurācijas funkcionalitātes un var būt diezgan liels. Normālā režīmā 1C:Enterprise nepārbauda to pieejamību, kā arī tajos esošo datu integritāti un konsekvenci. Tāpēc ir svarīgi, lai datu bāze, kurā atrodas 1C:Enterprise 8.1 informācijas bāze, būtu aizsargāta pret nesankcionētu piekļuvi un tās pārveidošana tiktu veikta, tikai izmantojot 1C:Enterprise rīkus. Lai pārbaudītu, jums jāizmanto konfiguratorā iebūvētā funkcija "Administrēšana — pārbaude un labošana".

Svarīgi ir arī tas, ka datu bāzes, kurā tiek glabāta informācijas bāze, dublēšana un atjaunošana tiek veikta tikai kopumā. Šim nolūkam ieteicams izmantot datu bāzes dublēšanas rīkus, kas iebūvēti izmantotajā DBVS. Informācijas bāzes faila versijas dublēšanu var veikt, kopējot 1Cv8.1CD failu.

Konfiguratoram ir īpaša funkcija: Administrēšana - Augšupielādēt informācijas bāzi. Ar tās palīdzību jūs varat augšupielādēt norādītajā failā (augšupielādes failā) visus datus, kas saistīti ar informācijas bāzi, un ne vairāk. Reversā funkcija “Ielādēt informācijas bāzi” ļauj ielādēt visus datus no augšupielādētā faila pašreizējā informācijas bāzē, nevis esošos. Šīs funkcijas var izmantot arī informācijas bāzes datu dublēšanai gan failu, gan klienta-servera versijās.