1c funkcionalne mogućnosti što. Funkcionalne opcije (1Cv82). Sustav sastavljanja podataka

17.12.2021 Hipertenzija

Funkcionalne mogućnosti I Parametar funkcionalne opcije- to su konfiguracijski objekti 1C 8.3 (8.2), koji zajedno predstavljaju mehanizam za funkcionalne opcije. Mehanizam funkcionalnih opcija je funkcionalnost koja vam omogućuje određivanje skupa funkcionalnosti koje korisnici trebaju.

Jednostavno rečeno, mehanizam funkcionalnih opcija je prekidač za uključivanje/isključivanje raznih funkcija u konfiguraciji.

Zašto možda trebate onemogućiti funkcionalnost?

Besplatno nabavite 267 video lekcija o 1C:

Često dodatna funkcionalnost može zakomplicirati rad zaposlenika. Trivijalan primjer korištenja funkcionalnih opcija u 1C - baza podataka vodi evidenciju za jednu organizaciju ili skladište, zašto onda obvezivati ​​korisnika da ispuni te podatke u svim dokumentima?

Što kontroliraju funkcionalne opcije?

Prije svega, korištenje funkcionalnih opcija najprikladnije se odražava u sučelju: detalji obrasca, obrasci naredbi, opće sučelje - sve se to može povezati s funkcionalnim opcijama. Ovisno o vrijednosti funkcionalnih opcija, možete ograničiti prikaz podataka u izvješću izgrađenom na temelju .

1. Prava pristupa.

Zapravo je vrlo jednostavno. U 1C prema zadanim postavkama zabranjeno je sve što nije dopušteno. Jesti samo jedan subjekt odgovoran za pristup korisnik na bilo koju funkcionalnost ili podatke. Ovaj entitet se zove "Pravo pristupa". Ona je jedinac element odgovoran za pristup određenom načinu rada, imeniku, detaljima....

Broj vrsta prava pristupa unaprijed je određen platformom. Ukupno, platforma ima dvije glavne skupine prava pristupa. Zajedničko za cijeli sustav prava pristupa mehanizmima platforme, zadužen za pristup određenim načinima rada platforme (Administracija, Ekskluzivni način rada, Tanki klijent, Interaktivno otvaranje vanjskih izvješća....). I dozvole objekta, što vam omogućuje rad s različitim konfiguracijskim objektima. Njihov broj ovisi o vrsti konfiguracijskog objekta. Na primjer, imenik ima 16 različitih vrsta pristupa (Čitanje, Dodaj, Promjena, Brisanje...). Postoji samo pet vrsta pristupa registru informacija. Sva ova prava mogu se postaviti samo na razini cijelog imenika. Također možete ograničiti pristup na razini vjerodajnice. Ali u ovom slučaju dostupan je samo dio vrsta prava (za imenike to su prava pregleda i uređivanja).

Sva su prava pristupa međusobno povezana i ovisna jedni o drugima. Postoje prava više i niže razine. Ne možete dodijeliti pravo niže razine ako korisnik nema pravo izvršiti radnju više razine.

Razmotrimo prava pristupa imeniku. Ovaj dijagram pokazuje da je većina prava pojašnjenje općenitijih prava. Ako je Right1 potpuno smješten na dijagramu unutar pravokutnika drugog Right2, tada se Right1 ne može izdati bez izdavanja Right2. Najčešće pravo je pravo "Čitaj". Ako pravo na čitanje nije dostupno, sva ostala prava nisu dostupna. Ako pravo "Dodaj" nije dostupno, tada se pravo "Interaktivno dodavanje" ne može postaviti. Međutim, sustav prava ne može se nazvati punopravnom hijerarhijom. Na primjer, pravo "uređivanja" može se dati samo ako imate prava "pregled" i "uređivanje". Ali možete dati "View" bez "Change" ili "Change" bez "View".

Pravo pristupa je minimalna jedinica pristupa. Sva kontrola pristupa svodi se na izdavanje korisniku potrebnog skupa prava. Preostali objekti (uloge, grupe pristupa) su samo dodatna vezanja koja služe za grupiranje i praktičnije izdavanje prava pristupa.

2. Uloge - mehanizam za dodjelu prava pristupa

Pogledajmo kako se to točno radi dodjeljivanje prava pristupa korisniku. Za praktičnost izdavanja prava pristupa u platformi 1C, poseban "Roli" mehanizam. To je sloj između korisnika baze podataka i prava pristupa. Svaka uloga kombinira skup prava pristupa čija dodjela ima smisla samo u isto vrijeme. Na primjer, u ulozi "Čitanje podataka o kontaktu", logično je kombinirati skupove prava odgovornih za povezane direktorije s podacima za kontakt. Većina na jednostavan način postavljanje uloge korisniku je otvaranje korisničke kartice informacijske sigurnosti u konfiguratoru i označavanje polja pored uloga koje korisnik treba. Ovo je univerzalna metoda i radi u bilo kojoj konfiguraciji. Međutim, s povećanjem složenosti konfiguracija i povećanjem broja uloga, postalo je prilično radno intenzivno. Stoga u trenutnim standardnim rješenjima postoji dodatni sloj između korisnika informacijske sigurnosti i uloga. Ovaj sloj implementiran je u obrazac Podsustav "Kontrola pristupa".. Omogućuje vam kombiniranje uloga u veće entitete - "Profile" i dodjeljivanje korisniku ne pojedinačnih uloga, već profila koji sadrže skupove od nekoliko uloga.

Razmotrimo shemu dodjele prava pristupa korisnicima koja se koristi u većini tipičnih konfiguracija. U pojednostavljenom obliku, može se predstaviti na sljedeći način. Uvode se novi entiteti "Pristup profilu" I "Pristupna grupa". Svaki pristupni profil uključuje nekoliko uloga. I svakom korisniku je dodijeljena jedna ili više pristupnih grupa. Svaka pristupna grupa je zatim povezana s pristupnim profilom. Kao rezultat toga, dobivamo priliku odrediti ne samo uloge za korisnika, već skupove uloga ovisno o funkcijama koje on obavlja.

S tehničkog gledišta, ovaj sustav za izdavanje prava implementiran je uz sudjelovanje dva standardna podsustava. Podsustav "Kontrola pristupa" služi za konfiguriranje povezivanja pristupnih grupa s ulogama unaprijed definiranim u konfiguraciji. Podsustav "Korisnici" služi za konfiguriranje veza između korisnika informacijske sigurnosti i konfiguracijskih pristupnih grupa.

3. “Logika dopuštenja” kao pravilo za presjek uloga.

Važno je razumjeti da je u 1C opća logika kontrole pristupa logika dopuštenja. U 1C platformi općenito nema mehanizama za zabranu pristupa. Postoje samo mehanizmi izdavanje pristupa. Prema zadanim postavkama, pristup svim podacima je odbijen, i postavljanje pristupa sastoji se od izdavanja svakom korisniku prava koja su mu potrebna. To znači da ako neka uloga daje korisniku pravo pregledavanja dokumenata “Prodaja robe”, tada to pravo se ne može oduzeti ni na koji način drugim ulogama ili bilo kojoj drugoj platformi i konfiguracijskim mehanizmima. U početku ne možete dati potpuni pristup imeniku, već filtrirati podatke kojima dajemo pristup pomoću RLS-a. Ali ako je pristup već odobren, onda ga druge uloge više ne mogu uzeti natrag.

Zato je pri ograničavanju korisničkog pristupa imeniku po ulogama vrlo važno provjeriti da korisniku nije dodijeljena neka druga uloga u istom imeniku. Inače će prva uloga dati potreban pristup, koji druga ne može uskratiti.

Platforma ima mogućnost dati korisniku dodatna prava tijekom izvođenja zasebne operacije. Ova se značajka naziva Privilegirani način rada. Omogućuje korisniku radnje nad podacima koji mu nisu dostupni. Međutim, platforma nema mogućnost čak ni privremenog smanjenja prava korisnika.

4. Neizravna kontrola pristupa.

Postoje zasebni mehanizmi koji, iako nisu izravno namijenjeni kontroli pristupa, na njega utječu neizravno i mogu se koristiti za dodatna ograničenja. Pogledajmo njihove glavne značajke.

4.1. Funkcionalne mogućnosti.

Sustav kontrole pristupa ponekad se naziva i mehanizam funkcionalne opcije. To nije sasvim točno, jer funkcionalne mogućnosti ni na koji način ne utječu na pristup podacima. Ovo je čisti mehanizam sučelja, dizajniran za pojednostavljenje sučelja za korisnika. Pojavio se u platformi 8.2 kao rezultat složenije konfiguracijske funkcionalnosti. Namijenjene su funkcionalne opcije sakriti od sučelja funkcionalnost koju ne koristi ova konkretna tvrtka ili ovaj određeni korisnik. Mehanizam utječe samo na prikaz podataka. Naredbe nestaju iz sučelja, a detalji onemogućeni funkcionalnim opcijama skriveni su na obrascima. Istovremeno korisnik i dalje ima pristup svim tim naredbama i detaljima. Može raditi sa skrivenim podacima programski koristeći obradu bez ikakvih problema.

Više o radu s funkcionalnim opcijama možete pročitati na ITS-u

4.2. RLS (Sigurnost na razini zapisa)

Svi gore navedeni mehanizmi utječu na pružanje pristupa objektima u cjelini. Na referentne knjige, dokumente, referentne detalje. Prava pristupa utječu na pristup objektima, funkcionalne opcije utječu na prikaz objekata u sučelju. Često se javlja zadatak dopuštanja korisniku pristupa podacima imenika ili dokumenta. Ali ne na sve podatke, već samo na njihov dio. Na primjer, dopustite pristup implementacijskim dokumentima za samo jednu organizaciju.

Postoji dodatni mehanizam za konfiguriranje ove rezolucije RLS (Sigurnost na razini zapisa). Kao što naziv sugerira, ovaj mehanizam kontrole pristupa je na razini specifičnih zapisa tablice. Ako prava pristupa omogućuju pristup tablicama u cjelini (direktorije) ili stupcima tablice (pojedinosti), tada RLS određuje određene retke tablice (zapise) s kojima korisnik smije raditi. Omogućuje vam određivanje podataka koji su dostupni korisniku.

Kada analizirate ovaj mehanizam, uvijek biste se toga trebali sjetiti RLS nije mehanizam za zabranu pristupa. On je mehanizam pristup izdavanje filtriranje. one. RLS ne utječe na prava korisnika; to je filter koji ograničava izdavanje prava. RLS utječe samo na određenu vezu "Uloga" - "Pravo pristupa" u kojoj je registriran. I ne utječe na prava pristupa dodijeljena drugim ulogama. Na primjer, ako jedna uloga dopušta pristup dokumentima samo za Organizaciju1, a druga uloga dopušta pristup dokumentima za Skladište1, tada će korisnik na kraju imati pristup svim dokumentima koji označavaju Organizaciju1 ILI Skladište1. Stoga, ako je korisniku dodijeljeno nekoliko uloga, onda filtar koji koristi RLS mora biti instaliran u svakoj ulozi za oba polja (po organizaciji i skladištu). U standardnim rješenjima ovaj se zadatak najčešće rješava kreiranjem jedne uloge u kojoj su registrirani svi mogući RLS filteri. Ta se uloga zatim dodjeljuje svim korisnicima koji rade s tim imenicima. Također se kontrolira da korisnik nema na raspolaganju druge uloge koje sadrže pravo pristupa ograničenim dokumentima.

Također je vrijedno napomenuti da se RLS filteri ne mogu primijeniti na sve. moguće vrste pristup podacima, ali samo na vrste pristupa najviše razine. Na primjer, za imenike, od šesnaest dostupnih vrsta pristupa, RLS filtri se mogu primijeniti samo na četiri glavna: čitanje, mijenjanje, dodavanje i brisanje. To znači da ne možemo, na primjer, korisniku istovremeno dati pravo "Uređivanje" bez filtra za mogućnost programskog rada s bilo kojim dokumentima i pravo "Uređivanje" s RLS filtrom prema organizaciji za interaktivni rad. Ako trebamo da korisnik može uređivati ​​dokumente s RLS filtrom, od nas se traži da nametnemo opći filtar na najvišoj razini "Uredi" ili "Čitaj".

S obzirom na ukupnu složenost mehanizama, obično je prilično teško dokučiti što je točno dostupno određenom korisniku tipične konfiguracije. Za provjeru dodijeljenih prava u tipičnim konfiguracijama postoji vrlo zgodno izvješće, koje se zove "Prava pristupa". Analizira sva prava dodijeljena korisniku i prikazuje konačni popis prava izdanih od strane svih pristupnih grupa, uzimajući u obzir RLS filtere.

4.3. Razdvajanje podataka.

Drugi mehanizam koji utječe na pristup podacima je odvajanje podataka. Ovaj je mehanizam dizajniran za održavanje nekoliko neovisnih baza podataka u jednoj fizičkoj bazi podataka koje imaju zajedničku konfiguraciju i zajedničke direktorije. U nekim vrlo ograničenim slučajevima ovaj se mehanizam može smatrati kontrolom pristupa. Kada je omogućeno, svaki korisnik može raditi samo u jednoj od svojih neovisnih baza podataka, ali koristiti zajedničke podatke.

U nekom općem smislu, ovaj se mehanizam također može smatrati filtrom podataka i posebnim slučajem implementacije RLS-a. Za razliku od RLS-a, odvajanje je mnogo rigidniji mehanizam. A zahvaljujući ovoj krutosti, programeri imaju tehničku mogućnost korištenja dodatnih indeksa za izvođenje takvog filtriranja bez inherentnih usporavanja RLS-a.

Zapravo RLS je samo dodatni izbor, automatski se dodaje svakom upitu baze podataka. Podjela podataka je dodavanje separatora u sve particionirane tablice i njihove indekse, uključujući onu klasteriranu. Podaci su grupirani prema separatoru, tj. fizički redistribuiran po disku u zasebne grupe za svaku vrijednost separatora. Zahvaljujući tome svaki korisnik radi samo sa svojim podacima, a poslužitelj ne treba fizički skenirati cijelu tablicu pri svakom zahtjevu. Dovoljno je vidjeti samo područje podataka trenutne particije.

Međutim, upravo zbog te fizičke preraspodjele podataka, kada radi kao puni korisnik koji nema filter na temelju vrijednosti separatora, svi upiti se izvršavaju jako, jako sporo. Bez vrijednosti separatora nemoguće je u potpunosti koristiti indekse, tako da količina podataka fizički pročitanih s diska i obrađenih sa svakim zahtjevom može povećati za redove veličine. Sukladno tome, u stvarnosti razdvajanje ima smisla samo ako će svi korisnici koji stalno rade u bazi raditi samo unutar svog područja.

4.4. Programski kod.

Možda je najuniverzalniji način postavljanja dodatnih ograničenja programski kod. Oni mogu utjecati na bilo koji mehanizam platforme. Na primjer, kako bi ograničio pristup dokumentima, programer može dodati filtar u obrazac s popisom dokumenata, u obrazac za odabir i može programski provjeriti mogućnost pregledavanja podataka dokumenta prilikom otvaranja određenog obrasca dokumenta. Programer može primijeniti filtar u svojim izvješćima prilikom odabira podataka.

Međutim, programski kod ne postoji način da konfiguracijom ograničite prava u cjelini. Najviše što razvojni programer može učiniti je ugraditi ograničenja u specifične pojedinačne mehanizme za pronalaženje podataka. Zbog činjenice da 1C koristi objektni model za rad s podacima, programski kod može jamčiti zaštitu podataka od modifikacije, dodajući potrebne provjere objektnom modulu. No razvojni programer ne može u potpunosti jamčiti da korisnik definitivno neće moći dobiti informacije o implementacijskim dokumentima drugih ljudi putem drugih izvješća ili obrada.

Ovaj princip se koristi, na primjer, u. Povezivanjem s konfiguracijom, proširenje dodaje prilagođena ograničenja i provjere svim referentnim knjigama i dokumentima. Filtrira podatke prikazane korisnicima na popisima, provjerava pristup prilikom pregledavanja ili mijenjanja podataka. Osigurava da se zabranjeni podaci ne mogu promijeniti. Ali ne može filtrirati podatke u izvješćima ili upitima.

Uvijek postoje mogućnosti dobivanja zabranjenih podataka zahtjevom, vlastitom obradom ili izvješćem. Osim ako vrlo strogo ne ograničite popis konfiguracijskih funkcionalnosti koje koristi korisnik i dodate zasebni filtar svakom mehanizmu (obrazac, obrada, izvješće, zahtjev) dopuštenom korisniku.

4.5. Usporedba opcija.

