Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

1c 8.3 merrni përdoruesin aktual në klient. Si të merrni informacion në lidhje me rolet e konfigurimit

5
Kur kërkohet më shumë akordim i saktë i aksesit, mekanizmi RLS - Record Level Security vjen në ndihmë. Konfigurimi i sistemit 1C: Enterprise 8 fillimisht u pozicionua si një program për kontabilitetin shumë-kompani, dhe një nga ... 3
Duke filluar nga platforma 8.0 e sistemit 1C Enterprise, është e mundur të kufizohen të drejtat e aksesit të përdoruesit në nivelin e rekordeve. Për këtë përdoret mekanizmi RLS (Record Level Security). Një "rregullim" i tillë mund të jetë ... 3
Shpesh ndeshem me pyetje në lidhje me krijimin e softuerit dhe vendosjen e të drejtave të përdoruesit. Në këtë artikull, unë do të jap shembuj për aplikacione normale dhe të menaxhuara që krijojnë në mënyrë programore një përdorues në ... 2
Pyetje: Kam shtuar një përdorues të ri. Unë krijoj një ndërfaqe të re (duke kopjuar atë ekzistuese) dhe specifikoj këtë ndërfaqe si kryesore për këtë përdorues. Problemi është se ndërfaqja e re e krijuar ...

  • LAJMET AKTUALE 1C
  • SHEMBUJ TË KODIVE NË PLATFORMËN 1C
Rolet, të drejtat e aksesit në 1C 8.x
Si mund ta di nëse një rol specifik është i disponueshëm për përdoruesin aktual?
Nëse nuk ka RoleAvailable ("Menaxheri") Pastaj Raportoni ("Shikimi i kërkesave nga blerësit nuk lejohet!"); FundNëse;
Si mund të marr informacion rreth roleve të konfigurimit?
FunctionPossibleConfigurationPossibleRoles () RoleList = Lista e re e Vlerave; RolesConfigurations = Metadata.Roles; Për çdo rol nga RoleConfiguration Cicle Lista e roleve.Add (Role.Name); Fundi i Ciklit; Lista e roleve të kthimit; Funksioni i Fundit
Si mund të ekzekutoj kodin pa kontrolluar të drejtat?
1. Përdorni një modul të privilegjuar 2. Vendosja e kodit të programit që duhet të ekzekutohet PA KONTROLL KUFIJE në një modul të përbashkët me flamurin PRIVILEGED të vendosur për modulin. Përdorni mënyrën e privilegjuar të ekzekutimit të kodit të programit Ngjashëm me mënyrën e funksionimit të kodit të moduleve të privilegjuara. Modaliteti mund të aktivizohet/çaktivizohet me anë të gjuhës së integruar: Cakto modalitetin e preferuar (<Включить>) Parametri<Включить>(kërkohet) Lloji: Boolean. Përcakton nëse modaliteti i privilegjuar do të aktivizohet: E vërtetë - aktivizo modalitetin; E rreme - fik modalitetin. funksioni PrivilegedMode () ju lejon të përcaktoni nëse modaliteti i privilegjuar është i aktivizuar apo jo. Përdorimi i modalitetit të privilegjuar lejon, së pari, përshpejtimin e punës, pasi nuk do të ketë kufizime në aksesin në të dhëna, dhe së dyti, ju lejon të kryeni operacione me të dhëna në emër të përdoruesve që nuk kanë qasje në këto të dhëna. Rekomandohet të përdorni modalitetin e privilegjuar kur, nga pikëpamja logjike, duhet të çaktivizoni kontrollin e të drejtave ose kur mund të çaktivizoni kontrollin e të drejtave për të shpejtuar punën tuaj. Lejohet përdorimi i mënyrës së privilegjuar kur puna me të dhëna në emër të një përdoruesi të caktuar nuk cenon të drejtat e aksesit të vendosura për këtë përdorues.

Parametrat e konsideruar në 1C: Ndërmarrja paraqiten si një objekt meta të dhënash. Në thelb, nuk është asgjë më shumë se një ndryshore globale e lidhur me sesionin aktual.

Një ndryshore globale është e njëjta ndryshore si çdo tjetër, por veçoria e saj është se ju mund t'i referoheni asaj nga kudo në program, dhe në rastin e një parametri sesioni, kjo funksionon vetëm brenda sesionit aktual.

Për aq sa parametri i seancësështë një objekt meta të dhënash, ai ka veçori të caktuara:

  • Mund të jetë i një lloji të caktuar. Llojet e lejuara janë specifike për platformën. Lista e tyre është mjaft e gjerë, por edhe nëse kjo listë nuk përmban atë që ju nevojitet, gjithmonë mund ta serializoni vlerën dhe ta ruani atë në një parametër si varg.
  • Të drejtat për të, si për çdo objekt tjetër të meta të dhënave, mund të kufizohen në role (si për shkrim ashtu edhe për lexim). Në të njëjtën kohë, ekziston një veçanti kur përdoret në RLS, por kjo do të përshkruhet më poshtë.
  • Ka një kufi në sasinë e të dhënave të serializuara që mund të vendosen. Vëllimi i tyre nuk duhet të kalojë 4 GB.

