Tehingute lukustuse juhtimine. Konfiguratsiooni tõlkimine hallatavatele Lukud Automaatne lukustusrežiim on tehingus kehtetu

Peamised põhjused üleminek juhtimise lukud:

  • Peamine põhjus on 1c Soovitus: ekspert lugemite alusel või 1c: PC
  • Kasutajate paralleelse tööga seotud probleemid ()
  • Kasutage Oracle'i, PostgreSQL-i ja.

Töö maksumus:

Kontrollitud blokeerimise olemus

Automaatse lukustuse juhtimisrežiimil töötamisel 1c: Ettevõte seab DBMS-i tasemel tehingus kõrge andmete eraldamise. See võimaldab täielikult kõrvaldada võimalust saada mitte-terviklikke või ebaõigeid andmeid ilma rakendatavate arendajate eriliste jõupingutusteta.

See on mugav I. Õige lähenemisviis jaoks väike kogus aktiivsed kasutajad. Arengu lihtsuse hind on DBMS tasemel teatud kogus üleliigne blokeerimine. Need lukud on seotud nii funktsioone rakendamise lukustusmehhanismid DBMS ise ja nii, et DBMS ei saa arvesse võtta (ja ei võeta arvesse) füüsilise tähenduse ja struktuuri metaandmed 1c: ettevõtted.

Kui töötate suure konkurentsiga ressursside (suur hulk kasutajaid) mingil hetkel, mõju blokeerimise vähendamise muutub märgatavaks seisukohast tulemuste paralleelselt režiimis.

Pärast konfiguratsiooni ülekandmist platvormi kontrollitud režiimi üle on aktiveeritud täiendav funktsioon "Lock Manager" ja andmete terviklikkuse kontroll ei ole praegu DBMSi küljel, vaid server 1c serveris. See suurendab koormust 1c serveri raudale (vajavad kiiremini töötlejaid ja rohkem mälu) ning teeb tegelikult isegi väikese aeglustumise (mitu protsenti), kuid palju olulisem parandab olukorda lukkudega (vähem plokke blokeerimise tõttu objektile ja Mitte ainult tabelite, vähem plokkide piirkonna ja mõnel juhul vähem eluaegset eluiga, st mitte kuni tehingu lõpuni). Selle tõttu paraneb üldine paralleelsus.


Uued 1C konfiguratsioonid rakendatakse kohe hallatava režiimis.

  • Küsimus: Kas on võimalik kõigepealt teha auditi ja seejärel üleanduda UB-le?

Vastus: Te saate, audit on tõlke teostatavuse täiendav põhjendus kontrollitavateks lukkudesse ja hinnata ka automaatsete lukkude panust üldisele aeglustamisele ja sellele, kas on vaja täiendavaid jõupingutusi peale tõlkimise.

  • Küsimus: UB-le üleandmiseks, mida täpselt pakkuda juurdepääsu - RDP, TeamViewer? Või saate saata faili konfiguratsiooni?

Vastus: me püüame mitte piirata ühte konkreetset tehnoloogiat. kaugjuurdepäässobivad kaugjuurdepääsu tehnoloogia. Kui see ei ole teie jaoks oluline, siis praktiline maaelu arengukang.
Saadetava konfiguratsioonifailiga saate optimeerimise teostada, kuid siis me ei suuda mõningaid reaalseid andmeid siluda ja te peate katsetama. Kui me teostame optimeerimise aluse koopia, siis saame hoolikalt testida enne, kui anname teile töö tulemus.

  • Küsimus: Meil \u200b\u200bon 10 korrapärast programmeerijat, kes iga päev konserveeruvad midagi muuta. Kasutatud üldine konfiguratsioonihoidla ". Kuidas interaktsiooni UB-le ülekandmisel korraldatakse? Või kõik programmeerijad tuleb puhkusele saata?