Pokušajmo ukratko usporediti razmatrane opcije za dodatno ograničenje podataka.

Kako omogućiti

Što će se dogoditi?

Funkcionalne mogućnosti- mehanizam sučelja za skrivanje funkcionalnosti

1. Dodajte mjesto pohranjivanja za funkcionalnu opciju: konstantu, atribut imenika ili resurs registra informacija.
2. Konfiguraciji dodajte funkcionalnu opciju iu njoj navedite prethodno kreiranu lokaciju za pohranu.
3. Naznačite njegov sastav u svojstvima funkcionalne opcije, označite sve konfiguracijske objekte koji će ovisiti o njemu.
4. Omogućite korištenje funkcionalne opcije u poslovnom načinu rada.

1. Svi objekti uključeni u funkcionalnu opciju više neće biti prikazani u naredbenom sučelju.
2. Sva polja skrivena opcijom nestat će u obrascima i izvješćima.

RLS (Sigurnost na razini zapisa)- dodatni filteri za prava dopuštena ulogom

1. Registrirajte RLS filtre u svakoj korisničkoj ulozi za svako od prava koja treba ograničiti.

Napomena: U načinu rada Enterprise nije potrebna nikakva radnja. Filtri će se primijeniti automatski.

1. Konfigurirani filtar bit će dodan svakom zahtjevu za informacijsku sigurnost.
2. Podaci koji ne odgovaraju RLS filtru ne mogu se dobiti ni na koji način: neće biti prikazani u obrascima ili izvješćima; neće biti odabran nikakvim zahtjevima.

Razdvajanje podataka- održavanje nekoliko neovisnih u jednoj fizičkoj bazi podataka

1. Dodajte opći atribut konfiguraciji koji određuje sastav dijeljenih podataka.

2. Dodajte dva parametra sesije: za znak korištenja i trenutnu vrijednost dijeljenja podataka.

3. Dodajte programski kod da omogućite odvajanje podataka i popunite trenutnu vrijednost separatora.

1. Odmah nakon dodavanja mogućnosti odvajanja podataka u konfiguraciju, tablice za koje je dodana mogućnost odvajanja fizički će se ponovno izgraditi.

  • Dodat će se polje "Separator" koje će pohraniti vrijednost separatora.
  • Svi indeksi na tablicama bit će ponovno izgrađeni. Polje razdjelnika bit će dodano kao prvo polje.

2. Nakon omogućavanja odvajanja.

  • Apsolutno svim zahtjevima za informacijsku sigurnost bit će dodan filtar temeljen na vrijednosti separatora.
  • Prilikom snimanja bilo kojeg podatka, vrijednost separatora će se automatski popuniti prema vrijednosti parametra sesije.
Programski kod- sva dodatna bodovna ograničenja
1. Dodajte kod za nametanje potrebnih ograničenja konfiguraciji.

1. Učinit će točno ono što kaže.

Napomena: kod ne utječe na konfiguraciju u cjelini, već samo na određeni mehanizam za koji je radnja propisana

5. Rezultati.

Svaki način postavljanja ograničenja ima svoje prednosti i nedostatke. S tehnološke točke gledišta, najispravnije je pravilno ga podijeliti na uloge. Najpouzdaniji način filtriranja dostupnih podataka je korištenje RLS-a. Mehanizam je dizajniran za ovaj zadatak. Ograničenja točaka najlakše je implementirati pomoću koda. Funkcionalne mogućnosti i razdvajanje podataka su sasvim specifični mehanizmi koji nemaju za cilj ograničavanje pristupa. Iako se u nekim slučajevima mogu koristiti za to.

Funkcionalne mogućnosti su uobičajeni konfiguracijski objekti. One su dio mehanizma funkcionalnih opcija i omogućuju vam da odaberete funkcionalnost u aplikacijskom rješenju koja se može uključiti/isključiti tijekom implementacije bez promjene samog aplikacijskog rješenja.

Na primjer, ovisno o uvjetima konkretne implementacije, potrebno je onemogućiti evidentiranje robe po skladištima. Tako da prilikom pripreme dokumenata za prijem robe, polj Skladište nije prikazan u obrascu dokumenta.

U tu svrhu u konfiguraciji se može definirati funkcionalna opcija Skladišno računovodstvo, pohranjen u konstanti tipa Booleov.

