Paskolos automobiliui. Atsargos. Pinigai. Hipoteka. Kreditai. Milijonas. Pagrindai. Investicijos

Gaukite funkcinę parinktį. funkcinės galimybės. Veikimo principas ir naudojimo pavyzdys. Funkcinių parinkčių parametro kūrimas

Išleidus 1C:Enterprise 8.2 platformą, konfigūracijos medyje pasirodė naujas objektas - „Funkcinės parinktys“. Jis aktyviai naudojamas visose tipinėse konfigūracijose, pagrįstose valdomomis formomis, ir padeda supaprastinti rodymo procesą. individualios detalės, objektai sąsajoje. Pavyzdžiui, jūsų konfigūracijoje yra modulis, skirtas keistis su išorinėmis žiniatinklio paslaugomis. Šiame modulyje naudojama daugybė dokumentų, registrų ir atskirų posistemių komponentų detalių. Modulis yra neprivalomas ir nereikalingas kiekvienai įmonei. Tai logiška, nes ne visiems reikia modulio, tada ne visada būtina rodyti visus su juo susijusius elementus / laukus.

Senesnėse platformos versijose sprendžiant tokias problemas reikėjo parašyti papildomą kodą, kuris turėjo būti iškviestas visose priklausomose sekcijose. Pavyzdžiui, jei reikėjo paslėpti tam tikras formos detales (atsižvelgiant į parametro reikšmę), tada atidarant formą reikėjo iškviesti atitinkamą kodą. Tai nebuvo labai patogu ir daugeliu atvejų kūrėjai atsisakydavo tokių dalykų.

Na, jei norite paslėpti tik laukus dokumentų pavidalu, bet vis tiek galime turėti registrų formas, su kuriomis galima ir vartotojo sąveika. Parašyti bendrą ekrano valdymo funkciją yra gana sunku ir reikės papildomo laiko, kurio niekada neužtenka.

Funkcinės parinktys skirtos išspręsti šį ir daugelį kitų sunkumų, susijusių su sąsajos elementų rodymu / galimų objektų sudėtimi vartotojo sąsajoje. Šioje pastaboje nenagrinėsiu funkcinių variantų pagrindinės paskirties panaudojimo pavyzdžių, o atkreipsiu dėmesį į jų panaudojimą ne visai standartiniu būdu. Galbūt tai yra žinoma daugeliui pažengusių kūrėjų, bet aš atėjau prie šio metodo visiškai atsitiktinai. Tiksliau, tai buvo įkvėpta programavimo „JavaScript“ praktika.

1 atvejis: funkcinė parinktis kaip įvyniojimas virš kitų objektų

Pirmoji nestandartinė funkcinių parinkčių savybė – galimybė kurti įvyniojimus. Apsvarstykite paprasčiausią pavyzdį – konstantas. Pavyzdžiui, pridedate naują konstantą prie konfigūracijos su daugybe vartotojo vaidmenų. Kad vartotojai galėtų pasiekti konstantos reikšmę, turite nustatyti atitinkamus skaitymo leidimų vaidmenis. Jei teisės nenustatytos, vartotojai negalės gauti jo vertės. Jei vaidmenų yra daug ir jie nėra paveldėti iš pagrindinio vaidmens, turėsite skirti laiko atitinkamų langelių pažymėjimui.

Funkcinis variantas gali elegantiškiau išspręsti šią problemą. Idėja tokia: sukuriame konstantą (pavyzdžiui, ). Mes tam teisių nesuteikiame. Sukuriame funkcinį variantą tuo pačiu pavadinimu ir nurodome jį nuosavybėje "Saugykla" nurodykite konstantą "Galimybė išsaugoti duomenis". Taip pat iškėlėme vėliavą „Privilegijuotas priėmimo režimas“.

Tai viskas, dabar bet kurioje kodo vietoje, kur norite nurodyti konstantą, rašome taip:

Kadangi parinktį nustatėme privilegijuotuoju režimu, konstantai nereikia nurodyti jokių papildomų teisių. Žinoma, nebūtina taikyti šią techniką visais įmanomų ir neįsivaizduojamų situacijų atvejais. Atminkite, kad kompetentingas teisių išdėstymas yra raktas į ramybę. Naudokite triuką tik tada, kai tai tikrai būtina.

Byla numeris 2. Papildomas abstrakcijos lygis

Nežinau, kaip tinkamai pavadinti šį metodą, bet, mano nuomone, jis skamba būtent taip. Apsvarstykite ankstesnį pavyzdį. Mes vis dar turime tą patį nuolatinį „Galimybę išsaugoti duomenis“. Dirbame su juo naudodami to paties pavadinimo funkcinę parinktį kaip ir įvynioklis.

Dabar įsivaizduokite, kad norėjome atsikratyti konstantos ir pereiti prie žinyno. Tipiškas tokios problemos sprendimo scenarijus (jei naudojame tik konstantą) būtų paleisti visuotinės paieškos įrankį, kad būtų galima rasti nuorodą į konstantą. Leiskite jums priminti, kad jei nenaudojame funkcinės parinkties kaip įvyniojimo, turime remtis tokia konstanta:

Constants.DataSaveAbility.Get();

Surandame visus skambučius ir pakeičiame keliu į naują saugojimo objektą. Sutikite, tai gana nepatogu. Jei naudojome ankstesnį atvejį (naudodami funkcinę parinktį kaip įvyniojimą), tada norint „perkelti“ tereikia eiti į funkcinės parinkties ypatybes ir pakeisti savybę "Saugykla". Pavyzdžiui, įdėti ten "Katalogas" arba „Informacijos registras“. Nereikia jokių žaidimų su pasauline paieška. Kodas, skirtas pasiekti konstantos vertę naudojant funkcijos parinktį, išliks toks pat:

GetFunctionOption ("DataSavePossibility");

Funkcijų parinktys yra metaduomenų objektas, esantis grupėje „Bendra“:

Funkcinės parinktys yra funkcinių parinkčių mechanizmo dalis, leidžianti įjungti arba išjungti kai kurias programos sprendimo funkcijas, atsižvelgiant į vartotojo poreikius, nekeičiant pačios konfigūracijos.
Pavyzdžiui, ne kiekviena organizacija gali naudoti atsargų kontrolę. Jei sandėlio apskaita nenaudojama, tuomet tikslinga pašalinti sandėlio lauką visuose dokumentuose, kataloguose ir registruose – tuomet mums į pagalbą ateina funkcinės galimybės.

Pažiūrėkime į pavyzdį:

Sukurkime funkcinę parinktį " Sandėlio apskaita".
Saugykla: nurodytas laukas, kuriame saugoma reikšmė.
Galite pasirinkti konstantą, katalogo atributą arba informacijos registro išteklius.
Mes naudosime konstantą.

Sukurkime konstantą“ Laikyti apskaitą sandėliuose" ir pasirinkite jį saugojimo lauke. Ši konstanta bus atsakinga už funkcinės parinkties įjungimą ir išjungimą. Pažymėkite langelį "Privilegijuotas režimas gavimo metu". Šis žymimasis laukelis reiškia, kad funkcinės parinkties reikšmės bus gautos privilegijuotuoju režimu :

Mes atnaujiname, paleidžiame 1C Enterprise. Nustatykite konstantos reikšmę = True:

Dėl to turime:

Nustatę konstantą = False, gauname:

Turite klausimų, ar jums reikia konsultanto pagalbos?

Taigi, sukūrėme funkcinę parinktį, kuri tvarko DirectoryLink.Warehouse tipo laukus

Dabar pažiūrėkime į funkcijų parinkčių parametrų naudojimo pavyzdį.
Pridėkime naują funkcinę parinktį " Valiutų apskaita"
Saugykla: Katalogas.Organizacija.Rekvizitai.Valiutų apskaita


Prie kompozicijos pridėkime dokumento "Nustatyti prekių kainas" duomenis - "Valiuta"


Dokumento forma procedūrose „On CreationAtServer“ ir „OrganizationOnChange“
Pridėkime šį kodą:

Atnaujinkite konfigūraciją ir paleiskite ją.
Sukuriame dvi organizacijas ir vienai iš jų pažymime langelį „Valiutų apskaita“

Ką mes gauname dėl to? Pasinaudojus funkcinės parinkties parametrais, jūs ir aš gavome parametrinį lauko "Valiuta" valdymą dokumente "Nustatyti prekių kainas". Tie. Alfa organizacijai bus rodomas laukas Valiuta, o beta versijos organizacijai laukas Valiuta nebus rodomas.
Įsitikinkime tuo. Atidarykite dokumentą ir pabandykite pakeisti lauką „Organizacija“.
Nustatant org="alpha" rodoma valiuta; pakeisti į „Beta“ – valiuta pašalinama



1. Prieigos teisės.

Tiesą sakant, viskas yra labai paprasta. 1C pagal numatytuosius nustatymus viskas, kas neleistina, yra draudžiama. Yra tik vienas subjektas, atsakingas už prieigą bet kokiai funkcijai ar duomenims. Šis subjektas vadinamas „Priėjimo teisė“. Ji yra vienintelis elementas, atsakingas už prieigą prie konkretaus veikimo režimo, katalogo, atributo....

Prieigos teisių tipų skaičių iš anksto nustato platforma. Visa platforma turi dvi pagrindines prieigos teisių grupes. Bendra visai sistemai prieigos prie platformos mechanizmų teisės, atsakingas už prieigą prie tam tikrų platformos darbo režimų (Administravimas, Išskirtinis režimas, Plonas klientas, Interaktyvus išorinių ataskaitų atidarymas....). Ir objekto leidimai, leidžiantis dirbti su įvairiais konfigūracijos objektais. Jų skaičius priklauso nuo konfigūracijos objekto tipo. Pavyzdžiui, katalogas turi 16 skirtingų prieigos tipų (skaityti, pridėti, keisti, ištrinti...). Informacijos registre yra tik penki prieigos tipai. Visos šios teisės gali būti nustatytos tik viso katalogo lygiu. Taip pat galite apriboti prieigą atributo lygiu. Tačiau šiuo atveju galimos tik dalis teisių tipų (katalogams tai yra peržiūros ir redagavimo teisės).

Visos prieigos teisės yra tarpusavyje susijusios ir priklauso viena nuo kitos. Yra aukštesni ir žemesni lygiai. Negalite suteikti žemesnio lygio teisės, jei vartotojas neturi teisės atlikti aukštesnio lygio veiksmų.

Apsvarstykite prieigos prie katalogų teisės.Šioje diagramoje matote, kad dauguma teisių yra bendresnių teisių patobulinimai. Jei „Right1“ yra visiškai diagramoje kito „Right2“ stačiakampio viduje, tada „Right1“ negalima išduoti neišdavus „Right2“. Dažniausia teisė yra „Skaityti“. Jei teisės „Skaityti“ nėra, visos kitos teisės nepasiekiamos. Jei Pridėti teisės negalima, interaktyvios pridėjimo teisės nustatyti negalima. Tačiau teisių sistemos negalima pavadinti visaverte hierarchija. Pavyzdžiui, teisė „Redaguoti“ gali būti suteikta tik tuo atveju, jei turite teises „Peržiūrėti“ ir „Keisti“. Bet galima duoti „View“ be „Change“ arba „Change“ be „View“.

Prieigos teisė yra mažiausias prieigos vienetas. Visa prieigos kontrolė priklauso nuo tinkamo teisių rinkinio vartotojui suteikimo. Likę objektai (vaidmenys, prieigos grupės) yra tik papildomas įrišimas, skirtas grupuoti ir patogiau išduoti prieigos teises.

2. Vaidmenys – prieigos teisių suteikimo mechanizmas

Pažiūrėkime, kaip tai veikia suteikiant vartotojui prieigos teises. Kad būtų patogiau išduoti prieigos teises 1C platformoje, specialus „Roly“ mechanizmas. Tai sluoksnis tarp informacijos bazės vartotojų ir prieigos teisių. Kiekvienas vaidmuo sujungia prieigos teisių rinkinį, kurio priskyrimas prasmingas tik tuo pačiu metu. Pavyzdžiui, atliekant vaidmenį „Skaityti kontaktinę informaciją“, logiška derinti teisių, atsakingų už susijusius katalogus, rinkinius su kontaktine informacija. Dauguma paprastu būdu vaidmens nustatymas vartotojui yra atidarykite IB vartotojo kortelę konfigūratoriuje ir pažymėkite langelius prie vartotojui reikalingų vaidmenų. Tai universalus būdas ir veikia bet kokioje konfigūracijoje. Tačiau sudėtingėjant konfigūracijoms ir didėjant vaidmenų skaičiui, tai tapo gana varginanti. Todėl dabartiniuose standartiniuose sprendimuose yra papildomas sluoksnis tarp informacijos saugumo vartotojo ir vaidmenų. Šis sluoksnis įgyvendinamas formoje posistemis „Prieigos kontrolė“. Tai leidžia sujungti vaidmenis į didesnius subjektus – „Profilius“ ir nebepriskirti vartotojo individualūs vaidmenys, bet profiliai, kuriuose yra kelių vaidmenų rinkiniai.

Apsvarstykite prieigos teisių priskyrimo vartotojams schemą, naudojamą įprastose konfigūracijose. Supaprastinta forma jis gali būti pavaizduotas taip. Įvedami nauji subjektai "Prieigos profilis" ir „Prieigos grupė“. Kiekvienas prieigos profilis turi keletą vaidmenų. Ir kiekvienam vartotojui priskiriama viena ar daugiau prieigos grupių. Tada kiekviena prieigos grupė susieta su prieigos profiliu. Dėl to gauname galimybę vartotojui nurodyti ne tik vaidmenis, bet vaidmenų rinkinius, priklausomai nuo jo atliekamų funkcijų.

Techniniu požiūriu ši teisių išdavimo sistema įgyvendinama dalyvaujant dviem standartiniams posistemiams. „Prieigos valdymo“ posistemis naudojamas prieigos grupių susiejimui su konfigūracijoje iš anksto nustatytais vaidmenimis konfigūruoti. „Vartotojų“ posistemis naudojamas sąsajoms tarp IS vartotojų ir konfigūracijos prieigos grupių nustatyti.

3. „Leidimų logika“ kaip vaidmenų susikirtimo taisyklė.

Svarbu suprasti, kad 1C yra bendra prieigos valdymo logika leidimo logika. 1C platformoje apskritai nėra jokių prieigos apribojimų. Yra tik mechanizmai išduodančios prieigą. Pagal numatytuosius nustatymus prieiga prie visų duomenų uždrausta ir prieigos nustatymas yra suteikti kiekvienam vartotojui reikiamas teises. Tai reiškia, kad jei koks nors vaidmuo suteikia vartotojui teisę peržiūrėti „Prekių pardavimo“ dokumentus, tada niekaip negalima atimti šios teisės kitus vaidmenis ar bet kokią kitą platformą ir konfigūravimo mechanizmus. Iš pradžių galite suteikti ne visą prieigą prie katalogo, bet filtruoti duomenis, prie kurių suteikiame prieigą, naudodami RLS. Bet jei prieiga jau suteikta, tada jos nebegali atimti kiti vaidmenys.

Štai kodėl, ribojant vartotojo prieigą prie katalogo vaidmenimis, labai svarbu patikrinti, ar vartotojui nėra priskirtas joks kitas vaidmuo tam pačiam katalogui. Priešingu atveju pirmasis vaidmuo suteiks reikiamą prieigą, o antrasis negali paneigti.

Platforma turi galimybę suteikti vartotojui papildomų teisių tam tikros operacijos laikotarpiui. Ši funkcija vadinama „Privilegijuotuoju režimu“. Tai leidžia vartotojui atlikti veiksmus su duomenimis, kurie jam nėra prieinami. Tačiau platformoje nėra galimybės net laikinai sumažinti vartotojo teises.

4. Netiesioginė prieigos kontrolė.

Yra atskiri mechanizmai, kurie, nors ir nėra tiesiogiai skirti prieigos kontrolei, netiesiogiai ją veikia ir gali būti naudojami papildomiems apribojimams. Pažvelkime į pagrindines jų savybes.

4.1. funkcinės galimybės.

Prieigos kontrolės sistema kartais vadinama mechanizmu funkcinės galimybės. Tai nėra visiškai tiesa, nes funkcinės parinktys neturi jokios įtakos prieigai prie duomenų. Tai grynai sąsajos mechanizmas, sukurta siekiant supaprastinti vartotojo sąsają. Jis pasirodė 8.2 platformoje dėl konfigūravimo funkcijų sudėtingumo. Numatytos funkcinės parinktys pasislėpti nuo sąsajos funkcionalumą, kuris nenaudojamas šioje konkrečioje įmonėje ar šiame konkrečiame naudotoje. Mechanizmas veikia tik duomenų rodymą. Komandos dingsta iš sąsajos, o detalės, kurios yra išjungtos dėl funkcinių parinkčių, yra paslėptos formose. Kuriame vartotojas turi prieigą prie visų šių komandų ir detalių. Jis gali dirbti su paslėptais duomenimis programiškai, naudodamas apdorojimą be jokių problemų.

Galite perskaityti daugiau apie darbą su funkcinėmis parinktimis ITS

4.2. RLS (rekordinio lygio sauga)

Visi aukščiau išvardyti mechanizmai turi įtakos prieigos prie objektų suteikimui apskritai. Į žinynus, dokumentus, žinynų duomenis. Prieigos teisės turi įtakos prieigai prie objektų, funkcinės parinktys – objektų atvaizdavimui sąsajoje. Dažnai yra užduotis leisti vartotojui pasiekti katalogo ar dokumento duomenis. Bet ne visiems duomenims, o tik kai kuriems iš jų. Pavyzdžiui, leisti pasiekti įgyvendinimo dokumentus tik vienai organizacijai.

Yra papildomas šio leidimo nustatymo mechanizmas. RLS (rekordinio lygio sauga). Kaip rodo pavadinimas, šis prieigos kontrolės mechanizmas yra konkrečių lentelės įrašų lygyje. Jei prieigos teisės suteikia prieigą prie lentelių visumos (katalogas) arba lentelių stulpelių (detalių), RLS apibrėžia konkrečias lentelių (įrašų) eilutes, su kuriomis vartotojui leidžiama dirbti. Tai leidžia apibrėžti duomenis, kurie yra prieinami vartotojui.

Analizuojant šį mechanizmą visada verta tai prisiminti RLS nėra prieigos uždraudimo mechanizmas. Jis yra mechanizmas prieigos išdavimo filtravimas. Tie. RLS neturi įtakos vartotojo teisėms, tai filtras, ribojantis teisių išdavimą. RLS turi įtakos tik tam konkrečiam ryšiui „Vaidmuo“ – „Prieigos teisė“, kuriame jis užregistruotas. Ir neturi įtakos kitų vaidmenų suteikiamoms prieigos teisėms. Pavyzdžiui, jei vienas vaidmuo leidžia pasiekti dokumentus tik organizacijai1, o kitas vaidmuo suteikia prieigą prie dokumentų Sandėliui1, tai vartotojas turės prieigą prie visų dokumentų, kuriuose nurodyta Organizacija1 ARBA Sandėlis1. Todėl, jei vartotojui priskiriami keli vaidmenys, tada filtras naudojant RLS turi būti nustatytas kiekviename vaidmenyje abiem sritims (pagal organizaciją ir sandėlį). Tipiniuose sprendimuose ši užduotis dažniausiai išsprendžiama sukuriant vieną vaidmenį, kuriame registruojami visi galimi RLS filtrai. Tada šis vaidmuo priskiriamas visiems vartotojams, dirbantiems su šiais katalogais. Ji taip pat kontroliuoja, kad vartotojas neturėtų prieigos prie kitų vaidmenų, turinčių teisę pasiekti apribotus dokumentus.

Taip pat verta paminėti, kad RLS filtrai gali būti taikomi ne visiems galimiems duomenų prieigos tipams, o tik aukščiausio lygio prieigos tipai. Pavyzdžiui, katalogams iš šešiolikos galimų prieigos tipų RLS filtrai gali būti taikomi tik keturiems pagrindiniams: skaitymui, keitimui, įtraukimui ir trynimui. Tai reiškia, kad, pavyzdžiui, negalime suteikti vartotojui teisės „Keisti“ be filtro, kad būtų galima programiškai dirbti su bet kokiais dokumentais, ir teisės „Redaguoti“ su RLS filtru, kad būtų galima organizuoti interaktyvų darbą tuo pačiu metu. Jei norime, kad vartotojas galėtų redaguoti dokumentus naudodamas RLS filtrą, turime taikyti bendrą filtrą viršutiniame lygyje „Keisti“ arba „Skaityti“.

Atsižvelgiant į bendrą mechanizmų sudėtingumą, paprastai gana sunku išsiaiškinti, kas tiksliai yra prieinama konkrečiam tipinės konfigūracijos vartotojui. Norint patikrinti suteiktas teises tipinėse konfigūracijose, yra labai patogi ataskaita, kuri vadinama "Leidimai". Ji analizuoja visas vartotojui suteiktas teises ir pateikia galutinį visų prieigos grupių išduotų teisių sąrašą, atsižvelgdama į RLS filtrus.

4.3. Duomenų atskyrimas.

Kitas mechanizmas, turintis įtakos duomenų prieigai, yra dalijimasis duomenimis. Šis mechanizmas skirtas naudoti viename fizinę bazę kelių nepriklausomų duomenų bazių, turinčių bendrą konfigūraciją, duomenis ir bendrieji katalogai. Kai kuriais labai ribotais atvejais šis mechanizmas gali būti laikomas prieigos kontrole. Kai jis įjungtas, kiekvienas vartotojas gali dirbti tik vienoje iš savo nepriklausomų duomenų bazių, bet tuo pat metu naudoti bendrus duomenis.

Tam tikra prasme šis mechanizmas taip pat gali būti laikomas duomenų filtru ir ypatingu RLS diegimo atveju. Skirtingai nuo RLS, atskyrimas yra daug griežtesnis mechanizmas. Dėl šio nelankstumo kūrėjai turi techninę galimybę naudoti papildomus indeksus, kad toks filtravimas būtų atliktas be sulėtėjimo, būdingo RLS.

Tiesą sakant RLS yra tik papildomos priemonės, automatiškai pridedama prie kiekvienos duomenų bazės užklausos. Duomenų padalijimas yra skyriklio pridėjimasį visas skaidytas lenteles ir jų indeksus, įskaitant sugrupuotą. Duomenys grupuojami skyriklio kontekste, t.y. fiziškai perskirstytas diskeį atskiras grupes kiekvienai skyriklio reikšmei. Dėl šios priežasties kiekvienas vartotojas dirba tik su savo duomenimis, o serveriui nereikia fiziškai nuskaityti visos lentelės su kiekviena užklausa. Pakanka peržiūrėti tik dabartinio skaidinio duomenų sritį.

Tačiau kaip tik dėl tokio fizinio duomenų perskirstymo, kai dirba pilnavertis vartotojas, neturintis filtro pagal skiriamąsias reikšmes, visos užklausos vyksta labai labai lėtai. Be skiriamosios reikšmės neįmanoma visiškai naudoti indeksų, todėl duomenų kiekis fiziškai nuskaitomas iš disko ir apdorojamas pagal kiekvieną užklausą užsakymų augimas. Atitinkamai, iš tikrųjų atskyrimas prasmingas tik tuo atveju, jei visi nuolat duomenų bazėje dirbantys vartotojai dirbs tik savo srityje.

4.4. Programos kodas.

Galbūt universaliausias būdas nustatyti papildomus apribojimus yra programavimo kodas. Jie gali paveikti bet kokius platformos mechanizmus. Pavyzdžiui, norėdamas apriboti prieigą prie dokumentų, kūrėjas gali pridėti filtrą į dokumentų sąrašo formą, į pasirinkimo formą ir gali programiškai patikrinti galimybę peržiūrėti dokumento duomenis atidarydamas konkretų dokumento formą. Kūrėjas savo ataskaitose gali taikyti filtrą pasirinkdamas duomenis.

Tačiau programos kodas jokiu būdu negalima apriboti teisių kaip visumos konfigūruojant. Daugiausia, ką kūrėjas gali padaryti, tai nustatyti apribojimus į konkrečius individualius duomenų gavimo mechanizmus. Dėl to, kad 1C darbui su duomenimis naudoja objekto modelį, Programos kodas gali būti garantuotas, kad apsaugotų duomenis nuo pakeitimų, pridedant būtinus patikrinimus prie objekto modulio. Tačiau kūrėjas negali visiškai garantuoti, kad vartotojas tikrai negalės gauti informacijos apie kitų žmonių įgyvendinimo dokumentus kitomis ataskaitomis ar apdorojimu.

Šis principas naudojamas, pvz. Prisijungdamas prie konfigūracijos, plėtinys prideda vartotojo apribojimus ir tikrina visus katalogus ir dokumentus. Jis filtruoja duomenis, rodomus vartotojams sąrašuose, tikrina prieigą peržiūrint ar keičiant duomenis. Užtikrina, kad negalima pakeisti draudžiamų duomenų. Tačiau jis negali filtruoti duomenų ataskaitose ar užklausose.

Visada yra galimybių gauti draudžiamus duomenis pateikus užklausą, tvarkant juos pačiam arba pranešant. Ar galima labai griežtai apriboti vartotojo naudojamų konfigūravimo funkcijų sąrašą ir pridėti atskirą filtrą prie kiekvieno vartotojui leidžiamo mechanizmo (formos, apdorojimo, ataskaitos, užklausos).

4.5. Pasirinkimų palyginimas.

Pabandykime trumpai palyginti svarstomus papildomo duomenų apribojimo variantus.

Kaip jį įjungti

Kas nutiks

Funkcinės parinktys- sąsajos mechanizmas funkcionalumui paslėpti

1. Pridėkite funkcinės parinkties saugojimo vietą: konstantą, žinyno atributą arba informacijos registro šaltinį.
2. Prie konfigūracijos pridėkite funkcinę parinktį ir nurodykite joje anksčiau sukurtą saugojimo vietą.
3. Funkcinės parinkties savybėse nurodykite jos sudėtį, pažymėkite visus konfigūracijos objektus, kurie nuo to priklausys.
4. Įgalinkite funkcinės parinkties naudojimą įmonės režimu.

1. Visi objektai, įtraukti į funkcinę parinktį, nebebus rodomi komandų sąsajoje.
2. Formose ir ataskaitose išnyks visi parinkties paslėpti laukai.

RLS (rekordinio lygio sauga)- papildomi leidžiamų vaidmenų teisių filtrai

1. Užregistruokite RLS filtrus kiekviename vartotojo vaidmenyje kiekvienai teisei, kurią reikia apriboti.

Pastaba: Įmonės režimu nereikia atlikti jokių veiksmų. Filtrai bus taikomi automatiškai.

1. Sukonfigūruotas filtras bus pridėtas prie kiekvienos IB užklausos.
2. Duomenų, kurie netelpa RLS filtro, jokiu būdu negalima gauti: jie nebus rodomi formose, ataskaitose; nebus pasirinktas pagal jokias užklausas.

Duomenų atskyrimas- priežiūra vienoje fizinėje kelių nepriklausomų duomenų bazėje

1. Prie konfigūracijos pridėkite bendrą atributą, kuris nustato bendrinamų duomenų sudėtį.

2. Prideda du seanso parametrus: naudojimo vėliavėlę ir dabartinę duomenų padalijimo reikšmę.

3. Pridėkite programos kodą, kad įgalintumėte duomenų atskyrimą, ir įveskite esamą skirtuko reikšmę.

1. Iš karto pridėjus duomenų skaidymo galimybę prie konfigūracijos, lentelės, kurioms buvo pridėta skaidymo galimybė, bus fiziškai perkurtos.

  • Skirtiklio reikšmei išsaugoti bus pridėtas laukas „Skyriklis“.
  • Visi lentelių indeksai bus atkurti. Atskyriklio laukas bus pridėtas prie jų kaip pirmasis laukas.

2. Įjungus atskyrimą.

  • Absoliučiai visos užklausos IS bus filtruojamos pagal skyriklio reikšmę.
  • Rašant bet kokius duomenis, separatoriaus reikšmė bus automatiškai užpildoma pagal seanso parametro reikšmę.
Programos kodas- bet kokie papildomi taškų apribojimai
1. Pridėkite perdangos kodą būtini apribojimaiį konfigūraciją.

1. Darys tiksliai tai, kas parašyta.

Pastaba: kodas neturi įtakos visai konfigūracijai, o tik konkrečiam mechanizmui, kuriam parašytas veiksmas

5. Rezultatai.

Kiekvienas apribojimų nustatymo būdas turi savo privalumų ir trūkumų. Technologiniu požiūriu teisingiausias būdas yra kompetentingas pasiskirstymas į vaidmenis. Norint filtruoti turimus duomenis, patikimiausias būdas yra naudoti RLS. Būtent šiai užduočiai skirtas mechanizmas. Taškų apribojimus lengviausia įgyvendinti naudojant kodą. Funkcinės parinktys ir dalijimasis duomenimis yra gana specifiniai mechanizmai, kuriais nesiekiama apriboti prieigos. Nors kai kuriais atvejais jie gali būti naudojami tam.

Funkcinės parinktys ir Funkcijos parinkties parametras- tai 1C 8.3 (8.2) konfigūracijos objektai, kurie kartu atspindi funkcinių parinkčių mechanizmą. Funkcinių parinkčių mechanizmas yra funkcinis, leidžiantis apibrėžti naudotojams reikalingų funkcijų rinkinį.

Paprasčiau tariant, funkcinių parinkčių mechanizmas yra įjungimo / išjungimo jungiklis įvairioms konfigūracijos funkcijoms.

Kodėl reikia išjungti funkcionalumą?

Gaukite 267 1C vaizdo pamokas nemokamai:

Dažnai papildomas funkcionalumas gali apsunkinti darbuotojų darbą. Banalus 1C funkcinių parinkčių naudojimo pavyzdys yra tas, kad duomenų bazėje saugomi vienos organizacijos ar sandėlio įrašai, kodėl tada įpareigoti vartotoją šiuos duomenis pildyti visuose dokumentuose?

Ką valdo funkcinės parinktys?

Visų pirma, funkcinių parinkčių naudojimas patogiausiai atsispindi sąsajoje: formos detalės, komandų formos, bendra sąsaja – visa tai galima susieti su funkcinėmis parinktimis. Atsižvelgdami į funkcinių parinkčių reikšmę, galite apriboti duomenų išvestį ataskaitoje pagal .

1c objektas „Funkcinės parinktys“ - skirtas pabrėžti programos sprendimo funkcionalumą, kurį galima įjungti (išjungti) diegimo metu nekeičiant savęs (kartu su posistemiais jie sudaro 1C plonojo kliento sąsają). Jie yra funkcinių parinkčių mechanizmo dalis.

Funkcijų parinkčių mechanizmas apima du metaduomenų objektus:

  1. Funkcinis variantas;
  2. Funkcinių parinkčių parametrai.

Daugiau

Funkcijos parinktis yra metaduomenų objektas, galintis tiesiogiai paveikti programos sąsajos sudėtį (jei funkcinė parinktis išsaugo savo vertę Būlio atribute). Naudodami tokio tipo objektus galite paslėpti elementus, susijusius su neprieinamomis funkcijomis. Pavyzdžiui, pasirinkus Valiutos apskaitą, ataskaitose galima paslėpti stulpelį Valiutos, lauką Valiuta nuo, stulpelį Valiutos suma.

Funkcinės parinkties vertės šaltinis yra metaduomenų objektas, pasirinktas kaip nuosavybė Storage , pavyzdžiui, tai gali būti .

Jei funkcinės parinkties reikšmė saugoma katalogo atribute arba išteklyje, reikalinga papildoma informacija, nurodanti, kaip tiksliai pasirinkti parinkties reikšmę. Tam skirtas atskiras metaduomenų objektas − Funkcijų parinktys Parametrai.

Galima sakyti, kad funkcinių parinkčių parametrai yra funkcinių parinkčių reikšmių erdvės koordinačių ašys. Be to, vienas funkcinių parinkčių parametras gali vienu metu nustatyti „savo“ koordinačių ašies reikšmę daugeliui funkcinių parinkčių.

[slėpti]

Funkcinės parinktys gali turėti įtakos:

  1. į vartotojo sąsają:
    • pasaulinis ;
    • rekvizitai (įskaitant tokios formos rekvizitų stulpelius kaip Vertybių lentelė arba vertės medis);
    • formuoti komandas;
  2. apie ataskaitas, įdiegtas naudojant duomenų komponavimo sistemą;
  3. į integruotąja kalba parašytus algoritmus - iš integruotos kalbos galima gauti funkcinių parinkčių reikšmes ir jas naudoti įvairiomis sąlygomis, pavyzdžiui, norint sumažinti skaičiavimų kiekį (žr., pvz. ).

DĖMESIO! Jei kliento aplikacija veikia su infobazės failo versija per žiniatinklio serverį, tai pakeitus funkcinę parinktį vartotojo sąsaja bus pakeista tik iš naujo paleidus žiniatinklio serverį (paleidus kliento programą vartotojo sąsaja nepasikeis).

1C funkcinių parinkčių savybės

  • Saugykla – laukas, kuriame reikia pasirinkti loginio tipo objektą. Paprastai naudojamos konstantos.
  • gavus - vėliavėlė yra atsakinga už galimybę gauti funkcinės parinkties vertę privilegijuotuoju režimu.
  • Kompozicija - objektų ir objektų atributų sąrašas, kurio matomumas įjungiamas / išjungiamas, kai išjungiama / išjungiama funkcinė parinktis (valdoma naudojant valdomą formą).