Nëse lloji i parametrit të sesionit është:

  • FixedArray
  • Koleksioni fiks
  • Struktura fikse

Atëherë vlera e artikullit të mbledhjes mund të jetë E papërcaktuar.

Fusha kryesore e parametrave është aplikimi i vlerave të tyre në kërkesat RLS (kufizimi i hyrjes në nivel të regjistrimit).

Për shembull, ne duhet të vendosim një kusht për përdoruesin aktual në një kërkesë RLS. Për ta bërë këtë, vendosni parametrin e sesionit "CurrentUser", vendosni vlerën nga kodi i integruar i gjuhës:

Parametrat e sesionit.Përdoruesi aktual =<значение>

Tabela.Përdoruesi = & Përdoruesi aktual

Ky përdorim i parametrit të sesionit nuk merr parasysh lejet e leximit të parametrit, por mund të përpiqeni të merrni vlerën e tyre nga gjuha e integruar:

CurrentUser = SessionParameters.CurrentUser;


Parametri i sesionit, domethënë vlera e tij, mund të vendoset vetëm në mënyrë programore dhe vetëm në server. Për ta bërë këtë, duhet të telefononi procedurën e serverit nga klienti. Kur aksesoni një parametër sesioni (vendosni, merrni), nëse parametri nuk inicializohet, procedura do të thirret SettingSessionParameters në modulin e sesionit. Kjo procedurë ka një parametër. Parametrat e kërkuar- një grup identifikues të caktuar të parametrave të sesionit. SettingSessionParameters Ai quhet gjithashtu kur vendoset një lidhje me një infobazë, përpara se të thirren të gjithë mbajtësit e tjerë. Në këtë rast Parametrat e kërkuar do të jetë i barabartë E papërcaktuar.

Rekomandohet përdorimi i inicializimit të shtyrë (dembel), domethënë për të inicializuar parametrat e sesionit sipas kërkesës, dhe jo në fillimin e sistemit, pasi jo të gjithë parametrat e sesionit kërkohen drejtpërdrejt në fillimin e sistemit. Inicializimi dembel bëhet si kjo:

Procedura SettingSessionParameters (SessionParameterNames) Nëse SessionParameterNames janë të padefinuar atëherë If ParameterName = "CurrentUser" Pastaj SessionParameters.CurrentUser =; PërndrysheIf ParameterName = "CurrentOrganization" Pastaj SessionParameters.CurrentOrganization =; // etj. FundNëse; FundNëse; EndProcedure vlera> vlera >>

Meqenëse parametri i sesionit është i lidhur me seancën, nuk do të jetë e mundur të aksesoni parametrin e sesionit nga metoda që funksionon në sfond, pasi ky do të jetë tashmë një sesion tjetër. Kjo nuancë mund të jetë e papritur, kështu që është më mirë të përgatiteni për të paraprakisht duke kaluar vlerën e dëshiruar si parametër të metodës dhe duke e inicializuar atë nga parametri i sesionit në fillim të procedurës.

Sesionet e parametrave 1C 8.3- një variabël që ruan vlerën e parametrit të kërkuar për kohëzgjatjen e sesionit të përdoruesit. Në fakt, ky është një lloj variabli global i lidhur me sesionin e përdoruesit aktual.

Përdorimi i parametrave të sesionit në 1C

Parametrat e sesionit vendosen vetëm në mënyrë programore, nuk ka asnjë ndërfaqe universale për vendosjen e parametrave të sesionit në sistem. Zakonisht ato vendosen në fillimin e sistemit, në "Modulin e Sesionit". Nëse parametri nuk është i përcaktuar, do të shfaqet një gabim gjatë thirrjes ndaj tij.

Një shembull i vendosjes së një parametri sesioni 1C

Le të shohim një rast tipik përdorimi për parametrat e sesionit - vendosja e përdoruesit aktual. Do të marr një shembull nga përgatitja për.

Në pemën e meta të dhënave, krijoni një parametër të ri të sesionit - CurrentUser, caktoni një lloj - ReferenceLink.

Merrni mësime video 267 1C falas:

Në modulin e sesionit, ne do të krijojmë një procedurë në të cilën do të përcaktohet parametri aktual i sesionit:

Kodi i procedurës:

Procedura për vendosjen e parametrave të sesionit (Parametrat e kërkuar) // duke kërkuar për fizik. fytyrë sipas emrit të përdoruesit Përdoruesi aktual = Drejtoritë. Individët. FindByDesign (Emri i përdoruesit ()); // nëse nuk gjendet, krijoni një të re Nëse Përdoruesi aktual. Empty () Pastaj NewUser = Drejtoritë. Individët. CreateElement (); Perdorues i ri. Emri = Emri i përdoruesit (); Perdorues i ri. Shkruaj (); Përdoruesi aktual = Përdoruesi i Ri. Lidhje; FundNëse; // cakto parametrin e sesionit CurrentUser një lidhje me referencën e individëve Parametrat e sesionit. Përdoruesi aktual = Përdoruesi aktual; Fundi i procedurës

Artikujt kryesorë të lidhur