Mga pautang sa sasakyan. Stock. Pera. mortgage. Mga pautang. milyon. Mga pangunahing kaalaman. Mga pamumuhunan

Kumuha ng functional na opsyon. Mga opsyon sa pag-andar. Prinsipyo ng pagpapatakbo at halimbawa ng paggamit. Paglikha ng isang Functional Options Parameter

Sa paglabas ng platform ng 1C:Enterprise 8.2, isang bagong bagay ang lumitaw sa puno ng pagsasaayos - "Mga functional na opsyon". Aktibo itong ginagamit sa lahat ng tipikal na configuration batay sa mga pinamamahalaang form at nagsisilbing pasimplehin ang proseso ng pagpapakita mga indibidwal na detalye, mga bagay sa interface. Halimbawa, sa iyong configuration mayroong isang module para sa pakikipagpalitan sa mga panlabas na serbisyo sa web. Gumagamit ang modyul na ito ng ilang detalye sa mga dokumento, rehistro at indibidwal na bahagi sa mga subsystem. Ang module ay opsyonal at hindi kinakailangan para sa bawat kumpanya. Ito ay lohikal na dahil hindi lahat ay nangangailangan ng isang module, kung gayon hindi rin palaging kinakailangan na ipakita ang lahat ng mga elemento/patlang na nauugnay dito.

Sa mas lumang mga bersyon ng platform, ang paglutas ng mga naturang problema ay nangangailangan ng pagsulat ng karagdagang code, na kailangang tawagan sa lahat ng mga lugar na umaasa. Halimbawa, kung kailangan naming itago ang ilang partikular na detalye ng form (depende sa value ng setting), kailangan naming tawagan ang kaukulang code kapag binubuksan ang form. Ito ay hindi masyadong maginhawa at sa karamihan ng mga kaso ang mga developer ay sumuko sa mga ganoong bagay.

Mabuti kung kailangan mo lamang itago ang mga patlang sa anyo ng mga dokumento, ngunit maaari rin kaming magkaroon ng mga form sa pagpaparehistro kung saan posible rin ang pakikipag-ugnayan ng user. Ang pagsulat ng isang universal display control function ay medyo mahirap at mangangailangan ng karagdagang oras, na hindi kailanman sapat.

Ang mga functional na opsyon ay idinisenyo upang malutas ito at maraming iba pang mga paghihirap na nauugnay sa pagpapakita ng mga elemento ng interface/ang komposisyon ng mga magagamit na bagay sa user interface. Sa tala na ito, hindi ko isasaalang-alang ang mga halimbawa ng paggamit ng pangunahing layunin ng mga opsyon sa pag-andar, ngunit bibigyan ng pansin ang kanilang paggamit sa isang hindi karaniwang paraan. Maaaring pamilyar ito sa maraming advanced na developer, ngunit napunta ako sa paraang ito nang hindi sinasadya. Mas tiyak, ito ay inspirasyon ng pagsasagawa ng programming sa JavaScript.

Case No. 1: isang functional na opsyon bilang isang wrapper sa iba pang mga bagay

Ang unang hindi karaniwang tampok ng mga functional na opsyon ay ang kakayahang lumikha ng mga wrapper. Tingnan natin ang pinakasimpleng halimbawa - mga constant. Halimbawa, nagdagdag ka ng bagong constant sa isang configuration na may malaking bilang ng mga tungkulin ng user. Upang ma-access ng mga user ang halaga ng isang pare-pareho, kailangan mong magtakda ng mga karapatan sa pagbabasa sa mga naaangkop na tungkulin. Kung hindi nakatakda ang mga karapatan, hindi makukuha ng mga user ang halaga nito. Kung maraming mga tungkulin at hindi ito minana mula sa batayang tungkulin, kakailanganin mong gumugol ng oras sa pagsuri sa naaangkop na mga kahon.

Ang isang function na opsyon ay maaaring malutas ang problemang ito nang mas elegante. Ang ideya ay ito: lumikha ng isang pare-pareho (halimbawa, ). Hindi kami nagtatalaga ng mga karapatan dito. Gumawa ng functional na opsyon na may parehong pangalan at ipahiwatig ito sa property "Imbakan" ipahiwatig ang isang pare-pareho "Posible sa Pag-save ng Data". Naglagay din kami ng bandila "Pribilehiyo na paggamot sa oras na matanggap".

Iyon lang, ngayon kahit saan sa code kung saan kailangan mong sumangguni sa isang pare-parehong isinusulat namin tulad nito:

Dahil itinakda namin ang opsyon sa privileged mode, hindi namin kailangang tukuyin ang anumang karagdagang mga karapatan para sa constant. Siyempre, hindi na kailangang ilapat ang pamamaraan na ito sa lahat ng naiisip at hindi maiisip na mga sitwasyon. Tandaan, ang wastong paglalaan ng mga karapatan ay ang susi sa kapayapaan ng isip. Gamitin lamang ang lansihin sa mga tunay na kinakailangang kaso.

Kaso No. 2. Karagdagang antas ng abstraction

Hindi ko alam kung ano ang mas tama na tawag sa pamamaraang ito, ngunit sa aking isipan ay ganoon talaga ang tunog nito. Tingnan natin ang nakaraang halimbawa. Mayroon pa rin kaming parehong pare-pareho ang "Kakayahang mag-save ng data". Nakikipagtulungan kami dito gamit ang functional na opsyon ng parehong pangalan bilang isang wrapper.

Ngayon isipin na gusto naming alisin ang pare-pareho at lumipat sa paggamit ng isang direktoryo. Ang isang tipikal na sitwasyon para sa paglutas ng naturang problema (kung gumagamit lang kami ng isang pare-pareho) ay ang magpatakbo ng isang pandaigdigang tool sa paghahanap upang makita ang access sa constant. Ipaalala ko sa iyo na kung hindi kami gagamit ng functional na opsyon bilang isang wrapper, dapat naming tratuhin ang pare-pareho tulad nito:

Constants.Ability toSaveData.Get();

Nahanap namin ang lahat ng mga tawag at pinapalitan ang mga ito ng landas patungo sa bagong storage object. Sumang-ayon, ito ay medyo hindi maginhawa. Kung ginamit namin ang nakaraang kaso (gamit ang isang functional na opsyon bilang isang wrapper), pagkatapos ay upang "ilipat" kailangan lang naming pumunta sa mga katangian ng functional na opsyon at baguhin ang ari-arian "Imbakan". Halimbawa, ipahiwatig doon "Direktoryo" o "Rehistro ng impormasyon". Walang mga larong may pandaigdigang paghahanap ang kinakailangan. Ang code para sa pag-access sa halaga ng isang pare-pareho sa pamamagitan ng isang functional na opsyon ay mananatiling pareho:

GetFunctionalOption("DataSavingAbility");

Ang mga functional na opsyon ay isang metadata object na matatagpuan sa pangkat na "General":

Ang mga functional na opsyon ay bahagi ng mekanismo ng functional na mga opsyon, na nagbibigay-daan sa iyong paganahin o huwag paganahin ang ilang functionality sa solusyon ng application depende sa mga pangangailangan ng user, nang hindi binabago ang mismong configuration.
Halimbawa, hindi lahat ng organisasyon ay maaaring gumamit ng warehouse accounting. Kung hindi ginagamit ang warehouse accounting, makatuwirang tanggalin ang field ng warehouse mula sa lahat ng dokumento, direktoryo at rehistro - iyon ay kapag ang mga functional na opsyon ay tumulong sa amin.

Tingnan natin ang isang halimbawa:

Gumawa tayo ng functional na opsyon " Accounting sa pamamagitan ng mga Warehouse".
Imbakan: ang field na nag-iimbak ng halaga ay ipinahiwatig.
Maaari kang pumili ng isang pare-pareho, isang katangian ng direktoryo, o isang mapagkukunan ng pagpaparehistro ng impormasyon.
Gagamit kami ng isang pare-pareho.

Gumawa tayo ng pare-pareho " Panatilihin ang Mga Account ng mga Warehouse" at piliin ito sa patlang ng imbakan. Ang pare-parehong ito ay magiging responsable para sa pagpapagana at hindi pagpapagana ng opsyon sa paggana. Lagyan ng check ang kahon na "Privileged mode kapag tumatanggap." Nangangahulugan ang checkbox na ito na ang mga value ng functional na opsyon ay matatanggap sa privileged mode :

Nag-update kami, naglulunsad ng 1C Enterprise. Itakda ang halaga ng pare-pareho = True:

Bilang resulta mayroon kaming:

Kapag nagtatakda ng pare-pareho = False, nakukuha natin ang:

Mayroon ka bang tanong o nangangailangan ng tulong mula sa isang consultant?

Kaya, gumawa kami ng functional na opsyon na kumokontrol sa mga field ng uri ng DirectoryLink.Warehouse

Tingnan natin ngayon ang isang halimbawa ng paggamit ng mga parameter ng functional na opsyon.
Magdagdag tayo ng bagong functional na opsyon " Accounting ng pera"
Imbakan: Directory.Organization.Details.Currency Accounting


Idagdag natin sa komposisyon ng mga detalye ng dokumento "Pagtatakda ng mga presyo ng item" - "Currency"


Sa anyo ng isang Dokumento sa mga pamamaraan na "When CreatedOnServer" at "OrganizationWhenChanged"
Idagdag natin ang sumusunod na code:

Ina-update namin ang configuration at inilunsad ito.
Lumilikha kami ng dalawang Organisasyon at para sa isa sa kanila lagyan ng tsek ang kahon na "Currency accounting"

Ano ang makukuha natin bilang resulta? Bilang resulta ng paggamit ng mga parameter ng functional na opsyon, nakatanggap kami ng parametric na kontrol ng field na "Currency" sa dokumentong "Pagtatakda ng mga presyo ng item." Yung. para sa organisasyong "Alpha" ang field na "Currency" ay ipapakita, at para sa organisasyong "Beta" ang field na "Currency" ay hindi ipapakita.
Siguraduhin natin ito. Buksan ang dokumento at subukang baguhin ang field na "Organisasyon".
Kapag nagtatakda ng Organization = "Alpha", ang pera ay ipinapakita; baguhin sa "Beta" - aalisin ang currency



1. Mga karapatan sa pag-access.

Sa katunayan, ang lahat ay napaka-simple. Sa 1C bilang default lahat ng bawal ay ipinagbabawal. Kumain isang entity lamang na responsable para sa pag-access user sa anumang functionality o data. Ang entity na ito ay tinatawag na "I-access nang tama". Siya nga pala ang nag-iisa isang elementong responsable para sa pag-access sa isang partikular na operating mode, direktoryo, mga detalye....

Ang bilang ng mga uri ng mga karapatan sa pag-access ay paunang natukoy ng platform. Sa kabuuan, ang platform ay may dalawang pangunahing grupo ng mga karapatan sa pag-access. Karaniwan sa buong sistema mga karapatan sa pag-access sa mga mekanismo ng platform, responsable para sa pag-access sa ilang mga operating mode ng platform (Administration, Exclusive mode, Thin client, Interactive na pagbubukas ng mga panlabas na ulat....). AT mga pahintulot sa bagay, na nagpapahintulot sa iyo na magtrabaho sa iba't ibang mga bagay sa pagsasaayos. Ang kanilang numero ay nakasalalay sa uri ng object ng pagsasaayos. Halimbawa, ang direktoryo ay may 16 na magkakaibang uri ng pag-access (Basahin, Magdagdag, Baguhin, Tanggalin....). Mayroon lamang limang uri ng pag-access para sa rehistro ng impormasyon. Ang lahat ng mga karapatang ito ay maaari lamang itakda sa antas ng direktoryo sa kabuuan. Maaari mo ring paghigpitan ang pag-access sa antas ng kredensyal. Ngunit sa kasong ito, isang bahagi lamang ng mga uri ng mga karapatan ang magagamit (para sa mga direktoryo ang mga ito ay mga karapatan sa Tingnan at Pag-edit).

