Extinderea sistemului de roluri rls în 1c 8

Un rol este un obiect al metadatelor, prin care se determină ce obiect și ce acțiuni asupra acestui obiect poate efectua un anumit utilizator. Fiecare rol conține drepturi și, în funcție de drepturile pe care DBA le va stabili, accesul va fi delimitat. Platforma tehnologică oferă două tipuri de drepturi: de bază și interactive. De bază este înțeleasă drept drepturi de citire, modificare, adăugare și ștergere. Interactiv sunt efectuate numai atunci când efectuați operații, cum ar fi editare sau ștergere, sub forma: Ștergere interactivă, Adăugare interactivă și altele.







Astfel, puteți include o dată pentru totdeauna accesul la un anumit director, document și alte obiecte de metadate și în întregime. Puteți să dați acces sau să ridicați. Pentru a da puțin la tine, nu se întâmplă. Dar, de fapt, există o astfel de situație atunci când există, de exemplu, directorul uriaș și fiecare utilizator ar trebui să vadă numai anumite elemente în el. Aceasta este, pentru o anumită condiție specifică, selecția elementelor obiectului trebuie să aibă loc! Iar odată cu versiunea platformei tehnologice 1C 8.1, a apărut un mecanism foarte puternic de restricționare a accesului la date la nivel de înregistrare numit RLS (Record Level Security). Restricțiile reprezintă un set de condiții specifice care vor permite accesul sau nu.

Restricțiile de acces când se utilizează RLS dinamic se aplică operațiilor de bază: citiți, editați, adăugați și ștergeți. Există o caracteristică importantă a faptului că operația Read poate avea mai multe restricții la nivelul înregistrărilor, în timp ce pentru toate celelalte operații există o singură condiție. Acest mecanism vă permite să impuneți restricții nu numai pentru anumite înregistrări, ci și pentru anumite domenii de înregistrări. La ce să specificați probabil este necesar un câmp și un câmp special <Прочие поля>.

Extinderea sistemului de roluri rls în 1c 8

Sintaxa și limba RLS

Limba de restricționare a datelor nu este altceva decât o limbă de interogare, dar este foarte trunchiată. Dacă condiția este TRUE, utilizatorul curent are acces la date, iar dacă este FALSE, atunci eșec. Care sunt diferențele principale de la o limbă de interogare deplină?

Într-o interogare RLS, există întotdeauna un singur tabel de date și este de fapt utilizat pentru condiții.
Numai construcțiile IZ și WHERE sunt utilizate.
În astfel de condiții, puteți specifica opțiunile de funcții și parametrii sesiunii ca parametri de solicitare.
Nu folosiți tabele virtuale.
Puteți utiliza șabloane pentru a crea constrângeri
Rezultatele operatorilor și ierarhia nu se aplică.







Gândiți-vă cum să faceți restricții. de exemplu în Fig. 1 este dată cea mai simplă restricție. Aceasta constă în faptul că utilizatorul va vedea doar o contrapartidă cu un anumit nume "Coroana sibiană LLC". Puteți filtra un anumit câmp. De exemplu, vrem ca utilizatorul să vadă numai contrapărțile care se află în dosarul părinte "Angajați".

Extinderea sistemului de roluri rls în 1c 8

Textul de constrângere poate fi tastat manual, și poate fi de asemenea tipărit utilizând designerul de interogare obișnuit. Constructorul de interogări în acest caz nu va fi, de asemenea, complet funcțional, dar va fi înzestrat cu restricții pentru RLS. De asemenea, puteți să transmiteți orice parametru solicitării de constrângere .

Extinderea sistemului de roluri rls în 1c 8

Modalități de operare a restricțiilor

Uneori, când utilizați RLS, utilizatorul poate primi o eroare care indică faptul că nu există suficiente drepturi. Acest lucru se poate datora modurilor în care funcționează constrângerile.

Metoda AUTORIZATĂ este foarte des utilizată atunci când se generează liste dinamice, altfel ar exista întotdeauna erori cu privire la încălcarea drepturilor. Metoda ALL este utilizată atunci când primiți obiecte cu funcțiile și interogările de limbaj încorporate. De fapt, unde sunt stabilite aceste metode? Valoarea implicită este ALL.

Extinderea sistemului de roluri rls în 1c 8

Utilizarea șabloanelor în RLS

Pentru utilizarea mai convenabilă a restricțiilor din sistemul 1C, compania utilizează șabloane. Asta este, dacă utilizați aceeași constrângere sau știți că va diferi numai în cazul anumitor parametri, atunci vă creați propriul șablon. Astfel, puteți emite, în general, un cod de restricție duplicat ca procedură. Șablonul are un nume și un text. Textul conține codul de program al restricțiilor, în acesta, precum și în procedura în care se pot utiliza parametrii, la ce parametri sunt alocați prefixul #.

Luați în considerare exemplul de configurare 1C: Contabilitate 8.2 utilizând șabloanele încorporate. Deschideți rolul ACCOUNTANT și accesați fila Restricții șablon. Aici folosiți șablonul BasicCondition pentru Citirea următorului conținut:

Extinderea sistemului de roluri rls în 1c 8

Unde vedem # Parametru (1) = SetAccessAccessAccessAccess.Access Object. Acesta este același parametru care poate varia în funcție de datele transferate. Mai departe, în orice loc unde vrem să introducem restricții, folosim șablonul astfel:

Extinderea sistemului de roluri rls în 1c 8

În textul

Sau pe un șablon mai simplu. Numele șablonului # Restricțiile mele este după cum urmează:

Ca urmare a trecerii parametrilor în șablonul #MyOrganizations ("Executor"), obținem următoarele

Mecanism pentru restricționarea accesului la date la nivel de înregistrare este un lucru foarte puternic, dar este nevoie de o mulțime de experiență de configurare, deoarece acestea „jungla“, puteți obține ușor de pierdut. Datorită lui, puteți face orice delimitare parțială a datelor. Pe de altă parte, adăugarea de diverse condiții duce la o scădere a performanței sistemului, deși nesemnificativă. Deoarece platforma 1C adaugă cereri suplimentare la cererea utilizatorului sub formă de constrângeri. În orice altceva, este un lucru minunat pentru dezvoltatori!







Articole similare

Trimiteți-le prietenilor: