1c pagproseso ng paglalarawan ng mga sql table. Istraktura ng imbakan ng database (mga pinamamahalaang form). Mga pagkakaiba sa mga umiiral na pagpapatupad

Ang istruktura sa 1C 8.3 at 8.2 programming language ay isang set ng mga pares na "Key" at "Value". Ang field na "Key" ay may uri ng string, habang ang field na "Value" ay maaaring tumanggap ng anumang uri ng data. Karaniwang ginagamit upang mag-imbak at maglipat ng isang hanay ng mga parameter sa pagitan ng mga pamamaraan.

Ang isang istraktura sa 1C programming language ay maaaring malikha sa dalawang paraan gamit ang "Bago" na konstruksyon.

Unang paraan:

Structure = bagong Structure;
Structure.Insert("ParameterKey1", "ParameterValues ​​​​No.1");
Structure.Insert("ParameterKey2", "ParameterValues ​​​​No.2");

Pangalawang paraan:

Structure = Bagong Structure("ParameterKey1, ParameterKey2", "ParameterValues ​​No.1", "ParameterValues ​​No.2");

Ang parehong mga pamamaraan ay lilikha ng istraktura na makikita sa screenshot mula sa pag-debug:

Kumuha ng 267 video lesson sa 1C nang libre:

Baguhin

Maaari kang magdagdag o magbago ng istraktura gamit ang pamamaraang "Insert()".

Structure.Insert("KeyName", KeyValue);

Kung kailangan mong baguhin ang halaga ng lumang key, ilagay ang pangalan nito. Kung magdaragdag ka ng bagong key, magdagdag ng natatanging pangalan na nauugnay sa lahat ng mga key sa istraktura.

Upang magtanggal ng elemento ng koleksyon, kailangan mong gamitin ang paraan na "Tanggalin", kung saan ipapasa mo ang pangalan ng key:

Structure.Delete("KeyName");

Posible ring i-clear ang lahat ng mga bagay sa isang koleksyon:

Structure.Clear();

Binabaybay ang istraktura

Upang umulit sa pamamagitan ng isang koleksyon ng isang istraktura, kailangan mong gamitin ang pagbuo ng "Para sa Bawat KeyValue Mula sa Structure Loop".

Halimbawa:

Para sa Bawat KeyKahulugan Mula sa Structure Loop
…… //proseso, halimbawa, baguhin ang mga halaga
EndCycle;

Sa bawat cycle makikita mo na ang mga sumusunod na field ay available sa amin:

Ang 1C platform ay isang mataas na antas na tool para sa pagtatrabaho sa mga database. Sa pangkalahatan, hindi kailangang isipin ng developer kung ano at paano nangyayari sa panig ng DBMS, dahil ang platform mismo ang nagpapasya kung gaano karaming mga talahanayan ang dapat nitong gawin at kung anong mga field ang nasa loob ng mga ito.

Gayunpaman, sa malalaking proyekto ay may pangangailangan na magtrabaho nang direkta sa data, halimbawa, upang pag-aralan ang impormasyon gamit ang mga tool ng third-party o, tulad ng sa aking kaso, upang isama ang database sa mga panlabas na application. Sa ganitong sitwasyon, kinakailangang magkaroon ng ideya kung aling mga larangan ng pisikal na talahanayan ang hahanapin ang impormasyong kailangan natin.

Ang built-in na function ay inilaan para lamang sa ganoong kaso GetDatabaseStorageStructure(), na nagbabalik ng lahat ng kinakailangang data sa anyo ng isang talahanayan ng mga halaga. Bukod dito, ang ilang mga detalye (Mga Patlang at Mga Index) ng talahanayang ito ay mismong mga talahanayan ng mga halaga.

Sa isang banda, maginhawa na magkaroon ng lahat ng data sa isang istraktura, ngunit, sa kabilang banda, ang mga karagdagang paghihirap ay lumitaw sa paglilipat ng talahanayang ito sa kliyente (ang Load() na paraan, sa kasamaang-palad, ay hindi naglo-load ng mga nested table). Dahil dito, kailangan mong patakbuhin ang lahat ng mga entry sa talahanayan sa isang loop, na humahantong sa mas mabagal na trabaho para sa malalaking volume.

Dahil dito, ang isang mas magandang opsyon ay ang pagpasa ng mga pangalan ng object ng metadata sa function upang bawasan ang dami ng data na ibinalik. Gayunpaman, hindi lahat ng mga talahanayan ng DBMS ay nauugnay sa metadata ng pagsasaayos, kaya iniwan ko ang pagpipilian upang tingnan ang buong listahan.