Ang lahat ng mga karapatan sa pag-access ay magkakaugnay at umaasa sa isa't isa. Mayroong mas mataas at mas mababang antas ng mga karapatan. Hindi ka maaaring magbigay ng mas mababang antas ng karapatan kung ang user ay walang karapatang magsagawa ng mas mataas na antas ng pagkilos.

Isaalang-alang natin mga karapatan sa pag-access sa direktoryo. Ipinapakita ng diagram na ito na ang karamihan sa mga karapatan ay mga paglilinaw ng mas pangkalahatang mga karapatan. Kung ang Right1 ay ganap na matatagpuan sa diagram sa loob ng rectangle ng isa pang Right2, hindi maibibigay ang Right1 nang hindi nagbibigay ng Right2. Ang pinakakaraniwang karapatan ay ang "Read" right. Kung hindi available ang karapatang Basahin, hindi available ang lahat ng iba pang karapatan. Kung hindi available ang karapatan na "Magdagdag," hindi maaaring itakda ang karapatan na "Interactive Add." gayunpaman, ang sistema ng mga karapatan ay hindi matatawag na isang ganap na hierarchy. Halimbawa, ang karapatan sa "Pag-edit" ay maaari lamang ibigay kung mayroon kang mga karapatan sa "Tingnan" at "I-edit". Ngunit maaari kang magbigay ng "View" nang walang "Change" o "Change" nang walang "View".

Ang karapatan sa pag-access ay ang pinakamababang yunit ng pag-access. Ang lahat ng kontrol sa pag-access ay bumaba sa pagbibigay sa user ng kinakailangang hanay ng mga karapatan. Ang natitirang mga bagay (mga tungkulin, mga grupo ng pag-access) ay mga karagdagang binding na nagsisilbi para sa pagpapangkat at mas maginhawang pagpapalabas ng mga karapatan sa pag-access.

2. Mga Tungkulin - isang mekanismo para sa pagbibigay ng mga karapatan sa pag-access

Tingnan natin kung paano ito eksaktong ginawa pagbibigay ng mga karapatan sa pag-access ng gumagamit. Para sa kaginhawaan ng pagbibigay ng mga karapatan sa pag-access sa 1C platform, isang espesyal "Roli" na mekanismo. Ito ay isang layer sa pagitan ng mga gumagamit ng base ng impormasyon at mga karapatan sa pag-access. Ang bawat tungkulin ay pinagsasama ang isang hanay ng mga karapatan sa pag-access, ang pagtatalaga kung saan ay may katuturan lamang sa parehong oras. Halimbawa, sa papel na "Basahin ang impormasyon sa pakikipag-ugnayan," makatuwirang pagsamahin ang mga hanay ng mga karapatan na responsable para sa mga nauugnay na direktoryo na may impormasyon sa pakikipag-ugnayan. Karamihan sa simpleng paraan pagtatakda ng tungkulin sa gumagamit ay binubuksan ang information security user card sa configurator at lagyan ng check ang mga kahon sa tabi ng mga tungkuling kailangan ng user. Ito ay isang unibersal na pamamaraan at ito ay gumagana sa anumang pagsasaayos. Gayunpaman, sa pagtaas ng pagiging kumplikado ng mga pagsasaayos at pagtaas ng bilang ng mga tungkulin, ito ay naging medyo labor-intensive. Samakatuwid, sa kasalukuyang mga karaniwang solusyon ay mayroong karagdagang layer sa pagitan ng gumagamit ng seguridad ng impormasyon at ng mga tungkulin. Ang layer na ito ay ipinatupad sa form "Access Control" subsystem. Binibigyang-daan ka nitong pagsamahin ang mga tungkulin sa mas malalaking entity - "Mga Profile" at hindi na magtalaga magkahiwalay na tungkulin, at mga profile na naglalaman ng mga hanay ng ilang mga tungkulin.

Isaalang-alang natin ang scheme para sa pagtatalaga ng mga karapatan sa pag-access sa mga user, na ginagamit sa karamihan ng mga karaniwang configuration. Sa isang pinasimpleng anyo, maaari itong ilarawan bilang mga sumusunod. Ang mga bagong entity ay ipinakilala "I-access ang profile" At "Pangkat ng access". Ang bawat access profile ay may kasamang ilang tungkulin. At ang bawat user ay bibigyan ng isa o higit pang mga pangkat ng access. Ang bawat pangkat ng pag-access ay nauugnay sa isang profile sa pag-access. Bilang resulta, nagkakaroon kami ng pagkakataong tukuyin hindi lamang ang mga tungkulin para sa user, ngunit ang mga hanay ng mga tungkulin depende sa mga function na kanyang ginagawa.

Mula sa teknikal na pananaw ang sistemang ito ang pagpapalabas ng mga karapatan ay ipinatupad na may partisipasyon ng dalawang karaniwang subsystem. Ang subsystem na "Access Control" ay ginagamit upang i-configure ang koneksyon ng mga grupo ng pag-access na may mga tungkuling na-predefine sa configuration. Ang subsystem na "Mga User" ay ginagamit upang i-configure ang mga koneksyon sa pagitan ng mga user ng seguridad ng impormasyon at mga grupo ng access sa configuration.

