1c 8.3 obține utilizatorul curent pe client. Cum să aflați dacă un anumit rol este disponibil pentru utilizatorul actual
Parametrii luați în considerare în 1C:Enterprise sunt prezentați ca obiect de metadate. În esență, nu este altceva decât o variabilă globală legată de sesiunea curentă.
O variabilă globală este aceeași variabilă ca oricare alta, dar particularitatea sa este că poate fi accesată de oriunde în program, iar în cazul unui parametru de sesiune, acesta funcționează numai în cadrul sesiunii curente.
Deoarece parametrul de sesiune este un obiect de metadate, are anumite caracteristici:
- Poate fi de un anumit tip. Tipurile permise sunt specifice platformei. Lista acestora este destul de extinsă, dar chiar dacă această listă nu conține pe cea de care aveți nevoie, puteți oricând să serializați valoarea și să o stocați în parametru sub formă de șir.
- Drepturile asupra acestuia, precum și asupra oricărui alt obiect de metadate, pot fi limitate de roluri (atât pentru scriere, cât și pentru citire). În același timp, există o particularitate atunci când îl utilizați în RLS, dar acest lucru va fi discutat mai jos.
- Are o limită a cantității de date plasate în formă serializată. Volumul lor nu trebuie să depășească 4 GB.
Dacă tipul de parametru de sesiune:
- FixedArray
- FixedColelection
- FixedStructure
Atunci valoarea elementului de colectare poate fi Nedefinit.
Zona principală a parametrilor este utilizarea valorilor acestora în solicitările RLS (restricția accesului la nivel de înregistrare).
De exemplu, trebuie să setăm o condiție pentru utilizatorul curent într-o solicitare RLS. Pentru a face acest lucru, setăm parametrul de sesiune „CurrentUser”, din codul limbajului încorporat, setăm valoarea:
SessionParameters.CurrentUser =<значение>
Table.User = &CurrentUser
Utilizarea parametrului de sesiune în acest fel nu ține cont de drepturile de citire ale parametrului, dar puteți încerca să obțineți valoarea acestora din limbajul încorporat:
CurrentUser = SessionParameters.CurrentUser;
Puteți seta un parametru de sesiune, adică valoarea acestuia, numai în mod programatic și numai pe server. Pentru a face acest lucru, trebuie să apelați o procedură de server de la client. La accesarea unui parametru de sesiune (setare, obținere), dacă parametrul nu este inițializat, procedura va fi apelată SettingSessionParametersîn modulul de sesiune. Această procedură are un singur parametru Opțiuni necesare– o serie de identificatori de parametri de sesiune care urmează să fie setate. SettingSessionParameters este de asemenea apelat atunci când se stabilește o conexiune cu baza de informații înainte de a apela toți ceilalți handleri. În acest caz Opțiuni necesare va fi egal cu Nedefinit.
Se recomandă utilizarea inițializării amânate (leneșe), adică inițializarea parametrilor de sesiune la cerere și nu la pornirea sistemului, deoarece nu toți parametrii de sesiune sunt necesari direct la pornirea sistemului. Inițializarea leneșă se face astfel:
Procedură SettingSessionParameters(SessionParameterNames) Dacă SessionParameterNames este nedefinit, atunci IfParameterName = "CurrentUser" Apoi SessionParameters.CurrentUser = ; ElseIf ParameterName = " CurrentOrganization" Then SessionParameters.CurrentOrganization = ; // etc. EndIf; EndIf; EndProcedurevalue>valoare>>Deoarece parametrul de sesiune este legat de sesiune, nu va fi posibil să accesați parametrul de sesiune dintr-o metodă care rulează în fundal, deoarece va fi o sesiune diferită. Această nuanță poate veni ca o surpriză, așa că cel mai bine este să vă pregătiți în avans, trecând valoarea dorită ca parametru de metodă și inițialând dintr-un parametru de sesiune la începutul procedurii.
5
Când este necesară o setare de acces mai precisă, mecanismul RLS - Record Level Security vine în ajutor. 1C: Enterprise System Configurations 8 a fost poziționat inițial ca un program pentru contabilitatea multi-companii și unul dintre...
3
Pornind de la platforma 8.0 a sistemului 1C Enterprise, este posibil să se restricționeze drepturile de acces ale utilizatorilor la nivel de înregistrare. Pentru aceasta se folosește mecanismul RLS (Record Level Security). O astfel de reglare „fină” poate fi...
3
Întâlnesc adesea întrebări legate de crearea programatică și configurarea drepturilor de utilizator. În acest articol, voi oferi exemple pentru aplicații standard și gestionate care creează în mod programatic un utilizator în...
2
Întrebare: Am adăugat un utilizator nou. Creez o nouă interfață (prin copierea celei existente) și specific această interfață ca principală pentru acest utilizator. Problema este că interfața nou creată...
- VERSIUNI CURENTE 1C
- EXEMPLE DE CODURI PE PLATFORMA 1C