Različiti konfiguracijski objekti ili njihovi detalji mogu se povezati s ovom funkcionalnom opcijom. Na primjer, možete pridružiti atribut ovoj funkcionalnoj opciji Skladište dokument Prijem robe.

Zatim, tijekom implementacije, možete omogućiti ili onemogućiti ovu funkcionalnu opciju u određenoj informacijskoj bazi u načinu rada 1C:Enterprise.

Platforma će automatski uključiti i isključiti prikaz svih relevantnih elemenata sučelja (polja, naredbi, stupaca popisa, elemenata izvješća). U našem slučaju, polje će biti skriveno ili prikazano Skladište u svim oblicima dokumenata Prijem robe.

Izlaskom platforme 1C:Enterprise 8.2 pojavio se novi objekt u konfiguracijskom stablu - "Funkcionalne mogućnosti". Aktivno se koristi u svim standardnim konfiguracijama temeljenim na upravljanim obrascima, a služi za pojednostavljenje procesa prikaza pojedinačnih detalja i objekata u sučelju. Na primjer, u vašoj konfiguraciji postoji modul za razmjenu s vanjskim web servisima. Ovaj modul koristi niz detalja u dokumentima, registrima i pojedinim komponentama u podsustavima. Modul je neobavezan i nije potreban svakoj tvrtki. Logično je da, budući da ne treba svatko modul, također nije uvijek potrebno prikazati sve elemente/polja povezana s njim.

U starijim verzijama platforme, rješavanje takvih problema zahtijevalo je pisanje dodatnog koda, koji se morao pozivati ​​u svim ovisnim odjeljcima. Na primjer, ako smo trebali sakriti određene detalje obrasca (ovisno o vrijednosti postavke), tada smo morali pozvati odgovarajući kod prilikom otvaranja obrasca. To nije bilo baš zgodno i u većini slučajeva programeri su odustali od takvih stvari.

Dobro je ako samo trebate sakriti polja u obliku dokumenata, ali možemo imati i registracijske obrasce s kojima je također moguća interakcija korisnika. Pisanje univerzalne funkcije upravljanja zaslonom prilično je teško i zahtijevat će dodatno vrijeme, kojeg nikad nije dovoljno.

Funkcionalne opcije dizajnirane su za rješavanje ovog i mnogih drugih poteškoća povezanih s prikazom elemenata sučelja/sastavom dostupnih objekata u korisničkom sučelju. U ovoj bilješci neću razmatrati primjere korištenja glavne svrhe funkcionalnih opcija, već ću skrenuti pozornost na njihovu upotrebu na nestandardan način. Možda je to poznato mnogim naprednim programerima, ali ja sam do ove metode došao sasvim slučajno. Točnije, inspiriran je praksom programiranja u JavaScriptu.

Slučaj br. 1: funkcionalna opcija kao omot preko drugih objekata

Prva nestandardna značajka funkcionalnih opcija je mogućnost stvaranja omotača. Razmotrimo najviše najjednostavniji primjer– konstante. Na primjer, dodate novu konstantu u konfiguraciju s velikim brojem korisničkih uloga. Kako bi korisnici mogli pristupiti vrijednosti konstante, morate postaviti prava čitanja na odgovarajuće uloge. Ako prava nisu postavljena, tada korisnici neće moći dobiti njegovu vrijednost. Ako postoji mnogo uloga i one nisu naslijeđene od osnovne uloge, tada ćete morati potrošiti vrijeme na označavanje odgovarajućih okvira.

Funkcijska opcija može riješiti ovaj problem na elegantniji način. Ideja je sljedeća: stvorite konstantu (na primjer, ). Ne dodjeljujemo prava na njega. Napravite istoimenu funkcionalnu opciju i označite je u svojstvu "Skladištenje" označavaju konstantu "Mogućnost uštede podataka". Postavili smo i zastavu "Povlašten tretman po primitku".

To je to, sada bilo gdje u kodu gdje se trebate pozvati na konstantu pišemo ovako:

Budući da smo opciju postavili na privilegirani način rada, ne moramo specificirati dodatna prava za konstantu. Naravno, nema potrebe primjenjivati ​​ovu tehniku ​​u svim zamislivim i nezamislivim situacijama. Zapamtite kompetentan dogovor prava su ključ mira. Koristite trik samo u stvarno nužnim slučajevima.