3. "Lohika ng pahintulot" bilang panuntunan para sa intersection ng mga tungkulin.

Mahalagang maunawaan na sa 1C ang pangkalahatang lohika ng kontrol sa pag-access ay lohika ng pahintulot. Sa 1C platform sa pangkalahatan walang mga mekanismo ng pagtanggi sa pag-access. May mga mekanismo lamang pagbibigay ng access. Bilang default, ang pag-access sa lahat ng data ay tinanggihan, at Ang pag-set up ng access ay binubuo ng pagbibigay sa bawat user ng mga karapatan na kailangan niya. Nangangahulugan ito na kung ang ilang tungkulin ay nagbibigay sa gumagamit ng karapatang tingnan ang mga dokumentong "Mga benta ng mga kalakal", kung gayon ang karapatang ito ay hindi maaaring alisin sa anumang paraan iba pang mga tungkulin o anumang iba pang platform at mekanismo ng pagsasaayos. Sa simula ay hindi ka makakapagbigay ng ganap na access sa direktoryo, ngunit salain ang data kung saan kami nagbibigay ng access gamit ang RLS. Ngunit kung nabigyan na ng access, hindi na ito maaaring bawiin ng ibang mga tungkulin.

Iyon ang dahilan kung bakit, kapag nililimitahan ang pag-access ng user sa isang direktoryo ayon sa mga tungkulin, napakahalagang suriin na ang user ay hindi nakatalaga ng anumang ibang tungkulin sa parehong direktoryo. Kung hindi, ang unang tungkulin ay magbibigay ng kinakailangang pag-access, na hindi maaaring tanggihan ng pangalawa.

Ang platform ay may kakayahang bigyan ang gumagamit ng karagdagang mga karapatan habang nagsasagawa ng isang hiwalay na operasyon. Ang tampok na ito ay tinatawag na Privileged Mode. Pinapayagan nito ang user na magsagawa ng mga aksyon sa data na hindi magagamit sa kanya. Gayunpaman, walang kakayahan ang platform na pansamantalang bawasan ang mga karapatan ng user.

4. Hindi direktang kontrol sa pag-access.

May mga hiwalay na mekanismo na, bagama't hindi direktang nilayon upang kontrolin ang pag-access, hindi direktang nakakaimpluwensya dito at maaaring magamit para sa mga karagdagang paghihigpit. Tingnan natin ang kanilang mga pangunahing tampok.

4.1. Mga opsyon sa pag-andar.

Ang isang access control system ay minsang tinutukoy bilang isang mekanismo mga opsyon sa pagganap. Hindi ito ganap na totoo, dahil ang mga functional na opsyon ay hindi nakakaapekto sa pag-access ng data sa anumang paraan. Ito ay isang purong mekanismo ng interface, idinisenyo upang gawing simple ang interface para sa user. Ito ay lumitaw sa platform 8.2 bilang isang resulta ng mas kumplikadong pag-andar ng pagsasaayos. Ang mga opsyon sa pag-andar ay inilaan upang itago mula sa interface functionality na hindi ginagamit ng partikular na kumpanyang ito o ng partikular na user na ito. Ang mekanismo ay nakakaapekto lamang sa pagpapakita ng data. Nawawala ang mga command mula sa interface, at ang mga detalyeng hindi pinagana ng functional na mga opsyon ay nakatago sa mga form. Kung saan may access pa rin ang user sa lahat ng mga utos at detalyeng ito. Maaari itong gumana sa nakatagong data gamit ang pagpoproseso nang walang anumang mga problema.

Maaari kang magbasa nang higit pa tungkol sa pagtatrabaho sa mga functional na opsyon sa ITS

4.2. RLS (Record Level Security)

Ang lahat ng mga mekanismong nakalista sa itaas ay nakakaapekto sa pagkakaloob ng access sa mga bagay sa kabuuan. Upang sumangguni sa mga libro, dokumento, mga detalye ng sanggunian. Ang mga karapatan sa pag-access ay nakakaapekto sa pag-access sa mga bagay, ang mga opsyon sa pag-andar ay nakakaapekto sa pagpapakita ng mga bagay sa interface. Kadalasan ang gawain ay nagmumula sa pagpayag sa isang gumagamit ng access sa direktoryo o data ng dokumento. Ngunit hindi sa lahat ng data, ngunit sa bahagi lamang nito. Halimbawa, payagan ang pag-access sa mga dokumento ng pagpapatupad para sa isang organisasyon lamang.

Mayroong karagdagang mekanismo para i-configure ang resolusyong ito RLS (Record Level Security). Gaya ng ipinahihiwatig ng pangalan, ang mekanismo ng kontrol sa pag-access na ito ay nasa antas ng mga partikular na talaan ng talahanayan. Kung ang mga karapatan sa pag-access ay nagbibigay ng access sa mga talahanayan sa kabuuan (mga direktoryo) o mga column ng talahanayan (mga detalye), tinutukoy ng RLS ang mga partikular na hilera ng talahanayan (mga talaan) kung saan pinapayagang magtrabaho ang user. Pinapayagan ka nitong matukoy ang data na magagamit sa gumagamit.

Kapag sinusuri ang mekanismong ito, dapat mong laging tandaan iyon Ang RLS ay hindi isang mekanismo ng pagtanggi sa pag-access. Siya ang mekanismo pag-filter ng pagpapalabas ng access. Yung. Ang RLS ay hindi nakakaapekto sa mga karapatan ng gumagamit; ito ay isang filter na naglilimita sa pagpapalabas ng mga karapatan. Ang RLS ay nakakaapekto lamang sa partikular na "Tungkulin" - "Access Right" na koneksyon kung saan ito nakarehistro. At hindi nakakaapekto sa mga karapatan sa pag-access na ibinibigay ng ibang mga tungkulin. Halimbawa, kung ang isang tungkulin ay nagbibigay-daan sa pag-access sa mga dokumento para lamang sa Organization1, at ang isa pang tungkulin ay nagbibigay-daan sa pag-access sa mga dokumento para sa Warehouse1, ang user ay magkakaroon ng access sa lahat ng mga dokumentong nagsasaad ng Organization1 O Warehouse1. Samakatuwid, kung ang isang gumagamit ay bibigyan ng ilang mga tungkulin, kung gayon isang filter na gumagamit ng RLS ay dapat na naka-install sa bawat tungkulin para sa parehong mga patlang (sa pamamagitan ng organisasyon at bodega). Sa karaniwang mga solusyon, ang problemang ito ay kadalasang nalulutas sa pamamagitan ng paglikha ng isang tungkulin kung saan ang lahat ng posibleng mga filter ng RLS ay nakarehistro. Ang tungkuling ito ay pagkatapos ay itinalaga sa lahat ng mga gumagamit na nagtatrabaho sa mga direktoryo na ito. Kinokontrol din na ang user ay walang ibang mga tungkulin na magagamit na naglalaman ng karapatang ma-access ang mga pinaghihigpitang dokumento.

Dapat ding tandaan na ang mga filter ng RLS ay hindi maaaring ilapat sa lahat ng posibleng uri ng pag-access ng data, ngunit sa top level na mga uri ng access. Halimbawa, para sa mga direktoryo, mula sa labing-anim na magagamit na uri ng pag-access, ang mga filter ng RLS ay maaaring ilapat sa apat na pangunahing mga filter: Pagbasa, Pagbabago, Pagdaragdag at Pagtanggal. Nangangahulugan ito na hindi namin, halimbawa, bigyan ang user ng sabay-sabay na karapatan na "I-edit" nang walang filter para sa kakayahang gumana nang programmatic sa anumang mga dokumento at ang karapatan na "I-edit" sa isang filter ng RLS ayon sa organisasyon para sa interactive na trabaho. Kung kailangan namin ng user na makapag-edit ng mga dokumento gamit ang RLS filter, kinakailangan naming magpataw ng pangkalahatang filter sa pinakamataas na antas ng "I-edit" o "Basahin".

Dahil sa pangkalahatang pagiging kumplikado ng mga mekanismo, kadalasan ay medyo mahirap malaman kung ano ang eksaktong magagamit sa isang partikular na gumagamit ng isang tipikal na pagsasaayos. Upang suriin ang mga ipinagkaloob na karapatan sa karaniwang mga pagsasaayos, mayroong isang napaka-maginhawang ulat, na tinatawag "Mga karapatan sa pag-access". Sinusuri nito ang lahat ng karapatang ibinibigay sa user at ipinapakita ang panghuling listahan ng mga karapatang ibinigay ng lahat ng mga grupo ng pag-access, na isinasaalang-alang ang mga filter ng RLS.

4.3. Paghihiwalay ng data.

Ang isa pang mekanismo na nakakaapekto sa pag-access ng data ay paghihiwalay ng data. Ang mekanismong ito ay idinisenyo upang gumana sa isa pisikal na batayan data mula sa ilang mga independiyenteng database na may karaniwang pagsasaayos at pangkalahatang sangguniang aklat. Sa ilang napakalimitadong kaso, ang mekanismong ito ay maaaring ituring na kontrol sa pag-access. Kapag pinagana, ang bawat user ay makakagawa lamang sa isa sa kanilang mga independiyenteng database, ngunit gumamit ng karaniwang data.

Sa ilang pangkalahatang kahulugan, ang mekanismong ito ay maaari ding ituring na isang filter ng data at isang espesyal na kaso ng pagpapatupad ng RLS. Hindi tulad ng RLS, ang paghihiwalay ay isang mas mahigpit na mekanismo. At salamat sa tigas na ito, may teknikal na kakayahan ang mga developer na gumamit ng mga karagdagang index upang maisagawa ang naturang pag-filter nang walang likas na pagbagal ng RLS.

Sa totoo lang Ang RLS ay mga karagdagang pagpipilian lamang, awtomatikong idinagdag sa bawat query sa database. Ang paghahati ng data ay pagdaragdag ng separator sa lahat ng mga naka-partition na talahanayan at sa kanilang mga index, kabilang ang naka-cluster. Ang data ay pinagsama ayon sa separator, i.e. pisikal na muling ipinamahagi sa buong disk sa magkakahiwalay na grupo para sa bawat halaga ng separator. Salamat dito, gumagana lamang ang bawat user gamit ang kanyang sariling data, at hindi kailangang pisikal na i-scan ng server ang buong talahanayan sa bawat kahilingan. Ito ay sapat na upang tingnan lamang ang lugar ng data ng kasalukuyang partisyon.

Gayunpaman, dahil mismo sa pisikal na muling pamamahagi ng data na ito, kapag tumatakbo bilang isang buong user na walang filter batay sa mga halaga ng separator, ang lahat ng mga query ay naisasagawa nang napakabagal. Kung wala ang halaga ng separator, imposibleng ganap na gumamit ng mga index, kaya ang dami ng data na pisikal na nabasa mula sa disk at naproseso sa bawat kahilingan ay maaaring pagtaas sa pamamagitan ng mga order ng magnitude. Alinsunod dito, sa katotohanan, ang paghihiwalay ay may katuturan lamang kung ang lahat ng mga gumagamit na patuloy na nagtatrabaho sa database ay gagana lamang sa loob ng kanilang sariling lugar.

4.4. Code ng programa.

