Contacte

1C 8 Modul de blocare gestionat nu funcționează. Mecanismul încuietorilor controlate. Dacă există erori, reveniți de la Handler de evenimente

Sistemul "1C: Enterprise" vă permite să utilizați două moduri de bază de lucru: modul automat de blocare în tranzacție și încuietori controlate în tranzacție.

Diferența fundamentală a acestor moduri este după cum urmează. Modul automat de blocare nu necesită dezvoltator de acțiuni care să controleze încuietorile din tranzacție în ordine. Aceste reguli sunt furnizate de platforma de sistem 1C: Enterprise prin utilizarea anumitor niveluri de izolare a tranzacțiilor într-un anumit DBMS. Un astfel de mod de funcționare este cel mai simplu pentru dezvoltator, dar în unele cazuri (de exemplu, cu o muncă simultană intensă. un numar mare Utilizatorii) Nivelul de intrare al tranzacției în DBMS nu poate oferi o paralelism suficientă a lucrării, care se manifestă sub forma unui număr mare de conflicte de încuietori în timpul funcționării utilizatorului.

Când lucrați în încuietori controlate, sistemul "1c: întreprindere" utilizează un nivel mult mai scăzut al izolației tranzacțiilor în DBMS, ceea ce face posibilă creșterea semnificativă a paralelismului aplicației soluției aplicate. Cu toate acestea, spre deosebire de modul automat de blocare, acest nivel de izolare a tranzacțiilor nu mai poate îndeplini toate regulile de lucru cu datele din tranzacție. Prin urmare, atunci când lucrați în modul gestionabil, dezvoltatorul este obligat să controleze în mod independent încuietorile instalate în tranzacție.

Într-un rezumat al diferenței în timpul funcționării în modul de blocare automată și în modul de blocare controlat, consultați tabelul următor:

Tipul de blocare Nivelul de izolație al tranzacțiilor
Blocarea automată
Baza de date de fișiere. Mese Serializabil
MS SQL Server. Record
IBM DB2. Record Repetabile citite sau serializabile
Postgresql. Mese Serializabil
Baza de date Oracle. Mese Serializabil
Blocarea controlată
Baza de date de fișiere. Mese Serializabil
MS SQL Server. Record Citiți comitetul.
IBM DB2. Record Citiți comitetul.
Postgresql. Record Citiți comitetul.
Baza de date Oracle. Record Citiți comitetul.

Setarea modului de blocare în configurație
Configurația are o proprietate. Fiecare obiect de configurare are, de asemenea, o proprietate. Modul de gestionare a blocurilor de date.
Modul de blocare a datelor pentru întreaga configurație ca întreg poate fi setat la valori automate, gestionat (instalat în mod implicit pentru noua configurație) I. Automat și gestionabil. Valorile sunt automate și gestionate înseamnă că modul de blocare corespunzător va fi utilizat pentru toate obiectele de configurare, indiferent de valorile stabilite pentru fiecare dintre obiecte. Valoare Automat și gestionabil înseamnă că modul care este specificat în proprietatea sa va fi utilizat pentru un anumit obiect de configurare. Modul de gestionare a blocurilor de date: Automat sau gestionat.
Trebuie remarcat faptul că modul de blocare a datelor specificat pentru obiectul metadatei este setat pentru tranzacțiile care sunt inițiate de sistemul "1C: Enterprise" atunci când lucrați cu datele acestui obiect (de exemplu, atunci când modificați datele obiectului).
Dacă, de exemplu, operația de înregistrare a obiectului se efectuează într-o tranzacție inițiată de dezvoltator (metodă Începeți tensiunea ()) Modul de control al blocării datelor va fi determinat de valoarea parametrului. Modul de blocaremetodă Începeți tensiunea (), nu valoarea proprietăților obiectului metadatelor Modul de gestionare a blocurilor de date.
Implicit, parametrul Modul de blocare are sensul Regimarea încuietorilor. Automat, prin urmare
Pentru a utiliza încuietori controlate într-o tranzacție explicită, trebuie să specificați valoarea acestui parametru.
Încuietori de blocare (Setați acest parametru are sens dacăpentru proprietatea de configurare "Modul de gestionare a blocurilor de date" este selectat "Automatic și ușor de gestionat") .

Lucrați cu încuietori controlate în limba încorporată
Obiectul încorporat este conceput pentru a controla încuietorile din tranzacție Blockdata.. O instanță a acestui obiect poate fi creată utilizând un constructor și vă permite să descrieți spațiile blocate și modurile de blocare necesare. Pentru a instala toate blocările create, metoda este utilizată pentru a bloca obiectul Blockdata.. Dacă această metodă se efectuează în tranzacție (explicită sau implicită), blocarea este instalată și capătul tranzacției va fi îndepărtat automat. Dacă metoda este blocată () se efectuează în afara tranzacției, blocarea nu va fi instalată.

Condițiile sunt setate la egalitatea valorii câmpului a valorii specificate sau pentru a introduce valoarea câmpului la intervalul specificat.
Condițiile pot fi setate în două moduri:

● Utilizarea specificației explicite a numelui câmpului și a valorii (metodă Valoarea setată () Obiect Blocuri de elemente);
● Prin specificarea sursei de date care conține valorile necesare (proprietatea obiectului sursă Blocuri de elemente).

Pentru fiecare element de blocare, se poate specifica unul dintre cele două moduri de blocare:

● Partajare
● Excepțional.

Tabelul de compatibilitate al încuietorilor controlate este după cum urmează.

Modul de blocare separabil implică faptul că datele blocate nu pot fi modificate de o altă tranzacție până când tranzacția curentă nu este finalizată.
Modul de blocare excepțional implică faptul că datele blocate nu pot fi modificate de o altă tranzacție până la sfârșitul tranzacției curente și nu pot fi citite de o altă tranzacție care stabilește blocarea separată la aceste date.

Caracteristicile muncii în modul "automat și ușor de gestionat"

Când lucrați în modul de gestionare a blocării, trebuie luate în considerare două caracteristici automate și gestionate:

● Indiferent de modul specificat pentru această tranzacție, sistemul va instala gestionarea corespunzătoare
Lacăt.
● Modul de control al blocării este determinat de tranzacția la nivelul "superior" în sine. Cu alte cuvinte, dacă o altă tranzacție a început prin începerea tranzacției, tranzacția de pornire poate fi executată numai în modul care este instalat pentru tranzacția care rulează deja.

Luați în considerare caracteristicile enumerate mai detaliat.
Prima caracteristică Este că, chiar dacă tranzacția este utilizată modul de control automat al blocării, sistemul se va instala suplimentar și corespunzător blocarea controlată Când scrieți date în această tranzacție. Din aceasta rezultă că tranzacțiile executate în încuietori controlate pot a infrunta cu tranzacții,
Efectuate în modul automat de control al blocării.
A doua caracteristică Este indicat modul de gestionare a blocării pentru obiectul metadatelor din configurație sau specificat când tranzacția este specificată în mod explicit (ca parametru metoda Începeți tensiunea ()) este doar regimul "dorit". Modul real de control al blocării în care tranzacția va fi executat depinde de faptul dacă această provocare de începere a tranzacției este mai întâi sau, de acest timp, o altă tranzacție a început deja în această sesiune a sistemului "1C: Enterprise".
De exemplu, dacă doriți să controlați încuietori la înregistrarea intrărilor de înregistrare, atunci când efectuați un document, modul de blocare controlat trebuie instalat atât pentru înregistrarea în sine, cât și pentru document, deoarece înregistrarea intrărilor de înregistrare va fi înregistrată în tranzacție deschideți când scrieți un document.

Ați lovit pagina potrivită! Cel mai probabil, dimineața ați găsit că favoritul meu 1C 8.3 nu începe cu mesajul: " Începutul sesiunii cu baza de informații este interzis. Pentru a efectua backup ...».

Primul lucru care trebuie făcut acum - Permiteți urgent utilizatorilor utilizatorilor. După aceea, citiți calm articolul până la sfârșit și aflați de ce sa întâmplat și ce este "blocarea și îndepărtarea blocării cu baza de informare 1c 8.3.

Experiența mea sugerează că sunteți un utilizator (nu un administrator de sistem și nu este un programator), iar baza dvs. de informații este fișierul (dacă baza SQL, specialiștii sunt deja implicați în problema dvs.). A începe Este necesar să se înțeleagă ce dosar (director) este localizat și ștergeți un fișier în acest dosar - 1CV8.cdn (Nu puteți salva fișierul, nu va mai avea nevoie de ea).

* Dacă sunteți specialist IT, puteți merge în siguranță pentru a citi "Blocarea și îndepărtarea blocării de la baza de informații 1c".

În fereastră cu o listă de baze de informații, găsiți baza de date (figura 1 din ilustrația de mai jos) și faceți clic pe acesta (și numai unul!) O dată cu un șoarece. Apoi faceți clic pe butonul "Editați" (cifra 2).

Lista poate fi doar o bază, astfel încât această fereastră să poată fi familiarizată cu "fereastra de lansare 1c". În acest caz, faceți clic pe butonul de editare.

Dacă vedeți că baza de informații este localizată pe acest computer sau în retea locala - Experiența mea nu a lăsat jos - dosarul de bază și noi toți o facem bine. Copiați această cale ( figurile 3 și 4).

Acum mergeți la acest dosar.

Doar în caz, iată câteva opțiuni pentru pornirea conductorului:

  • Aveți Windows XP sau Windows 7. Faceți clic pe Start, Executare, Introduceți locația copiată anterior a bazei de informații. Explorer se va deschide.
  • Aveți Windows 7. Dar nu există un element "Execute". Introduceți locația imediat după apăsarea la început. Explorer se va deschide.
  • Aveți Windows 8 sau Windows 10. Faceți clic pe Start, în dreapta colțul superior Apăsați Magnifierul, introduceți locația copiată anterior a bazei de informații, apăsați ENTER. Explorer se va deschide.

  • Găsiți o dischetă galbenă pe bara de activități și faceți clic pe ea. Introduceți locația bazei de informații în bara de adrese din partea de sus a ferestrei conductorului. (Faceți clic dreapta pe bara de adrese, schimbați adresa, faceți clic dreapta pe bara de adrese, lipiți).

  • Mod universal pentru toată lumea versiuni de ferestre Și setările sale. Faceți clic pe butonul Tastatură cu caseta de selectare și, fără a le elibera, faceți clic pe tastatura Latină R (sau Rusă K). Se deschide fereastra "Run", introduceți locația copiată anterior a bazei de informații acolo și faceți clic pe OK.

Profitând de una dintre opțiunile propuse, veți cădea în fereastra dirijoare cu locația bazei de informații.


În fereastra Explorer, găsiți fișierul 1CV8.cdn în lista de fișiere, faceți clic pe acesta cu butonul din dreapta al mouse-ului, selectați "Ștergere", după cum se arată în figura anterioară.

Gata! "1c: contabilitate" sau "1c: salariu și management de personal" sau "1c: managementul comerțului" din nou lansează.

Blocarea și îndepărtarea blocării din baza de informații 1c. Noi distrugem miturile.

În această secțiune veți găsi informații unice despre lucrul cu încuietori și, de asemenea, primiți o respingere a concepțiilor greșite comune pe tema "Blocare de date".

Cum se instalează blocarea?

Mecanismul de blocare a bazei de date de informații este proiectat pentru a finaliza sesiunile deschise curente și pentru a preveni noi conexiuni. Locația blocării funcționale din meniu poate varia în funcție de configurație. De exemplu, în UT, ediția 11 (11.3.3.163) Acestea sunt NSI și administrare, [serviciu] Funcționarea utilizatorului de blocare. Opțiune alternativă: NSI și administrare, suport și întreținere, locurile de muncă de blocare. UT, ediția 10.3 (10.3.21.2) Acesta este un serviciu, utilizatorii care blochează instalarea conexiunilor cu o bază de informații.