Vastus: reeglina tehakse meie muudatused paari päeva jooksul. Ülejäänud aeg on tehtud tehtud muudatuste katsetamine, sealhulgas määratletud äritegevuse nõutava loogika seisukohast ja mitte tehniliste kaalutluste seisukohast. me Me saame teha muudatusi eraldi fail Konfiguratsioon CF ja siis teie programmeerija võimaldab hoidlas. Puhkusel ei saa kedagi saata. Teistes interaktsioonivalmistes peate lihtsalt kokku leppima, millised objektid kavatsevad oma arendajad jäädvustada, nii et me ehitame tööplaani, mugavaks mõlemale poolele. Tavaliselt ei ole kogu konfiguratsiooni kogu oma arendajate püüdmine vajalik ega anna meile "rool".

Mehhanism tehinguplokid Kasutatud kasutaja juurdepääsu DBMSile.
Tehing on teatud lahutamatu operatsioon, mille jooksul baasmuutuste olukord. See on minimaalne muutus kvant: see on võimatu teha pooltehingut; Kui tehing ei ole lõpetatud, rullige baas tagasi algseisundi juurde.
Kuna tehing lööb massiivi andmeid, tekib nüanss selle massiivi juurdepääs: näiteks ühe tehingu muudab andmeid ja teised üritavad neid lugeda. Lugemise tulemus võib olla vale, sest ei lülitu sisse viimased muudatused. Seetõttu tehakse DBMS-i tasandil tehingu isolatsiooni. Järgmised isolatsiooni tasemed on võimalikud:

  • Lugege kokkupaistamata - Kuigi üks tehing muudab massiivi, ei saa teine \u200b\u200bseda muuta, vaid seda saab lugeda. Madalam isolatsiooni tase.
  • Loe pühendunud. - Kuigi üks tehing muudab massiivi, ei saa teine \u200b\u200bseda muuta ega lugeda
  • Korduv lugemine. - kui üks tehing loeb massiivi, ei saa teine \u200b\u200bseda muuta, kuid seda saab lugeda
  • Seeria- - Kuigi üks tehing loeb massiivi, ei saa teine \u200b\u200bseda muuta ega lugeda. Kõik toimingud on järjepidevad. Maksimaalne eraldamise tase.

Kui konfigureerimiseks 1c: installitud ettevõtted automaatne lukustusrežiimTehingu eraldamine DBMS on valitud. MS SQL puhul on see korratav lugemis- või seeriaviisiline tase, st andmete eraldamine on maksimaalse lähedal. See lahendab probleeme andmete õigsusega, kuid võivad kaasa tuua lukkude ilmumist DBMS-i tasemel kasutajate intensiivse töö ajal. Seetõttu 1c: ettevõttel on oma funktsionaalsus lukud, mis aktiveeritakse kontrollitud lukkude kaasamisega. Sellisel juhul loetakse MS SQL-i tehingu isoleerimise taset pühendunud. Platvorm ise isoleerib andmed ilma DBMS-i tuginemata.

Kontrollitud lukustuse režiimi lisamine toimub konfiguratsioonis:

Samuti saab lukustusrežiimi seadistada konkreetsete konfiguratsioonobjektide jaoks:

Juhul, kui konfiguratsioon tervikuna paigaldatakse Automaatne režiim Lukud, kõik tehingud kõigis registrites töötab automaatse režiimis, sõltumata konfiguratsiooniobjekti seadistatud režiimist. Kui hallatud on sarnane, kõik tehingud on juhitavuses. Kui konfiguratsioon on automaatne ja kontrollitud konfiguratsiooni jaoks, siis määratakse iga objekti režiim selle seadete abil.

Režiimi jaoks on automaatne ja juhitav režiim. Tehing, ühe kasutaja saab platvormi seisukohast olla mitu tehingut. Näiteks muudab registri dokumendi interaktiivne läbiviimine kaks kordatehingud - dokumendi salvestamine ise ja selle tehingu sees registreerumise read. Sõltuvalt dokumendi ja registri lukustuse juhtimise režiimis on võimalikud neli olukorda:

  1. Dokumendirežiim Automaatne, Registreeri automaatrežiim -\u003e
  2. Dokumendirežiim Kontrollitud, Registreeri režiim Haldaja-\u003e Registreeri kirje hallatava režiimis
  3. Dokumendi režiim Automaatne registrirežiim Haldaja -\u003e Registreeri rekord automaatrežiimis
  4. Dokumendirežiim kontrollitud, Registreeri automaatregister -\u003e Erakordne olukord (viga)