Slučaj br. 2. Dodatna razina apstrakcije

Ne znam kako bih ispravnije nazvala ovu metodu, ali u mojim mislima zvuči upravo tako. Pogledajmo prethodni primjer. Još uvijek imamo istu stalnu “Mogućnost spremanja podataka”. S njim radimo koristeći funkcionalnu opciju istog imena kao omot.

Sada zamislite da se želimo riješiti konstante i prebaciti na korištenje imenika. Tipičan scenarij za rješavanje takvog problema (ako koristimo samo konstantu) bio bi pokretanje globalnog alata za pretraživanje kako bi se otkrio pristup konstanti. Dopustite mi da vas podsjetim da ako ne koristimo funkcionalnu opciju kao omot, tada bismo trebali tretirati konstantu ovako:

Constants.Ability toSaveData.Get();

Pronalazimo sve pozive i zamjenjujemo ih putem do novog objekta za pohranu. Slažem se, ovo je prilično nezgodno. Ako smo upotrijebili prethodni slučaj (upotrebom funkcionalne opcije kao omotača), tada da bismo se "pomaknuli", samo trebamo otići na svojstva funkcionalne opcije i promijeniti svojstvo "Skladištenje". Na primjer, navedite tamo "Imenik" ili "Registar informacija". Nisu potrebne igre s globalnim pretraživanjem. Kod za pristup konstantnoj vrijednosti kroz funkcionalnu opciju ostat će isti:

GetFunctionalOption("DataSavingAbility");

Objekt 1c "Funkcionalne mogućnosti" - namijenjeni su za isticanje funkcionalnosti u aplikativnom rješenju koja se može uključiti (isključiti) tijekom implementacije, a da se sama ne mijenja (zajedno s podsustavima čine sučelje 1C tankog klijenta). One su dio mehanizma funkcionalnih opcija.

Mehanizam funkcionalnih opcija uključuje dva objekta metapodataka:

  1. Funkcionalna opcija;
  2. Parametri funkcionalnih opcija.

Više detalja

Funkcionalna opcija predstavlja objekt metapodataka koji može izravno utjecati na sastav sučelja aplikacije (ako funkcionalna opcija pohranjuje svoju vrijednost u Booleov atribut). Koristeći objekte ove vrste, možete sakriti elemente koji se odnose na nedostupnu funkcionalnost. Na primjer, opcija Valutno računovodstvo može sakriti Valute, polje Valuta iz i stupac Valutni iznos iz izvješća.

Izvor vrijednosti funkcionalne opcije je objekt metapodataka odabran kao svojstvo Storage, na primjer, to može biti .

Ako je vrijednost funkcionalne opcije pohranjena u atributu direktorija ili resursu, potrebne su dodatne informacije koje točno pokazuju kako odabrati vrijednost opcije. U tu svrhu osiguran je zaseban objekt metapodataka - Parametri funkcionalnih opcija.

Možemo reći da su parametri funkcionalnih opcija koordinatne osi prostora vrijednosti funkcionalnih opcija. Štoviše, jedan parametar funkcionalnih opcija može odrediti vrijednost "svoje" koordinatne osi istovremeno za mnoge funkcionalne opcije.

[kolaps]

Funkcionalne opcije mogu utjecati na:

  1. na korisničko sučelje:
    • globalno ;
    • pojedinosti (uključujući stupce pojedinosti obrasca kao što su Tablica vrijednosti ili ValueTree);
    • naredbe oblika;
  2. o izvješćima implementiranim pomoću sustava za sastavljanje podataka;
  3. na algoritme napisane u ugrađenom jeziku - moguće je dobiti vrijednosti funkcionalnih opcija iz ugrađenog jezika i koristiti ih u različitim uvjetima, na primjer, smanjiti količinu izračuna (vidi, na primjer,).

PAŽNJA! Ako klijentska aplikacija radi s datotečnom verzijom infobaze putem web poslužitelja, mijenja se funkcionalna opcija korisničko sučelje tek nakon ponovnog pokretanja web poslužitelja (ponovno pokretanje klijentske aplikacije neće promijeniti korisničko sučelje).