Marahil ang pinaka-unibersal na paraan upang magtakda ng mga karagdagang paghihigpit ay code ng programa. Maaari nilang maimpluwensyahan ang anumang mekanismo ng platform. Halimbawa, upang paghigpitan ang pag-access sa mga dokumento, ang isang developer ay maaaring magdagdag ng isang filter sa form ng listahan ng dokumento, sa form ng pagpili, at maaaring suriin ng programmatically ang kakayahang tingnan ang data ng dokumento kapag nagbubukas ng isang partikular na form ng dokumento. Maaaring maglapat ng filter ang developer sa kanyang mga ulat kapag pumipili ng data.

Gayunpaman, ang code ng programa walang paraan upang limitahan ang mga karapatan sa kabuuan sa pamamagitan ng pagsasaayos. Ang pinakamaraming magagawa ng developer ay ang bumuo ng mga paghihigpit sa mga partikular na indibidwal na mekanismo ng pagkuha ng data. Dahil sa ang katunayan na ang 1C ay gumagamit ng isang object model para sa pagtatrabaho sa data, ang code ng programa ay magagarantiyahan ang proteksyon ng data mula sa pagbabago sa pamamagitan ng pagdaragdag kinakailangang mga tseke sa object module. Ngunit hindi ganap na magagarantiya ng developer na ang user ay tiyak na hindi makakakuha ng impormasyon tungkol sa mga dokumento ng pagpapatupad ng ibang tao sa pamamagitan ng iba pang mga ulat o pagproseso.

Ang prinsipyong ito ay ginagamit, halimbawa, sa. Sa pamamagitan ng pagkonekta sa configuration, ang extension ay nagdaragdag ng mga custom na paghihigpit at pagsusuri sa lahat ng reference na libro at dokumento. Sinasala nito ang data na ipinapakita sa mga user sa mga listahan, sinusuri ang access kapag tinitingnan o binabago ang data. Tinitiyak na hindi mababago ang ipinagbabawal na data. Ngunit hindi nito ma-filter ang data sa mga ulat o query.

Palaging may mga opsyon para sa pagkuha ng ipinagbabawal na data sa pamamagitan ng kahilingan, sariling pagproseso o ulat. Maliban kung mahigpit mong nililimitahan ang listahan ng functionality ng configuration na ginagamit ng user at magdagdag ng hiwalay na filter sa bawat mekanismo (form, pagproseso, ulat, kahilingan) na pinapayagan sa user.

4.5. Paghahambing ng mga pagpipilian.

Subukan nating maikli na ihambing ang isinasaalang-alang na mga opsyon para sa karagdagang limitasyon ng data.

Paano ito i-on

Ano ang mangyayari?

Mga opsyon sa pag-andar- mekanismo ng interface para sa pagtatago ng pag-andar

1. Magdagdag ng lokasyon ng storage para sa isang functional na opsyon: constant, directory attribute o information register resource.
2. Magdagdag ng functional na opsyon sa configuration at tukuyin ang dating ginawang lokasyon ng storage dito.
3. Ipahiwatig ang komposisyon nito sa mga katangian ng opsyon sa pag-andar, markahan ang lahat ng mga bagay sa pagsasaayos na nakasalalay dito.
4. Paganahin ang paggamit ng functional na opsyon sa enterprise mode.

1. Ang lahat ng bagay na kasama sa functional na opsyon ay hindi na ipapakita sa command interface.
2. Ang lahat ng mga field na nakatago ng opsyon ay mawawala sa mga form at ulat.

RLS (Record Level Security)- karagdagang mga filter para sa mga karapatan na pinapayagan ng tungkulin

1. Magrehistro ng mga filter ng RLS sa bawat tungkulin ng user para sa bawat karapatan na kailangang limitahan.

Tandaan: Sa Enterprise mode, walang kinakailangang aksyon. Awtomatikong ilalapat ang mga filter.

1. Ang na-configure na filter ay idaragdag sa bawat kahilingan sa seguridad ng impormasyon.
2. Ang data na hindi akma sa RLS filter ay hindi makukuha sa anumang paraan: hindi ito ipapakita sa mga form o ulat; ay hindi pipiliin ng anumang mga kahilingan.

Paghihiwalay ng data- pagpapanatili ng ilang mga independyente sa isang pisikal na database

1. Magdagdag ng pangkalahatang katangian sa configuration na tumutukoy sa komposisyon ng nakabahaging data.

2. Magdagdag ng dalawang parameter ng session: para sa sign ng paggamit at ang kasalukuyang halaga ng pagbabahagi ng data.

3. Magdagdag ng program code upang paganahin ang paghihiwalay ng data at punan ang kasalukuyang halaga ng separator.

1. Kaagad pagkatapos magdagdag ng kakayahang paghiwalayin ang data sa pagsasaayos, ang mga talahanayan kung saan idinagdag ang kakayahang maghiwalay ay pisikal na itatayo.

  • Magdaragdag ng field na "Separator", na mag-iimbak ng halaga ng separator.
  • Ang lahat ng mga index sa mga talahanayan ay muling itatayo. Idaragdag ang field ng separator bilang unang field.

2. Pagkatapos paganahin ang paghihiwalay.

  • Ang isang filter na batay sa halaga ng separator ay idaragdag sa ganap na lahat ng mga kahilingan sa seguridad ng impormasyon.
  • Kapag nagre-record ng anumang data, awtomatikong pupunan ang separator value ayon sa value ng parameter ng session.
Code ng programa- anumang karagdagang mga paghihigpit sa punto
1. Magdagdag ng overlay code kinakailangang mga paghihigpit sa pagsasaayos.

1. Gagawin kung ano mismo ang sinasabi nito.

Tandaan: ang code ay hindi nakakaapekto sa configuration sa kabuuan, ngunit tanging ang partikular na mekanismo kung saan ang aksyon ay inireseta

5. Mga resulta.