* Există configurații sectoriale speciale în care blocarea din punctul de vedere al interfeței și din punctul de vedere al mecanismului nu va arăta așa cum este descris în acest articol. Deoarece luăm în considerare mecanismul standard pentru majoritatea configurațiilor 1C, nu vom afecta configurații sectoriale speciale.


Când se selectează acest element, se deschide caseta de dialog "Blocarea utilizatorilor", în care doriți să introduceți un mesaj pentru utilizatori, ora de începere și terminarea blocării, precum și codul de deblocare.


De la intrarea și sfârșitul acțiunii de blocare este introdusă, este necesar să fiți extrem de atenți în acest dialog și să introduceți informații explicit informații. Dacă în dialog, ar fi posibil să introduceți începutul blocării "după 15 minute" durata "timp de 20 de minute" sau cel puțin aceste valori au fost reflectate pe baza timpului absolut al începutului și al sfârșitului Din blocarea, ar fi dificil să se stabilească blocarea unui an pe an, deoarece se poate întâmpla atunci când eroarea de intrare a timpului este eroare.

Opțiunea "Timp de pornire" este recomandată pentru a instala ca dată / ora curentă + timpul necesar utilizatorilor să se pregătească pentru ieșirea cu conservarea documentelor editabile. De exemplu, acum 9 h 50 min, oferim 10 minute utilizatorilor pentru a-și păstra rezultatele. Timpul total de blocare trebuie să fie de 10 ore min.

Timpul de încheiere - Nu puteți intra, în timp ce blocarea obiectului va fi instalat pe o perioadă nedeterminată (pentru totdeauna).

Codul de deblocare este o singură "parolă" la lansarea "de la zero", contrar blocării instalate, care poate fi necesară în unele cazuri (va fi menționată mai jos). Introduceți și memorați. Acest parametru în cazul versiunii SQL a bazei de informații este vizibil în "Administrarea serverelor de întreprindere 1C" Snap și se numește "cod de permisiune".

În cazul versiunii SQL a bazei de informații, va fi necesară autorizarea administratorului bazei de informații sau a administratorului de cluster.


Deci, după apăsarea butonului "Instalare blocare" și un răspuns pozitiv pentru a confirma ...


... veți reveni la caseta de dialog anterioară, aspect care sa schimbat:


În colțul din dreapta jos, va fi emis un mesaj că blocarea utilizatorilor va fi programată. Acest mesaj va vedea numai tu.


Programată? Poate că acest lucru este într-un fel legat de sarcinile de reglementare?

Blocarea planificată a utilizatorilor funcționează, dacă sarcinile de blocare sunt setate? Da, va funcționa. Mecanismul de blocare nu utilizează sarcini de reglementare.

Ce va fi văzut de utilizatori și eu însumi?

Până când începe blocarea, utilizatorii activi vor primi mementouri "politicoase" despre nevoia de a finaliza munca. În acest dialog la timp, "da" este declanșată, astfel încât utilizatorii care lipsesc la locul de muncă vor ieși cu succes din sesiunea 1C.


Inițiatorul de blocare primește un alt mesaj:


După începerea blocării, baza de informații nu poate fi înregistrată în metoda convențională. Despre cum merge mai departe, va fi vorbit mai jos. Rețineți că dialogul nu conține indicație automată în momentul timpului de blocare, astfel încât sarcina de a informa utilizatorii despre momentul reluării muncii cade pe administrator. Aceste informații pot fi specificate în mesaj către utilizator.



Bomba explodează exact la ora stabilită. Sirena este cum să explodeze.

Contrar convingerii populare că finalizarea sesiunilor de utilizator activă este făcută ușor, după un avertisment, care poate fi ignorat și continuarea lucrului, este de fapt completarea, și este mai bine să spunem că "ambalarea", sesiunile active apar exact Programul, rigid și cu pierderea tuturor rezultatelor nesalvate. Toate avertismentele sunt emise în intervalul de la momentul făcării butonului "Setare Blocare" până la începerea blocării, după care, finalizarea sesiunii active va apărea fără nici o notificare, iar 1c va trece la încercările ciclului de început Configurare din nou, cu un interval de 1 minut.

Nu completați cu excluderea modurilor de intrare ale valorilor de referință, în care valoarea lipsește în director - pentru a ieși din modul de intrare nu poate fi (de exemplu, închideți 1c Cross), dar nu va împiedica funcționarea completă. Un interes mai semnificativ este modul de dialog modal, deci se va spune mai multe despre el.

* Finalizarea sesiunilor de utilizator în configurații vechi are loc puțin mai târziu decât timpul desemnat, deoarece Utilizatorii primesc mai întâi o alertă "Funcționarea sistemului este finalizată".

Și a explodat exact?

Pentru a începe, observăm că în configurațiile vechi pot să nu funcționeze blocarea inițiatorului de blocare. Și acum ne întoarcem la luarea în considerare a problemei pentru platforma 8.3.

Fișierul IB Utilizator care a rezolvat, de exemplu, ștergeți un document și apoi mergeți la prânz, lăsând dialogul "Mark Document Document" de pe ecran, va păstra o conexiune deschisă cu baza de informații. Desigur, sesiunea sa se va termina după prânz, după ce răspunde "da" sau "nu", dar înainte de acel moment veți vedea că există utilizatori activi. În același timp, inițiatorul de blocare va fi văzut:


Un mesaj despre o eroare de execuție va apărea în jurnalul de înregistrare, care ar trebui interpretat nu ca o eroare de execuție, dar cum "nu toți utilizatorii și-au încheiat sesiunile":


Și acesta nu este singurul motiv pentru care blocarea nu poate funcționa (Cm. Apoi, "pentru al cărui ceas?" Și "dar cum rămâne cu utilizatorii mei din Vladivostok?").

Dialogul modal în versiunea SQL a bazei de informații pe formularele gestionate