Küsimus 06.59 Eksam 1C: platvormi professionaal. Dokumendi läbiviimisel mis tahes registris, kui dokumendil on automaatne tehingulukustuse juhtimisrežiim ja register hallatakse (konfiguratsiooni omadustes, kasutatakse valikut "Automaatne ja juhitav"), siis selline käitumine toob kaasa:

Õige vastus on teine, määratleda esimesel tehingul, kui see on automaatne, siis kõik on automaatselt.

Küsimus 06.60 eksam 1C: platvormi professionaal. Dokumendi läbiviimisel mis tahes registris, kui dokumendil on kontrollitud tehingulukustuse juhtimisrežiim ja register on automaatne (konfiguratsiooni omadustes, kasutatakse valikut "Automaatne ja juhitav"), siis selline käitumine toob kaasa:

  1. eksliku olukorra tekkimisele
  2. kogu tehing teostatakse automaatselt
  3. kogu tehing teostatakse hallatava režiimis.

Õige vastus on esimene, määratledes esimesel tehingul, kui seda hallatakse, siis viga.

Küsimus 06.61 eksam 1C: platvormi professionaal. Dokumendi läbiviimisel mis tahes registris, kui dokumendil on automaatne tehingulukustuse juhtimisrežiim ja register hallatakse (konfiguratsiooni omadustes, kasutatakse "juhitavat" valikut), siis selline käitumine toob kaasa:

  1. eksliku olukorra tekkimisele
  2. kogu tehing teostatakse automaatselt
  3. kogu tehing teostatakse hallatava režiimis.

Andmelukkide juhtimise mehhanism Tehingus võimaldab teil blokeerida muutuva andmeid mitte kasutatava andmebaasi juhtimissüsteemi abil ja platvormi tööriistade abil. Sellist andmelukkide juhtimist ei tehta DBA andmete osas ja teema valdkonnas. Tänu sellele lukud on "täpsemalt" ja paralleelsus kasutajate tõstetakse.

Konfiguratsioon 1C: Enterprise 8 võib töötada tehingu kolmest lukustusrežiimist:

  • auto;
  • haldaja - standardrežiim uute konfiguratsioone;
  • automaatne ja juhitav.

Sisse automaatrežiim Andmelukkide haldamine kasutab andmebaasi haldamise süsteemi poolt korraldavaid lugemis- ja seeriapäraseid tehingutasemeid. Need tehingute eraldamise tasemed pakuvad andmete järjepidevat ja terviklikku lugemist ning arendaja ei vaja täiendavaid lukustatud juhtimismeetmeid.

Haldaja režiim Võimaldab suurendada kasutajate paralleelsust kliendiserveri versioonis töös andmebaasi tehingute isolatsiooni madalama taseme kasutamisel (loendatud). Tehingu andmete kirjutamisel blokeerivad sisseehitatud esemed automaatselt vajalikud andmed automaatselt. Arendaja on vaja hallata andmete blokeerimise juhtudel, kus äriloogika nõuab koordineeritud ja terviklikku lugemist tehingus.

Automaatne ja juhitav Režiim võimaldab teil kasutada tehingu lukud kontrollida ainult mõnede konfiguratsioonobjektide jaoks. Seda režiimi saab kasutada individuaalsete rakendusobjektide kasutajate paralleelsuse optimeerimiseks (näiteks mitme kõige intensiivsemalt kasutatava dokumendiga) või suurte konfiguratsioonide järkjärgulise tõlkimise jaoks tehingu lukustuse juhtimisrežiimi.

Automaatse lukustuse režiimis ja kontrollitud lukustusrežiimis töötamise erinevuse kokkuvõttes vt järgmist tabelit:

Kõige sagedamini on tehingu käigus andmete blokeerimise vajadus hallata dokumentide ajal, kui teil on vaja lugeda, ja seejärel kirjutada muudetud andmed samadesse tabelitesse. Näiteks, kui dokumentide läbiviimisel jälgitakse jääke.

Eriti selleks on kogumisregistrite ja raamatupidamisregistrite andmetel vara. Blokeeri põletikud.

Kui teil on vaja kontrollida jäänuseid ja kirjuta seejärel liikumise samasse registrisse, siis tuleb see vara paigaldada selle registri dokumentide määramiseks vara. Liikumine.

Selle vara tegevus on sarnane sellega, kuidas arendaja paigaldada iseseisvalt (registreeritud kood) Vajalikud kontrollitud lukud 1c: Ettevõtted 8. Nõutav kontrollitud blokeerimisplatvorm on selle dokumentide salvestamisel automaatselt automaatselt seadistatud. Selle tulemusena ei saa teised hallatavad tehingud sarnase blokeerimise abil alustada selle registri lugemist enne praeguse tehingu lõppu.

Allpool on akumulatsiooniandmete lugemisel näide "käsitsi" andmete blokeerimise juhtimise näide. Raamatupidamine Dokumendi töötlemisel Müügiarve. Selles näites luuakse ja paigaldatakse täielikult sisseehitatud keele abil kontrollitud lukud.

"1C: Enterprise" süsteem võimaldab teil kasutada kahte andmebaasi režiimi: automaatne lukustusrežiim tehingus ja kontrollitud lukud tehingus.

Nende režiimide põhiline erinevus on järgmine. Automaatne lukustusrežiim ei nõua mis tahes tegevuse arendajat tehingu lukud, et kontrollida tehingu lukud. Neid eeskirju on sätestatud "1C: ettevõtte" süsteemi platvorm, kasutades teatud tehingute isolatsiooni taset antud DBMS-is. Selline töörežiim on arendaja jaoks kõige lihtsam, kuid mõnel juhul (näiteks intensiivse samaaegse tööga. suur number Kasutajad) DBMS-i tehingute isolatsiooni sisendtase ei saa töötada piisavat paralleelsust, mis väljendub suure hulga lukkude konfliktide kujul kasutaja operatsiooni ajal.

Juhtimisel kontrollitud lukud, süsteem "1c: ettevõte" palju rohkem madal tase Tehingute isolatsioon DBMS-is, mis võimaldab teil oluliselt suurendada rakendatud lahenduse töö paralleelsust. Kuid erinevalt automaatse lukustusrežiimist, see tase Tehingute isoleerimine ei saa enam täita kõiki tehingu andmetega töötamise eeskirju. Seetõttu, kui töötate juhitava režiimis, arendaja on kohustatud sõltumatult kontrollida lukud tehingus paigaldatud.

Automaatse lukustuse režiimis ja kontrollitud lukustusrežiimis töötamise erinevuse kokkuvõttes vt järgmist tabelit:

Lukustusrežiimi seadistamine konfiguratsioonis

Konfiguratsioonil on kinnisvara lukustusrežiim. Igal konfiguratsioonirakenduses on ka andmete blokeerimisrežiim.
Andme blokeerimisrežiimi kogu konfiguratsiooni tervikuna saab seada automaatsete väärtusteni, mida hallatakse (uue konfiguratsiooni vaikimisi) ja automaatse ja hallatava vaikeväärtuse jaoks. Väärtused on automaatsed ja hallatavad tähendavad, et vastavat lukustusrežiimi kasutatakse kõigi konfiguratsioonobjektide jaoks, olenemata iga objekti väärtustest. Väärtus on automaatne ja kontrolli all, et konkreetse konfiguratsioonobjekti jaoks kasutatakse selle vara omamaises määratud režiimi automaatselt või kontrollitud.
Tuleb märkida, et metaandmete objekti jaoks määratud andmete blokeerimisrežiim on määratud tehingute jaoks, mis algatab selle objekti andmetega "1c: ettevõtte" süsteemiga (näiteks objekti andmete muutmisel).
Kui näiteks objekti salvestusoperatsioon viiakse läbi arendaja algatatud tehingus (algustehingu meetod ()), määratakse andmeploki juhtimisrežiim blokeerimisrežiimi parameetriga
Meetodid Alustapinge () ja mitte andmete blokeerimisrežiimi metaandmete objekti omaduste väärtust.
Vaikimisi blokeerimisrežiimi parameetri väärtus on registreeritud plokkide väärtus. Automaatne, nii
Selleks, et kasutada kontrollitud lukud selgesõnalise tehingu, siis tuleks täpsustada selle parameetri väärtuse.
Raputasid lukud ..