Ang bawat paraan ng pagtatakda ng mga paghihigpit ay may mga kalamangan at kahinaan nito. Mula sa pananaw ng teknolohiya, ang pinakatamang paraan ay ang wastong hatiin ito sa mga tungkulin. Ang pinaka-maaasahang paraan upang i-filter ang available na data ay ang paggamit ng RLS. Ito ay para sa gawaing ito na ang mekanismo ay dinisenyo. Ang mga hadlang sa punto ay pinakamadaling ipatupad gamit ang code. Ang mga functional na opsyon at paghihiwalay ng data ay medyo partikular na mga mekanismo na hindi nilayon upang paghigpitan ang pag-access. Bagaman sa ilang mga kaso maaari silang magamit para dito.

Mga opsyon sa pag-andar At Parameter ng opsyonal na functional- ito ay 1C 8.3 (8.2) na mga bagay sa pagsasaayos, na magkakasamang kumakatawan sa isang mekanismo para sa mga opsyon sa paggana. Ang mekanismo ng functional na mga opsyon ay isang functionality na nagbibigay-daan sa iyong matukoy ang hanay ng functionality na kailangan ng mga user.

Sa madaling salita, ang mekanismo ng functional na mga opsyon ay isang on/off switch para sa iba't ibang functionality sa isang configuration.

Bakit maaaring kailanganin mong i-disable ang functionality?

Kumuha ng 267 video lesson sa 1C nang libre:

Kadalasan, ang karagdagang pag-andar ay maaaring makapagpalubha sa gawain ng mga empleyado. Isang maliit na halimbawa ng paggamit ng mga functional na opsyon sa 1C - ang database ay nagpapanatili ng mga talaan para sa isang organisasyon o bodega, kung gayon bakit obligado ang user na punan ang data na ito sa lahat ng mga dokumento?

Ano ang kinokontrol ng mga functional na opsyon?

Una sa lahat, ang paggamit ng mga opsyon sa pag-andar ay pinaka-maginhawang makikita sa interface: mga detalye ng form, mga form ng command, pangkalahatang interface - lahat ng ito ay maaaring maiugnay sa mga opsyon sa pagganap. Depende sa halaga ng mga functional na opsyon, maaari mong limitahan ang pagpapakita ng data sa isang ulat na binuo batay sa .

Bagay 1c "Mga opsyonal na functional" - ay nilayon upang i-highlight ang functionality sa isang application solution na maaaring i-on (off) sa panahon ng pagpapatupad nang hindi binabago ang sarili nito (kasama ang mga Subsystem ay bumubuo sila ng 1C thin client interface). Ang mga ito ay bahagi ng mekanismo ng functional na mga opsyon.

Mekanismo ng mga functional na opsyon may kasamang dalawang metadata object:

  1. Functional na opsyon;
  2. Mga parameter ng functional na opsyon.

Higit pang mga detalye

Functional na opsyon kumakatawan sa isang metadata object na maaaring direktang makaimpluwensya sa komposisyon ng interface ng application (kung iniimbak ng functional na opsyon ang halaga nito sa isang Boolean attribute). Gamit ang mga bagay na may ganitong uri, maaari mong itago ang mga elemento na nauugnay sa hindi magagamit na pagpapagana. Halimbawa, maaaring itago ng opsyon sa Currency accounting ang Mga Pera, ang Currency mula sa field, at ang column na halaga ng Currency mula sa mga ulat.

Ang pinagmulan ng value ng isang functional na opsyon ay ang metadata object na pinili bilang Storage property, halimbawa, ito ay maaaring .

Kung ang value ng isang functional na opsyon ay naka-store sa isang directory attribute o resource, kailangan ng karagdagang impormasyon na eksaktong nagsasaad kung paano pipiliin ang option value. Para sa layuning ito, ang isang hiwalay na metadata object ay ibinigay - Mga Parameter ng Functional na Opsyon.

Masasabi nating ang mga parameter ng functional na mga opsyon ay ang mga coordinate axes ng value space ng functional na mga opsyon. Bukod dito, maaaring matukoy ng isang parameter ng mga functional na opsyon ang halaga ng "nito" na coordinate axis nang sabay-sabay para sa maraming functional na opsyon.

[pagbagsak]

Maaaring magkaroon ng epekto ang mga functional na opsyon:

  1. sa user interface:
    • pandaigdigan ;
    • mga detalye (kabilang ang mga column ng mga detalye ng form tulad ng Talaan ng mga Halaga o ValueTree);
    • bumuo ng mga utos;
  2. sa mga ulat na ipinatupad gamit ang isang data composition system;
  3. sa mga algorithm na nakasulat sa isang built-in na wika - posible na makuha ang mga halaga ng mga opsyon sa pagganap mula sa built-in na wika at gamitin ang mga ito sa iba't ibang mga kondisyon, halimbawa, upang mabawasan ang dami ng mga kalkulasyon (tingnan, halimbawa, ).

PANSIN! Kung gumagana ang application ng kliyente sa bersyon ng file ng infobase sa pamamagitan ng web server, kung gayon ang pagbabago sa functional na opsyon ay hahantong sa pagbabago sa user interface pagkatapos lamang i-restart ang web server (i-restart aplikasyon ng kliyente hindi magdudulot ng pagbabago sa user interface).

Mga Katangian ng Mga Opsyon sa Paggana 1C

  • Ang storage ay isang field kung saan kailangan mong pumili ng object ng uri ng Boolean. Karaniwan, ang mga constant ay ginagamit.
  • kapag tumatanggap - ang bandila ay may pananagutan para sa kakayahang makatanggap ng halaga ng isang functional na opsyon sa privileged mode.
  • Komposisyon - isang listahan ng mga bagay at mga detalye ng bagay, kung saan ang visibility ay naka-on/na-off kapag ang isang functional na opsyon ay naka-on/off (makokontrol gamit ang isang pinamamahalaang form).