Pag-andar ng pagproseso

Kapag na-activate ang isang elemento ng metadata tree, mapupunan ang listahan ng mga talahanayan, field at index. Kapag nag-double click ka sa ugat ng puno, ang lahat ng mga talahanayan ay ipinapakita, kabilang ang mga talahanayan ng serbisyo (hindi inirerekomenda, dahil ang dami ng data na hinahanap ay tumataas).

Sa mga tabular na bahagi, gumagana ang karaniwang mga command sa paghahanap at listahan.

Mga pagkakaiba sa mga umiiral na pagpapatupad

Mayroong ilang mga katulad na publikasyon, halimbawa, at. Gayunpaman, ang kanilang abala ay ang kakulangan ng isang metadata tree, na nagpapahirap sa pag-navigate. Ang paghahanap ay isinasagawa din sa pamamagitan ng mga pangalan ng mga talahanayan at mga patlang sa database, at hindi kabaligtaran.

Ang pag-andar ay pinakamalapit sa publikasyon ng may-akda (). Sa kaibahan, ang pagproseso na ito ay naglalaman ng pinaka kumpletong puno metadata (mga exchange plan, constants, mga log ng dokumento, atbp.). Bukod sa ang istraktura ng data ay ipinakita nang mas malinaw: ang listahan ng mga talahanayan ng metadata object, ang listahan ng mga patlang at ang listahan ng mga index ay ipinapakita sa magkahiwalay na mga bahagi ng tabular.

UPD-2018-01-06 (v1.3). Inayos ang isang error na naganap sa compatibility mode 8.3.7 at mas mataas (nagbago ang gawi ng platform).

UPD-2012-08-17 (v1.2). Ang isang patch ay ginawa para sa tamang pagproseso ng mga nakagawiang gawain, ang item para sa pagpapakita ng mga plano ng mga uri ng pagkalkula ay naayos na, at ang pag-uugali kapag lumilipat ang uri ng istraktura sa root ng configuration ay naayos na.

P.S. Ang ilang mga employer, kapag nag-hire, ay nagtatanong tungkol sa bilang ng mga pisikal at virtual na talahanayan para sa mga rehistro. Masarap malaman ang mga sagot sa mga tanong na ito, lalo na't ito ang 1C: Professional level. Kung nais mong hindi lamang matutunan ang sagot na ito, ngunit "pakiramdam" din ang mga talahanayang ito, kung gayon ang paggamot na ito ay para sa iyo!

Ang data na tumutukoy sa lohika ng paggana ng system batay sa 1C:Enterprise ay kabilang sa base ng impormasyon. Ang base ng impormasyon ay naka-imbak sa isang database sa anyo ng isang hanay ng mga talahanayan, kung saan ang 1C:Enterprise 8.1 ay maaaring gumamit ng isa sa apat na database management system (DBMS):
* Built-in sa 1C:Enterprise 8.1 (bersyon ng file ng infobase). Sa kasong ito, ang lahat ng data ng infobase ay nakaimbak sa isang file na pinangalanang 1Cv8.1CD. Ang file na ito ay may binary na format at mahalagang database para sa DBMS na binuo sa 1C:Enterprise 8.1.
*Microsoft SQL Server(bersyon ng client-server ng base ng impormasyon). Ang lahat ng data ng infobase ay nakaimbak sa isang database ng Microsoft SQL Server.
* PostgreSQL(bersyon ng client-server ng base ng impormasyon). Ang lahat ng data ng infobase ay naka-imbak sa isang database ng PostgreSQL.
* IBM DB2(bersyon ng client-server ng base ng impormasyon). Ang lahat ng data ng infobase ay nakaimbak sa database ng IBM DB2.

Sa antas ng mga object ng database (mga talahanayan, patlang, index, atbp.), ang parehong mga bersyon ng file at client-server ng base ng impormasyon ay may katulad na format (naiiba sa mga maliliit na detalye). Ang ilang impormasyon tungkol sa format na ito ay kasama sa ibaba.

Ang buong base ng impormasyon ay ipinakita sa database bilang isang set ng mga talahanayan. Kabilang sa mga ito mayroong ilang mga talahanayan na kinakailangang naroroon sa view ng anumang base ng impormasyon:

*Config- pangunahing pagsasaayos ng base ng impormasyon. Ang configuration na ito ay tumutugma sa totoong istraktura ng data at ginagamit ng 1C: Enterprise 8.0 sa Enterprise mode.
*ConfigSave- configuration na na-edit ng Configurator. Ang configuration mula sa ConfigSave ay muling isinulat sa Config kapag nagsasagawa ng "Pag-update ng configuration ng database" sa Configurator, at vice versa - kapag ginagawa ang operasyon na "Configuration - Database Configuration - Bumalik sa DB Configuration" sa Configurator.
* Mga file naglalaman ng impormasyon ng serbisyo, halimbawa, tungkol sa pagtatrabaho sa repositoryo ng pagsasaayos.
* Params naglalaman ng mga parameter ng infobase. Sa kanila:
=> Listahan ng mga gumagamit ng base ng impormasyon.
=> Mga setting ng pambansang impormasyon base.
=> Talahanayan ng korespondensiya sa pagitan ng mga bagay na metadata at mga bagay sa database (mga talahanayan, mga patlang, mga index).
=> Ilang iba pang impormasyon.
*_YearOffset- offset ng petsa sa database. Ang talahanayang ito ay nilikha lamang kapag gumagamit ng Microsoft SQL Server.
* DBSchema naglalaman ng impormasyon tungkol sa istruktura ng 1C:Enterprise database at tumutukoy sa iba pang mga object ng database na ginagamit ng base ng impormasyon na ito.

Kapag nagsimula ang 1C:Enterprise, sinusuri nito ang presensya ng mga nakalistang talahanayan sa infobase at kung may nawawala sa mga ito, ang mensaheng "nasira ang infobase" ay ipapakita. Ang kawalan ng lahat ng nakalistang talahanayan ay nangangahulugan na ang base ng impormasyon ay walang laman. Sa huling kaso, ang mga talahanayan na ito ay gagawin.

Ang listahan at istraktura ng iba pang mga talahanayan ng database ay tinutukoy ng partikular na pagsasaayos, ibig sabihin, ang mga metadata object na tinukoy dito. Ang bawat pangalan ng talahanayan ay binubuo ng isang titik prefix na sinusundan ng isang numero. Tinutukoy ng prefix ang layunin ng talahanayan, at binibigyang-daan ka ng numero na makilala sa pagitan ng mga talahanayan ng parehong layunin na kabilang sa iba't ibang mga bagay ng metadata. Kung ang IBM DB2 ay ginagamit bilang DBMS, kung gayon ang inilarawang istraktura ay hindi ang mga pangalan ng mga talahanayan, ngunit ang kanilang mga alias.

Kung ang kahit man lang isang exchange plan ay tinukoy sa configuration na may nakatakdang flag na "Distributed infobase," gagawin ang mga sumusunod na talahanayan:

*_ConfigChangeRec- talahanayan para sa pagrerehistro ng mga pagbabago sa mga bagay sa pagsasaayos.
* _ConfigChangeRec_ExtProps- talaan ng mga pangalan ng file ng binagong panlabas na katangian ng mga bagay sa pagsasaayos.

Nakalista sa ibaba ang iba't ibang metadata object na maaaring tumugma sa bawat talahanayan.