Serverul de aplicații 1C are capacitatea de a elimina sesiunea în ciuda modului de dialog modal. Interfața 1C și dialogul modal vor rămâne la utilizator pe ecran, creând vizibilitatea unei sesiuni incomplete, dar de fapt sesiunea va fi ștearsă, iar conexiunea la IB va fi întreruptă în timp util. Când încercați să continuați să lucrați, utilizatorul va vedea un mesaj de eroare "Sesiunea lipsește sau va fi șters" sau "sesiunea este completată de administrator" în funcție de nuanțe.



Dialogul modal în versiunea SQL a bazei de informații pe formularele obișnuite

Sesiunile de utilizator sunt finalizate.

După instalarea blocării din dialog, este mai bine să nu ieșiți, deoarece Când rețineți intrarea la acest dialog, înainte de începerea blocării, mesajul pe care blocarea este deja instalat (într-adevăr o jumătate), sesiunile active Zero (nu este adevărat) apare. În acest caz, procesul de finalizare a activității utilizatorilor continuă (contrazice zero de sesiuni active + nu destul de așa, deoarece utilizatorii "sunt finalizați"). Deși codul de blocare a codului nu este ideal, în cele din urmă, nu va interfera cu setarea blocării și completarea sesiunilor active, cu toate acestea dezorientarea administratorului de bază de informații.



Va lucra blocarea dacă setați blocarea și închideți dialogul?

Dacă blocarea va funcționa dacă setați blocarea și ieșiți imediat 1C (adică, completați sesiunea 1C înainte de a începe blocarea)?

Da. Mecanismul de răspuns pentru blocarea instalată nu prevede interacțiunea dintre inițiatorul de blocare și restul utilizatorilor. Sesiunile de utilizator verificați în mod independent dacă pot funcționa.

Cui ceas va bloca blocarea dacă timpul pe computere este ușor diferit?

Problema surpriza ceasului

Cu un fișier IB, fiecare computer însuși verifică dacă există o gamă de blocare temporară în IB și o compară cu ceasul local. Depinde de acuratețea ceasului lor dacă acest calculator Implementați sesiunea pentru a finaliza la momentul potrivit. Dacă baza este blocată de la ora 10:00, pentru un computer acest moment va veni mai devreme, și pentru altul - mai târziu.

În mediul de domeniu și cu funcționarea impecabilă a administratorilor de sistem, timpul pe toate computerele este sincronizat cu controlerul de domeniu. Dar la motive diferite Timpul poate fi împușcat: Timpul nu este configurat să sincronizeze controlerul de domeniu, sincronizarea timpului configurat cu un server de timp curent extern, care este mai indisponibil, eșecuri în servicii de rețea sau de domeniu, fără drepturi de schimbare a timpului de sistem etc.

Se pare că putem vorbi despre secunde, ca o ultimă soluție, minute. Dar, de fapt, pe computer poate fi, de exemplu, nu a fost stabilită nicio actualizare. sistem de operareSprijinirea tranziției la ora sezonieră (iarnă / vară) și eroarea poate fi deja o secundă și ceasul. Efectuați cu ușurință un astfel de experiment: programați blocarea la ora 10 dimineața la o jumătate de oră, iar pe unul dintre computere, întoarceți timpul timp de o oră înainte - blocarea nu funcționează pe ea.

Prin urmare, înainte de a instala blocarea, depuneți cu atenție timpul în colțul din dreapta jos al computerului cu propria dvs. Înfășurată ceasȘi, de asemenea, contactați administratorul de sistem în avans dacă funcționează sincronizarea timpului în infrastructura dvs. IT.

Și despre utilizatorii mei din Vladivostok?

Problema timpului absolut când utilizatorii din diferite zone de timp

O gamă de blocare temporară este salvată în baza de informații. Uită-te la conținutul fișierului de blocare 1CV8.CDN (care este creat în versiunea fișierului IB), este înregistrată în timp de pornire la 07/17/2017 13:59 în formatul GGHMDDDHCMS fără nici o indicație la timp zona:


Fără a specifica în fusul orar, ar fi clar despre ce timp absolut acesta este vorba de vorbireDacă timpul a fost întotdeauna legat de o anumită centură de timp, cum ar fi UTC + 0. Dar în baza de date, ora locală este salvată de computer, care a fost inițiatorul de blocare. Din ce fusul orar a fost acest computer - este necunoscut, ceea ce înseamnă un timp necunoscut de blocare absolut.

Dacă la Moscova, într-un IB centralizat, ați stabilit blocarea la ora 13:59, iar acest moment pentru utilizatorii din Moscova este în viitor, apoi utilizatorii aceluiași IB din Vladivostok 13:59 a fost acum 7 ore. Și în funcție de soluția tehnică, în conformitate cu care se efectuează lucrări cu utilizatorii IB ai Vladivostok, blocarea acestor utilizatori va funcționa sau nu.

Care sunt soluțiile tehnice în care blocarea va funcționa incorect pentru utilizatorii Vladivostok? Cei la care clientul 1C va primi timp în Vladivostok și nu la Moscova. De exemplu, birourile sunt conectate la o rețea VPN locală, iar partea 1c a clientului începe cu computerul local, având timp UTC + 10. Dar dacă lucrează cu baza de date prin conexiunea RDP sau în modul RemoteApp de pe serverul Moscova, care rulează pe acest server partea clientului 1c - totul va fi bine, pentru că Va avea timp UTC + 3.

Există probleme cu sondajul de ore și fusul orar în cazul unei versiuni SQL a bazei de informații?

Nu. În acest exemplu de realizare, există un "ceas de server" care sunt acceptate pentru standard.

Mă va arunca din configurator dacă aș fi fost în ea, iar blocarea a început să acționeze?

Va fi posibil să introduceți configuratorul după începerea acțiunii de blocare?

Este imposibil! Verificarea capacității de a lucra cu configuratorul se efectuează numai la pornire și nu este efectuată în timpul funcționării. Prin urmare, dacă blocarea este instalată pentru lucrările ulterioare în configurator, este mult mai ușor să-l porniți pentru a conduce decât apoi să bypasificați interdicția la pornire.

