1c 8.3 dobiti trenutnog korisnika na klijentu. Kako saznati je li određena uloga dostupna trenutnom korisniku
Parametri koji se razmatraju u 1C:Enterprise predstavljeni su kao objekt metapodataka. U biti, to nije ništa više od globalne varijable vezane za trenutnu sesiju.
Globalna varijabla je ista varijabla kao i svaka druga, ali joj je posebnost da joj se može pristupiti s bilo kojeg mjesta u programu, au slučaju parametra sesije, to radi samo unutar trenutne sesije.
Jer parametar sesije je objekt metapodataka, ima određene značajke:
- Može biti određene vrste. Dopuštene vrste ovise o platformi. Popis njih je prilično opsežan, ali čak i ako ovaj popis ne sadrži onu koja vam je potrebna, uvijek možete serijalizirati vrijednost i pohraniti je u parametar kao niz.
![](https://i0.wp.com/wiseadvice-it.ru/upload/medialibrary/c15/2.png)
- Prava na njega, kao i na bilo koji drugi objekt metapodataka, mogu se ograničiti ulogama (i za pisanje i za čitanje). Istodobno, postoji osobitost kada se koristi u RLS-u, ali o tome će biti riječi u nastavku.
- Ima ograničenje količine podataka smještenih u serijaliziranom obliku. Njihov volumen ne smije biti veći od 4 GB.
Ako je tip parametra sesije:
- FixedArray
- FixedCollection
- Fiksna struktura
Tada vrijednost elementa zbirke može biti Nedefiniran.
Glavno područje parametara je korištenje njihovih vrijednosti u RLS zahtjevima (ograničenje pristupa na razini zapisa).
Na primjer, trebamo postaviti uvjet za trenutnog korisnika u RLS zahtjevu. Da bismo to učinili, postavili smo parametar sesije "CurrentUser", iz koda ugrađenog jezika, postavili vrijednost:
SessionParameters.CurrentUser =<значение>
Table.User = &CurrentUser
Korištenje parametra sesije na ovaj način ne uzima u obzir prava čitanja parametra, ali možete pokušati dobiti njihovu vrijednost iz ugrađenog jezika:
CurrentUser = Parametri sesije.CurrentUser;
Parametar sesije, odnosno njegovu vrijednost možete postaviti samo programski i samo na poslužitelju. Da biste to učinili, morate pozvati poslužiteljsku proceduru s klijenta. Prilikom pristupanja parametru sesije (postavljanje, dobivanje), ako parametar nije inicijaliziran, poziva se procedura Postavljanje parametara sesije u modulu sesije. Ovaj postupak ima jedan parametar Obavezne opcije– niz identifikatora parametara sesije koje treba postaviti. Postavljanje parametara sesije također se poziva prilikom uspostavljanja veze s infobazom prije pozivanja svih ostalih rukovatelja. U ovom slučaju Obavezne opcije bit će jednako Nedefiniran.
Preporuča se koristiti odgođenu (lijenu) inicijalizaciju, odnosno inicijalizirati parametre sesije na zahtjev, a ne pri pokretanju sustava, jer nisu svi parametri sesije potrebni izravno pri pokretanju sustava. Lijena inicijalizacija radi se ovako:
Procedura SettingSessionParameters(SessionParameterNames) If SessionParameterNames is Undefined Then IfParameterName = "CurrentUser" Then SessionParameters.CurrentUser = ; ElseIf ParameterName = " CurrentOrganization" Then SessionParameters.CurrentOrganization = ; // itd. Završi ako; Završi ako; EndProcedurevalue>vrijednost>>Budući da je parametar sesije vezan za sesiju, neće biti moguće pristupiti parametru sesije iz metode koja se izvodi u pozadini, jer će to biti drugačija sesija. Ova nijansa može biti iznenađenje, stoga je najbolje pripremiti se unaprijed prosljeđivanjem željene vrijednosti kao parametra metode i inicijalizacijom iz parametra sesije na početku postupka.
5
Kada je potrebna preciznija postavka pristupa, RLS - sigurnosni mehanizam na razini zapisa dolazi u pomoć. 1C:Enterprise System Configurations 8 izvorno je pozicioniran kao program za računovodstvo više tvrtki, a jedan je od...
3
Počevši od platforme 8.0 sustava 1C Enterprise, moguće je ograničiti korisnička prava pristupa na razini zapisa. Za to se koristi RLS (Record Level Security) mehanizam. Takvo "fino" ugađanje može biti...
3
Često se susrećem s pitanjima vezanim uz programsku izradu i postavljanje korisničkih prava. U ovom ću članku dati primjere za standardne i upravljane aplikacije koje programski stvaraju korisnika u ...
2
Pitanje: Dodao sam novog korisnika. Kreiram novo sučelje (kopiranjem postojećeg) i navodim ovo sučelje kao glavno za ovog korisnika. Problem je što novostvoreno sučelje...
- TRENUTNA IZDANJA 1C
- PRIMJERI KODOVA NA 1C PLATFORMI