Halimbawa, depende sa mga kondisyon ng isang partikular na pagpapatupad, posibleng hindi paganahin ang accounting ng mga kalakal sa pamamagitan ng warehouse upang kapag nagrerehistro ng mga dokumento para sa resibo ng mga kalakal, ang Warehouse field ay hindi ipinapakita sa form ng dokumento.

Mga tampok ng paggamit ng 1C Functional Options:

  1. Ang mga functional na opsyon ay maaaring magkaroon ng mga halaga ng anumang uri (hindi kinakailangang Boolean).
  2. Kapag nagdaragdag ng bagong constant para gumamit ng opsyon sa function, tiyaking isama ito sa naaangkop na subsystem at magtalaga ng mga pahintulot dito.
  3. Ang pagtatrabaho sa mga opsyon sa pag-andar ay magagamit mula sa built-in na wika, salamat sa kung saan ang developer ay maaaring lumikha ng kanyang sariling mga algorithm para sa mga halaga ng mga opsyon sa pagganap.
  4. Ang command interface command ay hindi isasama sa command interface kung ang functional na opsyon ay hindi pinagana:
    • isang katangian na isang parameter ng command;
    • uri ng parameter ng command (kung compound ang uri ng parameter ng command, magiging hindi available ang command kapag hindi pinagana ang lahat ng uri ng parameter).

PANSIN! Ang mga functional na opsyon at ang kanilang mga parameter ay hindi nakakaapekto sa komposisyon ng database: lahat ng mga talahanayan at field ay naroroon sa database anuman ang estado ng mga functional na opsyon.

Impluwensya ng mga functional na opsyon sa mga detalye ng form at mga utos:

  1. uri ng pinamamahalaang form<Вид>Isang bagay ( DirectoryObject, DocumentObject, atbp.) ay hindi paganahin kung ang kaukulang bagay ay hindi pinagana ng functional na opsyon. Tanging ang mga functional na opsyon na walang mga parameter ang sinusuri.
  2. Mga pangunahing katangian ng isang uri ng pinamamahalaang form DynamicList ay hindi pagaganahin kung ang functional na opsyon ay hindi pinapagana ang configuration object na tinukoy bilang pangunahing talahanayan ng dynamic na listahan. Tanging ang mga functional na opsyon na walang mga parameter ang sinusuri.
  3. Ang katangian ng form ng isang uri ng sanggunian ay hindi pinagana kung ang object ng pagsasaayos na bumubuo sa ganitong uri ay hindi pinagana ng isang functional na opsyon. Ang katangian ng form ng isang pinagsama-samang uri ay hindi pinagana kung ang mga opsyon sa paggana ay hindi pinagana ang lahat ng mga uri ng nasasakupan.
  4. Idi-disable ang isang form table kung ito ay nagpapakita ng data ng katangian ng form na hindi pinagana ng isang functional na opsyon.
  5. Walang mga uri sa dialog ng pagpili ng uri (halimbawa, para sa mga field ng pag-input na nauugnay sa mga katangian ng isang kumplikadong uri) kung ang mga object ng pagsasaayos na bumubuo sa mga ganitong uri ay hindi pinagana ng isang functional na opsyon. Ang impormasyon tungkol sa mga uri na hindi pinagana sa pamamagitan ng mga functional na opsyon ay naka-cache sa bahagi ng kliyente at iki-clear pagkatapos ng 20 minuto o sa isang method call UpdateInterface().

PANSIN! Hindi tulad ng command interface, ang mga halaga ng mga parameter ng functional na opsyon ay itinakda lamang para sa isang partikular na halimbawa ng form.

Paglikha ng isang Functional Options Parameter

Ang isang functional na opsyon na parameter ay ginawa gamit ang 1C configuration object na "Functional Option Parameters".

[pagbagsak]

Magagawa ito sa window ng pagsasaayos sa pamamagitan ng pagdaragdag ng bagong bagay.

Mga katangian ng parameter ng functional na opsyon:

  • Paggamit - nagse-set up ng isang set ng mga bagay na ang mga halaga ay tutukuyin kung paano dapat piliin ang halaga ng isang functional na opsyon. Kasama sa listahan ng mga magagamit na bagay ang mga direktoryo at mga sukat ng rehistro ng impormasyon. Para sa bawat parameter ng functional na opsyon sa listahang ito, maaari kang pumili ng isang direktoryo (mula sa buong listahan ng mga direktoryo) at isang dimensyon ng bawat rehistro ng impormasyon.

PANSIN! Hindi mo maaaring gamitin ang parehong metadata object sa maraming parameter ng opsyon sa function.

Maaaring interesado ka rin sa:

BPS-Sberbank online na pahayag
Ang isang espesyal na serbisyo sa Internet banking mula sa BPS-Sberbank Belarus ay nagpapahintulot sa gumagamit...
Home Credit Bank: mag-login sa iyong personal na account
Nakaka-curious, pero marami ang nagtatanong sa akin kung paano sila makakapag-log in sa kanilang personal na account...
Mga credit card ng Rosselkhozbank Rosselkhozbank credit card online na aplikasyon at kundisyon
Halos lahat ng institusyon ng pagbabangko ngayon ay nag-aalok ng malawak na hanay ng mga serbisyong pinansyal....
Pamamaraan sa pagbabayad ng utang
Magdeposito ng pera sa iyong account upang mabayaran ang utang mula sa anumang Visa, MasterCard o MIR card Ikaw...
Mga karagdagang pagkakataon para sa mga may hawak ng Visa Gold card
Ang pagtanggap ng suweldo sa isang plastic card ng Sberbank ay isang pamilyar na pamamaraan para sa maraming mga Ruso....