* Mga Constant
=> Ang _Consts ay naglalaman ng mga kasalukuyang halaga ng lahat ng mga constant na tinukoy sa pagsasaayos.
=> _ConstsChangeRec - talahanayan para sa pagrerehistro ng mga patuloy na pagbabago. Ginawa kung kahit isang pare-pareho ang kasangkot sa kahit isang exchange plan.
*Ibahagi ang mga plano
=> _Node - talahanayan ng exchange plan.
=> _Node _VT - tabular na bahagi ng exchange plan, na nilikha para sa bawat tabular na bahagi.
* Mga direktoryo
=> _Sanggunian - talahanayan ng sanggunian.
=> _Sanggunian _VT - tabular na bahagi ng direktoryo - para sa bawat tabular na bahagi.
=> _ReferenceChangeRec - talahanayan para sa pagrerehistro ng mga pagbabago sa direktoryo. Ginawa kung ang direktoryo ay lumahok sa kahit isang exchange plan.
* Dokumentasyon
=> _Dokumento - isang talahanayan ng mga dokumento para sa bawat metadata object na "dokumento".
=> _Dokumento _VT - tabular na bahagi ng dokumento - para sa bawat tabular na bahagi ng bawat dokumento.
=> _DocumentChangeRec - isang talahanayan para sa pagrerehistro ng mga pagbabago sa isang metadata object ng uri ng "dokumento". Ginawa para sa bawat metadata object ng uri ng "dokumento" kung ito ay lalahok sa kahit isang exchange plan.
* Mga pagkakasunud-sunod ng dokumento
=> _Pagkasunod-sunod - talahanayan ng pagpaparehistro ng dokumento - para sa bawat pagkakasunud-sunod.
=> _SequenceBoundary - talahanayan ng mga hangganan ng pagkakasunud-sunod - para sa bawat pagkakasunud-sunod.
=> _SequenceChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa pagkakasunud-sunod. Ginawa para sa bawat sequence na lumalahok sa kahit isang exchange plan.
* Mga log ng dokumento.
=> _DocumentJournal - talahanayan ng journal ng dokumento, na nilikha para sa bawat journal ng dokumento.
* Mga paglilipat
=> _Enum - enumeration table - isa para sa bawat enumeration.
* Mga plano para sa mga uri ng katangian
=> _Chrc - pangunahing talahanayan ng plano ng mga uri ng katangian.
=> _Chrc _VT - tabular na bahagi ng plano ng mga uri ng katangian - para sa bawat tabular na bahagi.
=> _ChrcChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa plano ng mga uri ng katangian. Ginawa kung ang katangian ng uri ng plano ay lumahok sa kahit isang exchange plan.
* Mga tsart ng mga account
=> _Acc - pangunahing talahanayan ng tsart ng mga account.
=> _Acc _ExtDim - isang talahanayan ng mga uri ng subconto ng chart ng mga account, na ginawa para sa chart ng mga account kung ang maximum na bilang ng mga subcontos ay mas malaki sa zero.
=> _Acc _VT - tabular na bahagi ng tsart ng mga account, na nilikha para sa bawat tabular na bahagi ng tsart ng mga account.
=> _AccChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa tsart ng mga account. Ginawa kung ang chart ng mga account ay lumahok sa kahit isang exchange plan.
* Mga plano para sa mga uri ng pagkalkula
=> _CalcKind - pangunahing talahanayan ng plano ng mga uri ng pagkalkula.
=> _CalcKind Ang _BaseCK ay isang talahanayan ng mga pangunahing uri ng pagkalkula, na ginawa para sa isang plano ng mga uri ng pagkalkula kung ang property na "Base dependence" nito ay may halaga maliban sa "Hindi nakadepende".
=> _CalcKind _DisplacedCK - isang talahanayan ng mga displaced na uri ng pagkalkula, na ginawa para sa isang plan ng uri ng pagkalkula kung ang flag na "Gumagamit ng validity period" nito ay nakatakda.
=> _CalcKind _LeadingCK - talahanayan ng mga nangungunang uri ng pagkalkula - para sa bawat plano ng uri ng pagkalkula.
=> _CalcKindDN - isang auxiliary table para sa pagkakasunud-sunod ng displacement, na ginawa kung ang plano ng mga uri ng pagkalkula ay may nakatakdang flag na "Uses validity period".
=> _CalcKind _VT - tabular na bahagi ng plano ng mga uri ng pagkalkula, na nilikha para sa bawat tabular na bahagi.
=> _CalcKindChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa plano ng mga uri ng pagkalkula. Ginawa kung ang plano ng uri ng pagkalkula ay lumahok sa kahit isang exchange plan.
* Mga rehistro ng impormasyon
=> _InfoReg - talaan ng impormasyon magrehistro ng mga paggalaw.
=> _InfoRegChangeRec - talahanayan para sa pagrerehistro ng mga pagbabago sa rehistro ng impormasyon. Ginawa kung ang rehistro ng impormasyon ay lumahok sa kahit isang exchange plan.
* Mga rehistro ng akumulasyon
=> _AccumReg - talahanayan ng mga paggalaw ng rehistro ng akumulasyon.
=> _AccumRegTotals - Talaan ng mga kabuuan ng rehistro ng akumulasyon, kung ang rehistro ay sumusuporta sa mga balanse.
=> _AccumRegTurnovers - talahanayan ng mga rebolusyon ng rehistro ng akumulasyon, kung ang rehistro ay sumusuporta sa mga rebolusyon.
=> _AccumRegChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa rehistro ng akumulasyon. Ginawa kung ang rehistro ng akumulasyon ay lumahok sa kahit isang exchange plan.
=> _AccumRegOptions - isang talahanayan ng mga setting para sa pag-iimbak ng mga kabuuan ng mga rehistro ng akumulasyon, isa para sa lahat ng mga rehistro ng akumulasyon.
* Mga rehistro ng accounting
=> _AccntReg - talaan ng mga paggalaw sa rehistro ng accounting.
=> _AccntRegED - isang talahanayan ng mga halaga ng sub-account ng rehistro ng accounting, na nilikha kung ito ay tumutukoy sa isang tsart ng mga account kung saan ang maximum na bilang ng mga sub-account ay mas malaki kaysa sa zero.
=> _AccTtl0 - talaan ng mga kabuuan ng account.
=> _AccTtl - kung saan ang i ay mula 1 hanggang sa maximum na bilang ng mga subcontos. Talaan ng mga kabuuan ng account na may bilang ng mga uri ng subconto na katumbas ng i.
=> _AccTtlC - isang talahanayan ng mga kabuuan ng turnover sa pagitan ng mga account, para lamang sa accounting register na sumusuporta sa pagsusulatan.
=> _AccntRegChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa rehistro ng accounting. Ginawa kung ang accounting register ay lumahok sa kahit isang exchange plan.
=> _AccntRegOptions - talaan ng mga setting para sa pag-iimbak ng mga kabuuan, isa para sa lahat ng accounting registers.
* Pagkalkula registers
=> _CalcReg - talahanayan ng pagkalkula ng mga paggalaw ng rehistro.
=> _CalcRegActPer - isang talahanayan ng mga aktwal na panahon ng bisa para sa rehistro ng pagkalkula, na nilikha kung ang bandila ng "panahon ng bisa" ay nakatakda para sa rehistro ng pagkalkula.
=> _CalcRegChangeRec - talahanayan para sa pagrerehistro ng mga pagbabago sa rehistro ng pagkalkula. Ginawa para sa bawat settlement register na lumalahok sa kahit isang exchange plan.
=> _CalcRegRecalc - Talaan ng recalculation ng rehistro ng pagkalkula, na nilikha para sa bawat muling pagkalkula.
=> _CalcRegRecalcChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa muling pagkalkula. Ginawa kung ang muling pagkalkula ay kasangkot sa hindi bababa sa isang exchange plan.
* Mga proseso sa negosyo
=> _BPRoutePoint - talahanayan ng mga punto ng ruta ng proseso ng negosyo para sa bawat proseso ng negosyo.
=> _Proseso ng Negosyo - pangunahing talahanayan ng proseso ng negosyo.
=> _Proseso ng Negosyo _VT - tabular na bahagi ng proseso ng negosyo para sa bawat tabular na bahagi.
=> _BusinessProcessChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa proseso ng negosyo. Ginawa para sa bawat proseso ng negosyo na lumalahok sa kahit isang exchange plan.
* Mga gawain
=> _Gawain - pangunahing talahanayan ng gawain.
=> _Gawain _VT - tabular na bahagi ng gawain para sa bawat tabular na bahagi.
=> _TaskChangeRec - talahanayan para sa pagtatala ng mga pagbabago sa mga gawain. Ginawa para sa bawat metadata object ng uri ng "gawain" na lumalahok sa kahit isang exchange plan.