Cum de a elimina blocarea?

În același dialog în care a fost instalat blocarea. Vă reamintim că după ce ați dat blocarea în ea, în loc de butonul "Instalați blocarea", butonul "Eliminare blocare".

În cazul versiunii SQL a IB, blocarea este posibilă și în "Administrarea serverelor de servere 1C Enterprise Server". (Vezi mai jos)

De ce aveți nevoie de un cod de deblocare?

Pentru a intra în IB la momentul în care blocarea este validă. Situații în care este necesar:

  • După instalarea blocării, a fost finalizată o sesiune de lucru cu IB (manual sau ca urmare a blocării inițiatorului în sine) și este necesar să înceapă o nouă sesiune;
  • Timpul de terminare din greșeală nu a fost completat deloc;
  • Timpul de încheiere a blocării a fost în mod eronat (de exemplu, luna următoare sau anul a fost inadecvată);
  • Baza de informații în versiunea SQL și pentru a anula blocarea incorect instalată, nu este posibilă ștergerea fișierului 1CV8.CDN din catalogul bazei de date.

În acest caz, utilizați sugestia, care este dată la pornire. Acestea. În fereastră, cu o listă de baze de date de informații, faceți clic pe "Editați" și introduceți în opțiuni suplimentare String de pornire:

Enterprise / F "Z: \\ Exchange \\ UT 11" / Utilizator comandabil / UC12345

... luând în considerare catalogul de locație și deblocarea codului.


Este mai bine să copiați acest șir în clipboard și să corectați dialogul de dialog de editare a informațiilor. Dacă ați confundat tipul de citate sau rusă "C" și latină, veți vedea un mesaj de eroare:



În cazul introducerii corespunzătoare și lansarea ulterioară a 1c în modul întreprinderii, 1c va elimina automat blocarea și va finaliza funcționarea acesteia. După aceasta, puteți șterge parametri suplimentari și puteți rula 1c ca de obicei.

Ce trebuie să faceți dacă nu am instalat blocarea, iar baza SQL este blocată de cineva? În același timp, nu știu codul de deblocare.

Blocarea bazei de date de informații poate fi setată de configurația însăși în momentul creării unei copii de arhivă. Dacă procesul de creare a acesteia nu a fost finalizat în mod normal, baza SQL poate rămâne în starea de blocare. În acest caz, accesul la sistemele de consolă (mai corect - snap-in) "Administrație de 1C: întreprinderi" servere.

Unde să o cauți?

Snap "Administration 1C: Întreprinderile" este adesea instalat pe același server în care este implementat SQL Server, precum și în cazul în care se desfășoară "serverul 1c" (sau "serverul de aplicație 1c"). Deși nu este necesar: SQL poate fi instalat pe un computer, "Aplicația Server 1C" - pe cealaltă, iar snap-ul poate fi implementat pe cont propriu stație de lucru. Cu o mare probabilitate de succes, puteți obține prin efectuarea următoarelor:

  • Conectați-vă la RDP la server, care este specificat în SRVR \u003d ROW ... utilizând datele dvs. de conectare și parola. Dacă sunteți imposibil să vă conectați, întrebați administrator de sistem Adăugați-vă la un grup de utilizatori desktop la distanță. (În cazul refuzului acestor drepturi, extindeți și configurați la stația de lucru pentru a fixa "Administrarea Enterprise Server 1C");

  • Pe server, găsiți "Administrația serverelor 1C: întreprinderi";
  • Rulați rapid-ul, extindeți copacul la nod cu baza de date de informații;

  • În proprietățile bazei de date a informațiilor, scoateți caseta de selectare "Blocarea începerii sesiunilor" sau corectați începerea și sfârșitul blocării sau vedeți "codul permis" pentru a intra în IB (este "codul de deblocare" în setarea de blocare dialog).

Ce se întâmplă dacă toți utilizatorii informațiilor baza de date SQL. a ieșit și a alerga configuratorul este încă imposibil, pentru că Există utilizatori activi?

În nodul "conexiune" al bazei de informații, conexiunile disponibile pot fi îndepărtate în partea dreaptă a ecranului.


Aceasta nu este toate întrebările legate de blocarea bazei de informații.

Daca ai vreo intrebare:

  • Este posibil să lucrați pentru timpul Moscovei dacă închiriați un server în Europa și nu doriți să depindeți de fusul său de timp?
  • Cum se găsește serverul de aplicații 1c dacă este necunoscut acolo unde este instalat?
  • Cum să desființezi "Administrați serverele 1C: Enterprise" și cum să îl configurați?
  • Dacă într-o rețea locală servere multiple de aplicații de rețea, cum să fie?
  • Cum să fii în caz sistemul de cluster.? etc.

Consilierii tehnologici certificați 1c vor fi fericiți să le răspundă.

Periodic, trebuie să înțelegeți utilizarea mecanismelor de blocare în anumite cazuri pentru implementarea diferitelor sarcini. Deși există o mulțime de informații despre aceste subiecte, este foarte împrăștiată și, cu timpul, începe să uite materialul materialului pe care trebuia să-l flip. Trebuie să înțelegi din nou ...

Ca rezultat, ideea a apărut să structureze și să precizeze pe scurt esența unor moduri de blocare diferite în 1c ca un întreg și în raport cu configurațiile tipice. Sper că va fi utilă.

Și așa, să mergem ...

La început, voi scrie despre nivelurile de izolare a tranzacțiilor, luați în considerare pe scurt doar aceste niveluri legate de acest articol.

Nivelurile de izolare ale tranzacțiilor

Citit. angajat (citirea completă) - Este permisă citirea datelor în tranzacție, modificările care au fost completate de toate celelalte tranzacții. Implicit este utilizat pentru majoritatea bazelor de date.

Citit. angajat Snapshot (versiune de date) - Lectura permisă versiune veche Modificările datelor pentru care nu sunt completate de alte tranzacții. Acesta este susținut de baze de date: Postgre. SQL. și Oracol. Începând cu versiunea platformei 1C 8.3, implementată pentru a lucra cu baze de date:MSSQL. .

