Trenutni uporabnik 1s 8.3 na odjemalcu. Kako pridobiti informacije o konfiguracijskih vlogah

Upoštevani parametri v 1C:Enterprise so predstavljeni kot metapodatkovni objekt. V bistvu ni nič drugega kot globalna spremenljivka, ki je vezana na trenutno sejo.

Globalna spremenljivka je enaka spremenljivki kot vse druge, vendar je njena posebnost v tem, da je dostopna od koder koli v programu, v primeru parametra seje pa to deluje le znotraj trenutne seje.

Zaradi parameter seje je metapodatkovni objekt, ima določene lastnosti:

  • Lahko je določene vrste. Dovoljene vrste določa platforma. Njihov seznam je precej obsežen, a tudi če v ta seznam ni potrebe po vas, lahko vedno serializirate vrednost in jo shranite v parameter kot niz.
  • Pravice do njega, tako kot do katerega koli drugega metapodatkovnega objekta, lahko omejimo z vlogami (tako za pisanje kot za branje). Vendar pa obstaja posebnost pri uporabi v RLS, vendar bo o tem govora v nadaljevanju.
  • Ima omejitev glede količine podatkov, ki jih je mogoče postaviti v serijsko obliko. Njihova prostornina ne sme presegati 4 GB.

Če je vrsta parametra seje:

  • FixedArray
  • FixedCollection
  • FixedStructure

Potem bi lahko bila vrednost elementa zbirke Nedoločeno.

Glavno področje parametrov je uporaba njihovih vrednosti v poizvedbah RLS (Record Level Access Restriction).

Na primer, v zahtevi RLS moramo nastaviti pogoj za trenutnega uporabnika. Da bi to naredili, nastavimo parameter seje »CurrentUser« in nastavimo vrednost iz vgrajene jezikovne kode:

SessionParameters.CurrentUser =<значение>

Table.User = &CurrentUser

Pri uporabi parametra seje na ta način se dovoljenja za branje za parameter ne upoštevajo, vendar lahko poskusite pridobiti njihovo vrednost iz vgrajenega jezika:

CurrentUser = SessionParameters.CurrentUser;


Parameter seje, to je njegovo vrednost, lahko nastavite samo programsko in samo na strežniku. Če želite to narediti, boste morali od odjemalca poklicati strežniško proceduro. Pri dostopu do parametra seje (nastavitev, sprejem), če parameter ni inicializiran, se prikliče procedura SettingSessionParameters v modulu seje. Ta postopek ima en parameter Zahtevani parametri– niz nastavljenih identifikatorjev parametrov seje. SettingSessionParameters imenuje tudi pri vzpostavljanju povezave z informacijsko bazo preden pokličete vse druge skrbnike. V tem primeru Zahtevani parametri bo enakovreden Nedoločeno.

Priporočljivo je, da uporabite odloženo (leno) inicializacijo, to je inicializacijo parametrov seje na zahtevo in ne ob zagonu sistema, saj vsi parametri seje niso potrebni neposredno ob zagonu sistema. Lena inicializacija poteka takole:

Procedure SettingSessionParameters(SessionParametersNames) If SessionParametersNames is Undefined Then If ParameterName = "CurrentUser" Then SessionParameters.CurrentUser = ; ElseIf ParameterName = "CurrentOrganization" ThenSessionParameters.CurrentOrganization = ; // itd. endIf; endIf; EndProcedurevalue>value>>

Ker je parameter seje vezan na sejo, do parametra seje ne boste mogli dostopati iz metode, ki se izvaja v ozadju, ker bo to druga seja. Ta odtenek je lahko presenečenje, zato je bolje, da se nanj pripravite vnaprej, tako da posredujete želeno vrednost kot parameter metode in jo inicializirate iz parametra seje na začetku postopka.

  • TRENUTNE IZDAJE 1C
  • PRIMERI KODE NA PLATFORMI 1C
Vloge, pravice dostopa v 1C 8.x
Kako vem, ali je določena vloga na voljo trenutnemu uporabniku?
If Not RoleAvailable("Manager") Then Report("Ogled zahtev strank ni dovoljen!"); endIf;
Kako dobim informacije o konfiguracijskih vlogah?
Funkcija Seznam možnih vlogConfiguration() Seznam vlog = nov seznam vrednosti; RolesConfiguration = Metadata.Roles; Za vsako vlogo iz RoleConfiguration Loop RoleList.Add(Role.Name); EndCycle; returnListRole; EndFunction
Kako izvesti kodo brez preverjanja dovoljenj?
1. Uporabite privilegiran modul 2. Umestitev programsko kodo, ki mora biti izveden BREZ NADZORA OMEJITEV, v skupni modul z nastavljeno zastavo PRIVILEGE za modul. Uporabite privilegiran način izvajanja programske kode Podoben načinu delovanja kode privilegiranih modulov. Način lahko vklopite/izklopite z uporabo vgrajenega jezika: SetPrivilegedMode(<Включить>) Parameter<Включить>(obvezno) Vrsta: Boolean. Določa, ali bo omogočen privilegiran način: True - omogoči način; False - izklopi način. Funkcija PrivilegedMode() vam omogoča, da ugotovite, ali je privilegiran način omogočen ali ne. Uporaba privilegiranega načina omogoča, prvič, pospešitev dela, saj ne bodo uvedene omejitve dostopa do podatkov, in drugič, omogoča izvajanje operacij s podatki v imenu uporabnikov, ki jim ti podatki niso na voljo. Privilegirani način je priporočljiv, ko morate logično onemogočiti preverjanje dovoljenj ali ko lahko onemogočite preverjanje dovoljenj, da pospešite stvari. Uporaba privilegiranega načina je sprejemljiva, če delo s podatki v imenu določenega uporabnika ne krši pravic dostopa, določenih za tega uporabnika.

5
Ko je potrebno več fina nastavitev dostopa, na pomoč priskoči mehanizem RLS - Record Level Security. Sistemske konfiguracije "1C:Enterprise" 8 je bil prvotno postavljen kot program za računovodstvo več podjetij in eden od ... 3
Začenši s platformo 8.0 sistema 1C Enterprise je možno omejiti pravice dostopa uporabnikov na nivoju zapisa. V ta namen se uporablja mehanizem RLS (Record Level Security). Takšna "fina" nastavitev je lahko ... 3
Pogosto naletim na vprašanja o ustvarjanje programske opreme in nastavitve uporabniških pravic. V tem članku bom podal primere za običajne in upravljane aplikacije, ki programsko ustvarijo uporabnika v... 2
Vprašanje: Dodal sem novega uporabnika. ustvarjam nov vmesnik(s kopiranjem obstoječega) in določite ta vmesnik kot glavni za tega uporabnika. Težava je v tem, da je novi vmesnik ustvaril ...