Töötage sisseehitatud keeles kontrollitud lukkudega

Sisseehitatud blokeeriva keele seotud objekti eesmärk on kontrollida tehingu lukud. Selle objekti eksemplar saab luua konstruktori abil ja võimaldab teil kirjeldada vajalikke lukustatud ruumi ja blokeerimisrežiime. Kõigi loodud lukud paigaldamiseks kasutatakse meetodit () blokeerimisobjekti blokeerimiseks () blokeerimiseks. Kui see meetod toimub tehingus (selgesõnaline või kaudne), on lukk paigaldatud ja tehingu lõpp eemaldatakse automaatselt. Kui meetod on blokeeritud () teostatakse väljaspool tehingut, lukustust ei paigaldata.

Tingimused on seatud kindlaksmääratud väärtuse väljalülitusväärtuse võrdsusele või sisestama väljale lisaväärtust määratud vahemikule.
Tingimusi saab seada kahel viisil:

  • kasutades selgesõnaliselt täpsustamist põllu nimi ja väärtus (meetod () elemendi blokeerimise objekt);
  • kasutades andmeallika allika, mis sisaldab vajalikke väärtusi (elemendi blokeerimise allika objekti vara).

Iga blokeeriva elemendi puhul saab määrata ühte kahest lukustusrežiimist:

  • jagatud
  • erakordne.

Kontrollitud lukkude ühilduvuse tabel on järgmine.

Eraldatav blokeerimisrežiim tähendab, et blokeeritud andmeid ei saa teise tehingu abil muuta, kuni praegune tehing on lõpetatud.
Erakorraline lukustusrežiim tähendab, et blokeeritud andmeid ei saa teise tehingu abil muuta praeguse tehingu lõpuni ja seda ei saa lugeda teise tehinguga, mis määrab selle andmete jaoks eraldatud blokeerimise.

Töö omadused "Automaatne ja hallatav" režiimis

Lukustuse juhtimise režiimis töötamisel tuleks arvesse võtta kahte omadust automaatselt ja hallata:

Sõltumata sellest tehinguks määratud režiimil luuakse süsteem vastava hallatava
Lukusta.
Lukustuse juhtimisrežiim määrab "ülemise" taseme tehinguga. Teisisõnu, kui Tehingu algust algas teine \u200b\u200btehing alustas tehingu algust, saab käivitamise tehingut teostada ainult režiimis, mis on juba käimasoleva tehingu jaoks paigaldatud.

Mõtle loetletud funktsioone üksikasjalikumalt.

Esimene funktsioon on see, et isegi kui tehingut kasutatakse automaatse lukustuse juhtimisrežiimi, installib süsteem lisaks ja vastavad kontrollitud lukud selle tehingu andmete kirjutamisel. Sellest järeldub, et kontrollitud lukud teostatud tehingud võivad olla vastuolus tehingutega, mis täidetakse automaatse lukustuse juhtimisrežiimis.

Teine funktsioon on see, et metaandmete objekti jaoks määratud lukustusrežiim konfiguratsioonis või tehingu alguses näidatud selgesõnaliselt (kui algusepinge () käivitamise parameeter) on ainult "soovitud" režiim. Tegelik lukustuse juhtimisrežiim, milles tehing teostatakse, sõltub sellest, kas see tehingu alguse väljakutse on esimene või selleks ajaks on teine \u200b\u200btehing sellel teisel tehingul juba alanud "1C: ettevõtte" süsteemi istungil.

Näiteks, kui soovite registri kirjete salvestamisel lukud kontrollida, tuleb dokumendi läbiviimisel kontrollida kontrollitud lukustusrežiimi nii registrisse ja dokumendi registreerimiseks, kuna registri kirjete salvestamine registreeritakse tehingus Avage dokumendi kirjutamisel.