Repetabil citit. (citirea repetată) - interzicerea schimbării înregistrărilor în tranzacție, care au fost deja citite mai devreme în cadrul altor tranzacții.

În ceea ce privește izolarea tranzacțiilor, toate, atunci vreau să spun câteva cuvinte despre mecanismul de separare a rezultatelor în registrele de acumulare.

Separarea rezultatelor registrelor de acumulare

Registrul de acumulare la nivelul bazei de date este alcătuit din două tabele: Tabelul de bazăși Tabel de rezultate. În timpul înregistrării în registru (atât pe consum, cât și la consum), datele sunt înregistrate în ambele tabele, datele sunt înregistrate direct la tabelul principal, linia finală a setului de măsurare este actualizată în tabelul de rezultat. În consecință, atunci când lucrează tranzacții paralele, intrarea la tabelul de rezultat nu poate fi executată simultan, ceea ce reduce viteza documentelor.

Pentru a elimina această problemă, a fost creat un mecanism - separare.Fără a intra în detalii, acest mecanism vă permite să actualizați datele din rezultatul registrului de acumulare de către același set de măsurare, in acelasi timp.

Pentru a dezvălui subiectul principal al articolului, trebuie să descriu principii generale Rămâneți mecanisme de control care sunt utilizate în configurații tipice. Dacă scurt, există un mecanisme vechi și noi de control, iar ambele sunt aplicate în prezent, în ciuda faptului că noul regim este de aproximativ 8 ani.

Mecanisme pentru controlul reziduurilor în configurațiile standard 1c

Schema veche mai departe Vechi. - Se formează o cerere la baza de date pentru a monitoriza reziduurile libere, în cazul unei soluții pozitive, se formează registrul. Pe acest moment Se utilizează în cantitatea de contabilitate 3.0 și în unele algoritmi UT 11, KA 2, ERP 2.

dezavantaje :

  • este necesar să se blocheze înregistrările care participă la mișcare la momentul lecturii lor, care se înrăutățește paralelitatea lucrării.

Noua schemă mai departe Nou - Se efectuează mișcarea în registru, atunci prezența reziduurilor negative este verificată, în cazul prezenței lor, operația este laminată înapoi. Utilizate în prezent în UT 11, KA 2, ERP 2.

Beneficii:

  • nu este necesar să ștergeți mișcarea documentului printr-o operație separată, datele sunt suprascrise fără aprobarea seturilor goale. Crește serios viteza documentului.
  • viteza de execuție a cererii la reziduuri este mărită, deoarece în majoritatea cazurilor cererea după efectuarea unui rezultat gol.
  • Nu este nevoie să pre-blocați datele variabile.

dezavantaje :

  • În cazul în care este necesar să se obțină date din registrele contabile (de exemplu, calculul costului de scriere), în orice caz, este necesar să se blocheze înregistrările deja în momentul citirii lor.

Rezumând cele de mai sus scrise, puteți încheia - dacă nu trebuie să faceți cereri suplimentare La registrele bazei de date, este mai bine să aplicați un nou mecanism, dacă este necesar, aplicați vechiul mecanism.

Ei bine, este timpul să mergem, de fapt, la prezentarea temei principale a unui articol dat - descrierea modurilor de blocare. De fapt, modurile sunt doar două: Autoși ManageabilAcestea sunt indicate în proprietățile generale ale configurației, sunt sigur că toate acestea sunt bine cunoscute, așa că nu mă opresc în acest detaliu.

Probabil că ați ghicit că este necesar să lucrați cu aceste două moduri, este necesar să lucrăm în moduri diferite de diferite mecanisme de efectuare a documentelor. O vom analiza mai detaliat.

Modul automat de blocare

În acest caz, se utilizează modul de izolare a tranzacțiilor descris mai sus:Repetabil citit..

Notă: Acest articol discută în principal versiunea serverului de clienți. Pentru modul de fișier va fi aplicat și mai mult nivel inalt Izolație, pe care nu o vom lua în considerare aici.

Pentru a elimina interconectarea la efectuarea de documente cu reziduuri de control -Vechi. Aplică designul limbii de interogare " PENTRU SCHIMBARE"Când citiți datele din tranzacție în prima lectură, nu sunteți împărțiți în aceste date pentru a citi, dar blocarea actualizării. În consecință, într-o altă tranzacție va fi deja imposibilă efectuarea unei proceduri similare, deoarece pentru a impune aceleași date, două actualizări de blocare din diferite tranzacții nu pot.

Blocarea este suprapusă pe acele înregistrări care apar în interogare (în cel mai rău caz, cu un plan de interogare ne-optim sau în mod incorect, poate fi blocat mai multe înregistrări decât este necesar).

Notă: În cazul de lucru cu baza de fișiere și cu P. postgre. SQL. Blocarea este suprapusă în întregime întregii mese.

Exemplu:

Alegeți răsturnările. Namerenclatură, resperovarov. Non-miza ca un număr de registru. Sustatoare. Pierderi ca răsturnați pentru schimbare

Utilizați modul de control rezidual -Nou Împreună cu modul de blocare automată, are sens numai pentru registrele fără a se separa rezultatele, în acest caz, nu trebuie să facă acțiuni suplimentare. Atunci când se utilizează registrele cu separarea rezultatelor pot apărea d. ea. dlocuri la citirea datelor dacă înregistrarea din registru a fost efectuată în același timp și, cumva, decide această problemă nu va funcționa.

Modul de blocare gestionat

În acest caz, se aplică modurile de izolare a tranzacțiilor:Citit. angajat șiCitit. angajat Instantaneu .

Vechi. - blocarea separată este îndepărtată după ce a citit resturile, prin urmare, pentru a exclude posibilitatea reziduurilor negative, este necesar să se blocheze înregistrările necesare în registrul în mod explicit înainte de a formula o cerere de resturi. De fapt, acesta este principiul modului de blocare controlat.

Exemplu:

Blocante) \u003d nou blocat; Blocuri de elemente \u003d blocante. Addly ("Regizor. Orașovanskladakh. Nabinets"); Blocuri de elemente. Instalarea (depozit, depozit); Blocarea elementelor. Setare ("nomenclatură", nomenclatură); Elemente blocuri. Prepary \u003d carlokloched. Blocați marginile. CABLOCK ();

Utilizarea modului de control rezidual Nou :

În cazul utilizării registrelor fără a se separa rezultatele, nu sunt necesare blocări suplimentare pentru baza de date de date, DBMS-ul blochează datele necesare (în acest caz, înregistrarea în rezultatul registrului de acumulare).

În cazul utilizării registrelor de acumulare cu separarea rezultatelor (în mod implicit, registrele sunt create pentru configurator, este posibil să se obțină următoarele situații negative:

  • Fără modul de versiune (MS SQL și 1C 8.2) - Avem o matriță când încearcă să citesc date dacă intrarea în două tranzacții a fost efectuată simultan. La scrierea datelor, blocarea nu va avea loc, deoarece sunt utilizate diferite rânduri ale DBMS (separarea rezultatelor)
  • Cu modul de versiune instantanee (PostgreSQL, oracol sau 1c 8.3) - Blocarea nu va avea loc, dar vor apărea reziduuri negative, deoarece controlul va fi executat fără a lua în considerare toate tranzacțiile neextinute.

Pentru a exclude o situație similară, trebuie să instalați steagul de înregistrare înainte de a scrie în registru: Bloc pentru a schimba. Acest design oferă comanda atunci când înregistrați pentru a impune blocarea excepțională a înregistrărilor tabelului balanței de registru fără a lua în considerare separatorul de rezultate, în mod inerent, pur și simplu dezactivează separarea rezultatelor pentru registrul de acumulare.

În consecință, posibilitatea înregistrării paralele într-un registru de date cu un set de măsurare similar va fi finalizată de cel precedent.

Exemplu:

Setați înregistrări. Blocarea inflamațiilor \u003d adevărul;

Sper că acest articol a fost util și după citirea se creează o înțelegere mai holistică a funcționării platformei 1C la diferite moduri de blocare folosind diferite mecanisme pentru reziduurile reziduale.

Dacă ați pierdut ceva și ceva nu a fost corect, aș vedea în comentariile la articol.

Mulțumesc mult, dacă observați articolul de un asterisc, deoarece nu motivează să scrie noi articole ca aprobarea dvs.J.

Astăzi vom vorbi despre blocări atât la nivelul 1c 8.3 și 8.2, cât și la nivelul DBMS. Blocarea datelor este un element obligatoriu al oricărui sistem, numărul de utilizatori în care mai mult de unul.

Mai jos voi tăia, cum funcționează blocarea și ce tipuri se întâmplă.

Blocarea este informația pe care resursa de sistem este capturată de un alt utilizator. Există o opinie că blocarea este o greșeală. Nu, blocarea este o măsură inevitabilă într-un sistem multiplayer pentru separarea resurselor.

Deteriorarea sistemului poate aduce doar exces ("extra") blocaje, acestea sunt cele blocante care blochează informațiile inutile. Astfel de blocuri trebuie să fie învățate pentru a elimina, pot duce la muncă non-optimă Sisteme.

Blocările din 1c sunt împărțite în obiect și tranzacție.

Obiectele sunt, la rândul lor, optimiste și pesimiste. Iar tranzacția poate fi împărțită în gestionată și automată.

Obiect blochează 1c.

Acest tip de blocare este implementat pe deplin la nivelul platformei 1c și nu afectează DBMS.

Obțineți 267 Tutoriale video pentru 1C gratuit:

Blocarea pesimistă

Această blocare este declanșată atunci când un utilizator a schimbat ceva sub forma unui director, iar al doilea încearcă să schimbe obiectul în formă.

Blocarea optimistă

Această blocare compară versiunile obiectului: dacă doi utilizatori au deschis formularul și unul dintre ele sa schimbat și a înregistrat obiectul, apoi al doilea când înregistrarea sistemului va da o eroare pe care versiunile de obiecte diferă.

Blocarea tranzacțională 1c.

Mecanismul de blocare a tranzacțiilor 1c este mult mai interesant și mai funcțional decât mecanismul de blocare a obiectului. Acest mecanism implică în mod activ blocarea la nivelul DBMS.

Funcționarea nevalidă a blocărilor tranzacționale poate avea ca rezultat următoarele aspecte:

  • problema schimbării pierdute;
  • problema citirii murdare;
  • nerambursabilitatea lecturii;
  • citirea fantomelor.

Aceste probleme au fost luate în considerare în detaliu în articol.

Blocarea automată a tranzacțiilor 1C și DBMS

În modul automat de blocare a întregului blocaj și îndeplinește pe deplin DBMS. Dezvoltatorul în acest caz nu este absolut implicat în acest proces. Acest lucru facilitează activitatea programatorului 1c, cu toate acestea sistem informatic Pentru un număr mare de utilizatori pe încuietori automate, acesta este nedorit (în special pentru PostgreSQL DBMS, Oracle BD - La modificarea datelor, ele blochează pe deplin tabelul).

Pentru diferite dbms, diferite grade de izolație sunt utilizate în modul automat:

  • Serializable la întregul tabel - modul de fișier 1C, Oracle;
  • Serializable la înregistrarea - MS SQL, IBM DB2 atunci când lucrează cu entități non-obiect;
  • Repetabilă citită pe înregistrare - MS SQL, IBM DB2 atunci când lucrați cu entități de obiect.

Blocarea tranzacțională gestionată 1C și DBMS

Toată responsabilitatea ia dezvoltatorul unei soluții aplicate la nivelul 1c. În același timp, DBMS stabilește un nivel destul de ridicat de izolație pentru tranzacții - Citiți comitetul (serializable pentru fișierul DBMS).

Când efectuați orice operațiune cu baza de date, Managerul de blocare 1C analizează capacitatea de a bloca resursa (captura). Blocarea aceluiași utilizator este întotdeauna compatibilă.

Două blocaje nu sunt compatibile dacă: instalate de diferiți utilizatori, au incompatibil (excepțional / partajat) și instalați pe aceeași resursă.

Implementarea fizică a încuietorilor în DBMS

Blocurile fizice sunt un tabel care se află în baza de date numită Master. Tabelul de blocare are numele Syslockinfo.

Tabelul are în mod convențional patru domenii:

  1. ID-ul sesiunii de blocare Spid;
  2. ce anume este blocat de Res ID;
  3. tipul de blocare - S, U. sau X. Mod. (De fapt, în MS SQL există 22 de tipuri, dar numai trei sunt utilizate în ligamente cu 1c);
  4. blocarea statului - poate lua valoare ACORDA.(instalat) și Aștepta.(Așteptând rândul său).

Mecanism blocuri de tranzacții Utilizat pentru accesul utilizatorilor competitivi la DBMS.
Tranzacția este o anumită operațiune inextricabilă, în timpul căreia starea de bază se schimbă. Acesta este un cuantum minim de schimbare: este imposibil să se facă o jumătate de tranzacție; Dacă tranzacția nu a fost finalizată, baza se întoarce înapoi la starea inițială.
Deoarece tranzacția captează o serie de date, apare o nuanță la accesul la această matrice: de exemplu, o tranzacție modifică datele, iar celelalte încearcă să le citească. Rezultatul citirii poate fi incorect, deoarece nu va porni schimbări recente. Prin urmare, la nivelul DBMS, funcțiile de izolare a tranzacțiilor. Următoarele niveluri de izolație sunt posibile:

  • Citiți necomitent - În timp ce o tranzacție schimbă matricea, celălalt nu o poate schimba, dar poate citi. Nivel inferior de izolare.
  • Citiți comitetul. - În timp ce o tranzacție schimbă matricea, celălalt nu-l poate schimba și nici nu-l citiți
  • Repetabile citite. - În timp ce o tranzacție citește o matrice, celălalt nu o poate schimba, dar poate citi
  • Serialaizabilă - În timp ce o tranzacție citește o matrice, celălalt nu poate schimba sau citi. Toate operațiunile sunt coerente. Nivelul maxim de izolare.

Dacă pentru configurare 1c: Întreprinderile instalate modul automat de blocareEste selectat tranzacția care izolează DBMS. În cazul MS SQL, se va repeta niveluri de citire sau serializabile, adică izolarea datelor este aproape de maxim. Aceasta rezolvă probleme cu corectitudinea datelor, dar poate duce la apariția încuietorilor la nivelul DBMS în timpul activității intensive a utilizatorilor. Prin urmare, în 1c: Compania are propria funcționalitate cu încuietori, care este activată prin includerea încuietorilor controlate. În acest caz, nivelul de izolare a tranzacției pentru MS SQL va fi citit comitet. Platforma însăși va izola datele fără a se baza pe DBMS.

Includerea modului de blocare controlată are loc în proprietățile de configurare:

De asemenea, modul de blocare poate fi setat pentru obiecte de configurare specifice:

În cazul în care configurația ca întreg este instalat modul de blocare automată, toate tranzacțiile de pe toate registrele vor funcționa în mod specific în modul automat, indiferent de modul care este setat pentru obiectul de configurare. Dacă gestionarea este similară, toate tranzacțiile vor fi gestionate. Dacă configurația este automată și controlată pentru configurație, atunci modul pentru fiecare obiect va fi determinat de setările sale.

Pentru modul, automat și ușor de gestionat este un punct. Tranzacție, un singur utilizator poate fi mai multe tranzacții din punctul de vedere al platformei. De exemplu, conducerea interactivă a documentului de înregistrare face douătranzacții - Înregistrarea documentului în sine și în interiorul acestei tranzacții Înregistrarea rândurilor pentru înregistrare. În funcție de modul de gestionare a blocării pentru documentul în sine și în registrul în mișcare, sunt posibile patru situații:

  1. Modul documentului automat, înregistrați modul automat -\u003e
  2. Modul de documentare controlat, modul de înregistrare gestionat-\u003e Înregistrare Intrare în modul gestionat
  3. Modul documentului automat, Modul de înregistrare gestionat -\u003e Înregistrare Înregistrare în modul automat
  4. Modul de documentare controlat, înregistrați registrul automat -\u003e situația excepțională (eroare)

Întrebarea 06.59 Examen 1C: Profesionist pe platformă. Atunci când efectuați un document în orice registru dacă documentul are mod automat de control al blocării tranzacțiilor, iar registrul este gestionat (în proprietățile de configurare, se utilizează opțiunea "Automatică și gestionabilă"), atunci un astfel de comportament va conduce:

Răspunsul corect este al doilea, definește prima tranzacție, dacă este automat, atunci totul este automat.

Întrebare 06.60 Examen 1C: Professional pe platformă. Atunci când efectuați un document în orice registru dacă documentul are un mod controlat de blocare a blocului de blocare, iar registrul este automat (în proprietățile de configurare, se utilizează opțiunea "Automatică și gestionabilă"), atunci un astfel de comportament va conduce:

  1. la apariția unei situații eronate
  2. Întreaga tranzacție va fi efectuată automat
  3. Întreaga tranzacție va fi efectuată în modul gestionat.

Răspunsul corect este primul, definiți prima tranzacție, dacă este gestionată, apoi eroare.

Întrebarea 06.61 Examen 1C: Profesionist pe platformă. Atunci când efectuați un document în orice registru dacă documentul are un mod automat de control al blocării tranzacțiilor, iar registrul este gestionat (în proprietățile de configurare, se utilizează opțiunea "gestionabilă"), apoi o astfel de comportament va conduce:

  1. la apariția unei situații eronate
  2. Întreaga tranzacție va fi efectuată automat
  3. Întreaga tranzacție va fi efectuată în modul gestionat.


Ți-a plăcut articolul? Împărtășește-l