1c prejem trenutnega uporabnika na odjemalcu

5
Ko je potreben bolj natančno nastavljen dostop, priskoči na pomoč Mehanizem RLS- Zaščita na rekordni ravni. 3
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 ... Pogosto naletim na vprašanja o ustvarjanje programske opreme in nastavitve uporabniških pravic. V tem članku bom podal primere za Normal in Upravljane aplikacije 2
, ki programsko ustvarijo uporabnika v...

Vprašanje: Dodal sem novega uporabnika.

Ustvarim nov vmesnik (s kopiranjem obstoječega) in ta vmesnik določim kot glavnega za tega uporabnika.

Težava je v tem, da je novi vmesnik ustvaril ... 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 vsaka druga, vendar je njena posebnost v tem, da je dostopna od koderkoli v programu, v primeru parametra seje pa to deluje le znotraj trenutne seje.

  • 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

Na primer, v zahtevi RLS moramo nastaviti pogoj za trenutnega uporabnika. Če želite to narediti, nastavite parameter seje “CurrentUser” in nastavite 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 postopek prikliče 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 FixedArray

Priporočljivo je, da uporabite zakasnjeno (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:

Postopek SettingSessionParameters(SessionParametersNames) If SessionParametersNames je nedefiniran 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
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 izvedena BREZ KONTROLE OMEJITEV, v

skupni modul z nastavljeno zastavo PRIVILEGE modula.

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 privilegirani 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. Parametri seje 1C 8.3

— spremenljivka, ki hrani vrednost želenega parametra za čas trajanja uporabniške seje. V bistvu je to neke vrste globalna spremenljivka, vezana na trenutno uporabniško sejo.

Uporaba parametrov seje v 1C

Parametri seje se nastavljajo samo programsko, v sistemu ni univerzalnega vmesnika za nastavitev parametrov seje. Običajno so nastavljeni ob zagonu sistema, v »Session Module«. Če parameter ni definiran, se pri dostopu do njega prikaže napaka.

Primer nastavitve parametra seje 1C

Postopek Nastavitev parametrov seje (zahtevani parametri) // išče fizično oseba po uporabniškem imenu TechUser = Imeniki. Posamezniki. FindByName(UporabniškoIme()) ; //če ni najden, ustvari novegaČe TechUser. Empty() Nato NewUser = Imeniki. Posamezniki. CreateItem() ; NewUser. Ime = Uporabniško Ime() ; NewUser. Napiši(); Bluetooth