Pavyzdžiui, priklausomai nuo konkretaus įgyvendinimo sąlygų, galite numatyti prekių apskaitos pagal sandėlius išjungimą, kad registruojant prekių gavimo dokumentus laukelis Sandėlis nebūtų rodomas dokumento formoje.

1C funkcinių parinkčių naudojimo ypatybės:

  1. Funkcijų parinktys gali turėti savavališko tipo reikšmes (nebūtinai Būlio).
  2. Pridėdami naują konstantą, kad galėtumėte naudoti funkcinę parinktį, būtinai įtraukite ją į atitinkamą posistemį ir priskirkite jam teises.
  3. Darbas su funkcinėmis parinktimis galimas naudojant integruotą kalbą, kurios dėka kūrėjas gali sukurti savo funkcinių parinkčių verčių algoritmus.
  4. Komandų sąsajos komanda bus pašalinta iš komandų sąsajos, jei funkcijos parinktis išjungta:
    • atributas, kuris yra komandos parametras;
    • komandos parametro tipas (jei komandos parametro tipas yra sudėtinis, tada komanda tampa nepasiekiama, kai išjungiami visi parametrų tipai).

DĖMESIO! Funkcinės parinktys ir jų parametrai neturi įtakos duomenų bazės sudėčiai: visos lentelės ir laukai yra duomenų bazėje, nepriklausomai nuo funkcinių parinkčių būklės.

Funkcinių parinkčių įtaka formos detalėms ir komandoms:

  1. valdomos formos tipas<Вид>Objektas ( DirectoryObject, DocumentObject ir kt.) bus išjungtas, jei atitinkamas objektas bus išjungtas naudojant funkcinę parinktį. Nagrinėjamos tik tos funkcinės parinktys, kurios neturi parametrų.
  2. Pagrindinis tipo valdomos formos atributas Dinaminis sąrašas bus išjungtas, jei funkcinė parinktis išjungs konfigūracijos objektą, kuris nurodytas kaip pagrindinė dinaminio sąrašo lentelė. Nagrinėjamos tik tos funkcinės parinktys, kurios neturi parametrų.
  3. Nuorodos tipo formos atributas yra išjungtas, jei konfigūracijos objektas, sudarantis tą tipą, yra išjungtas funkcinės parinkties. Sudėtinio tipo formos atributas išjungtas, jei funkcinės parinktys išjungia visus komponentų tipus.
  4. Formos lentelė bus išjungta, jei joje bus rodomi funkcinės parinkties išjungto formos atributo duomenys.
  5. Tipo pasirinkimo dialogo lange nėra tipų (pavyzdžiui, įvesties laukams, susietiems su sudėtinio tipo atributais), jei šiuos tipus sudarantys konfigūracijos objektai yra išjungti dėl funkcinės parinkties. Informacija apie tipus, išjungtus dėl funkcinių parinkčių, talpinama kliento pusėje ir išvaloma po 20 minučių arba metodo iškvietimo metu Atnaujinimo sąsaja ().

DĖMESIO! Skirtingai nuo komandų sąsajos, funkcinių parinkčių parametrų reikšmės nustatomos tik konkrečiam formos egzemplioriui.

Funkcinių parinkčių parametro kūrimas

Funkcinės parinkties parametras sukuriamas naudojant 1C konfigūracijos objektą „Funkcinių parinkčių parametrai“.

[slėpti]

Tai galima padaryti konfigūracijos lange pridedant naują objektą.

Funkcijos parinktys Parametrų ypatybės:

  • Naudojimas – nustato objektų rinkinį, kurio reikšmės nulems, kaip turi būti pasirinkta funkcinės parinkties reikšmė. Turimų objektų sąraše yra žodynai ir informacijos registro matmenys. Kiekvienam šio sąrašo funkcinių parinkčių parametrui galite pasirinkti vieną katalogą (iš viso katalogų sąrašo) ir vieną kiekvieno informacijos registro dimensiją.

DĖMESIO! Negalite naudoti to paties metaduomenų objekto daugiau nei viename funkcijos parinkties parametre.

Jus taip pat sudomins:

Tarnybinis butas – nuosavas būstas ar svetima gyvenamoji erdvė?
MASKVA, spalio 2 d. – RIA Novosti, Marina Malkova. Vyresnioji rusų karta dar prisimena, kaip...
Mėnesio pabaiga: įrašai ir pavyzdžiai
Pagrindiniai principai ir būtinybė uždaryti sąskaitas 1 pastaba Pabaigoje...
Jūsų banko kortelė užblokuota
Kas norėtų vieną dieną sužinoti, kad jo banko kortelė buvo užblokuota ir nėra prieigos...
Būsimų išlaidų rezervų apskaita Debetas 25 kreditas 96
Buhalterinės apskaitos 96 sąskaita yra pasyvi sąskaita Rezervuoja būsimoms išlaidoms, skirta ...
Gamybos operacijų apskaita
Nustatant pagamintų produktų (paslaugų ar darbų) savikainą, svarbų vaidmenį atlieka ...