Kapag gumagamit ng IBM DB2, ang mga prefix ng table alias ay hindi nagsisimula sa isang underscore, ngunit kaagad sa isang bahagi ng titik.

Ang bilang ng mga talahanayang ito ay nakadepende sa functionality ng configuration at maaaring medyo malaki. Sa normal na mode, hindi sinusuri ng 1C:Enterprise ang kanilang availability, gayundin ang integridad at pagkakapare-pareho ng data na nilalaman nito. Samakatuwid, mahalaga na ang database kung saan matatagpuan ang base ng impormasyon ng 1C:Enterprise 8.1 ay protektado mula sa hindi awtorisadong pag-access at ang pagbabago nito ay isinasagawa lamang gamit ang mga tool ng 1C:Enterprise. Upang suriin, dapat mong gamitin ang function na "Administration - Testing and Correction" na nakapaloob sa configurator.

Mahalaga rin na ang pag-backup at pagbawi ng database na nag-iimbak ng base ng impormasyon ay isinasagawa lamang sa kabuuan. Para sa layuning ito, inirerekumenda na gumamit ng mga tool sa backup ng database na binuo sa ginamit na DBMS. Ang pag-backup ng bersyon ng file ng infobase ay maaaring gawin sa pamamagitan ng pagkopya sa 1Cv8.1CD file.

Ang configurator ay may espesyal na function: Administration - Mag-upload ng infobase. Sa tulong nito, maaari mong i-upload sa tinukoy na file (upload file) ang lahat ng data na nauugnay sa infobase, at wala na. Ang reverse function na "Load infobase" ay nagbibigay-daan sa iyo na i-load ang lahat ng data mula sa upload file papunta sa kasalukuyang infobase sa halip na sa mga umiiral na. Magagamit din ang mga function na ito upang mag-backup ng data ng infobase sa parehong mga bersyon ng file at client-server.