Svojstva funkcionalnih opcija 1C

  • Storage je polje u kojem je potrebno odabrati objekt tipa Boolean. Obično se koriste konstante.
  • prilikom primanja - zastavica je odgovorna za mogućnost primanja vrijednosti funkcionalne opcije u povlaštenom načinu rada.
  • Sastav - popis objekata i detalja o objektu, čija se vidljivost uključuje/isključuje kada se uključi/isključi funkcionalna opcija (kontrolirat će se pomoću upravljanog obrasca).

Na primjer, ovisno o uvjetima pojedine implementacije, moguće je onemogućiti evidentiranje robe po skladištu tako da se prilikom evidentiranja dokumenata za prijem robe u obrascu dokumenta ne ispisuje polje Skladište.

Značajke korištenja 1C funkcionalnih opcija:

  1. Funkcionalne opcije mogu imati vrijednosti bilo koje vrste (ne nužno Booleove).
  2. Kada dodajete novu konstantu za korištenje opcije funkcije, svakako je uključite u odgovarajući podsustav i dodijelite joj dozvole.
  3. Rad s funkcionalnim opcijama dostupan je iz ugrađenog jezika, zahvaljujući kojem programer može stvoriti vlastite algoritme za vrijednosti funkcionalnih opcija.
  4. Naredba naredbenog sučelja bit će isključena iz naredbenog sučelja ako je funkcionalna opcija onemogućena:
    • atribut koji je parametar naredbe;
    • tip parametra naredbe (ako je tip parametra naredbe složen, tada naredba postaje nedostupna kada su svi tipovi parametara onemogućeni).

PAŽNJA! Funkcionalne opcije i njihovi parametri ne utječu na sastav baze podataka: sve tablice i polja prisutni su u bazi podataka bez obzira na stanje funkcionalnih opcija.

Utjecaj funkcionalnih opcija na detalje obrasca i naredbe:

  1. upravljana vrsta obrasca<Вид>Objekt ( DirectoryObject, DocumentObject, itd.) bit će onemogućen ako je odgovarajući objekt onemogućen funkcionalnom opcijom. Analiziraju se samo one funkcionalne opcije koje nemaju parametre.
  2. Osnovni atributi tipa upravljane forme Dinamički popis bit će onemogućeno ako funkcionalna opcija onemogući konfiguracijski objekt koji je naveden kao glavna tablica dinamičkog popisa. Analiziraju se samo one funkcionalne opcije koje nemaju parametre.
  3. Atribut obrasca referentnog tipa je onemogućen ako je konfiguracijski objekt koji tvori ovaj tip onemogućen funkcionalnom opcijom. Atribut obrasca složenog tipa onemogućen je ako funkcionalne opcije onemogućuju sve tipove sastavnica.
  4. Tablica obrazaca bit će onemogućena ako prikazuje podatke atributa obrasca koji su onemogućeni funkcionalnom opcijom.
  5. Nema tipova u dijaloškom okviru za odabir tipa (na primjer, za polja za unos povezana s atributima složenog tipa) ako su konfiguracijski objekti koji tvore te tipove onemogućeni funkcionalnom opcijom. Informacije o tipovima onemogućenim funkcionalnim opcijama pohranjuju se u predmemoriju na strani klijenta i brišu nakon 20 minuta ili tijekom poziva metode Ažuriraj sučelje().

PAŽNJA! Za razliku od naredbenog sučelja, vrijednosti parametara funkcionalnih opcija postavljaju se samo za određenu instancu obrasca.

Stvaranje parametra funkcionalnih opcija

Parametar funkcionalne opcije kreira se pomoću 1C konfiguracijskog objekta "Parametri funkcionalne opcije".

[kolaps]

To se može učiniti u konfiguracijskom prozoru dodavanjem novog objekta.

Svojstva parametra funkcionalnih opcija:

  • Upotreba - postavlja skup objekata čije će vrijednosti odrediti kako treba odabrati vrijednost funkcionalne opcije. Popis dostupnih objekata uključuje imenike i dimenzije registara informacija. Za svaki parametar funkcionalnih opcija u ovom popisu možete odabrati jedan imenik (iz cijelog popisa imenika) i jednu dimenziju svakog informacijskog registra.

PAŽNJA! Ne možete koristiti isti objekt metapodataka u više parametara funkcionalne opcije.