1c ograniczenie praw na poziomie ewidencyjnym. Notatnik programisty. I lepiej zrobić to dobrze

Obiekt konfiguracyjny „role” nadaje zestaw uprawnień do operacji (akcji) na obiektach konfiguracyjnych.

Rola „Pełne prawa”.

Jest to po prostu rola (niezdefiniowana wstępnie), która zawiera pola wyboru dla wszystkich rodzajów praw do wszystkich obiektów konfiguracyjnych.

Jej odmiennością od innych ról jest obecność prawa „Administracja”.

Jeśli zostanie utworzony co najmniej jeden użytkownik, system rozpocznie sprawdzanie, czy posiadane jest uprawnienie „Administracja” - musi je posiadać co najmniej jeden użytkownik.

Ogranicz dostęp na poziomie rekordu

Zabezpieczenia na poziomie wiersza (RLS) — ograniczenie na poziomie rekordu.

Mechanizm ograniczeń dostępu do danych pozwala zarządzać prawami dostępu nie tylko na poziomie obiektów metadanych, ale również na poziomie obiektów bazodanowych. Następujące obiekty mogą służyć do ograniczenia dostępu do danych:

  • role,
  • opcje sesji,
  • opcje funkcjonalne,
  • uprzywilejowane moduły wspólne,
  • słowo kluczowe DOZWOLONE w języku zapytania.

Mechanizm ma na celu ograniczenie dostępu do rekordów tabeli obiektów metadanych według arbitralnych warunków nałożonych na wartości pól wierszy tych tabel. Na przykład, aby zobaczyć rekordy tylko dla „Twoich” kontrahentów, organizacji itp.

Techniczna implementacja ograniczeń dostępu w 1C

1C generuje żądanie do DBMS. Klaster serwerów dodaje do żądania sekcję WHERE, która zawiera tekst warunku ograniczenia dostępu przez RLS, następnie żądanie to jest wysyłane do DBMS, wyodrębnione dane są zwracane do klienta 1C.


Ten mechanizm będzie działał na każde żądanie klienta:

  • w raportach
  • w dynamicznych listach i zwykłych formach list
  • w losowych prośbach.

Taka implementacja mechanizmu ma duży wpływ na wydajność.

Sposoby na ominięcie ograniczeń dostępu.

W przypadku operacji wymagających dużej ilości zasobów (np. przetwarzanie dokumentów ponownego księgowania) część kodu można przenieść do modułów uprzywilejowanych.

ALE) uprzywilejowany moduł to współdzielony moduł z flagą „Uprzywilejowany” we właściwościach.

Jego osobliwość polega na tym, że zawarty w nim kod jest wykonywany bez jakiejkolwiek kontroli dostępu, w tym RLS.


B) również uprzywilejowany tryb można włączyć dla modułów obiektów dokumentów. Odbywa się to we właściwościach dokumentu, flag

  • Tryb uprzywilejowany podczas trzymania
  • Tryb uprzywilejowany podczas anulowania harmonogramu


C) Metoda Ustaw tryb uprzywilejowany()

Polecenie systemowe, które umożliwia uczynienie części kodu dowolnego modułu uprzywilejowanym.

Od następnego wiersza kodu będzie obowiązywał uprzywilejowany tryb wykonywania.

Będzie działać do linii wyłączenia tego trybu lub do zakończenia procedury / funkcji

(Prawdziwe);

// dowolny kod tutaj zostanie wykonany bez kontroli praw i RLS

Ustaw tryb uprzywilejowany(Kłamstwo ); // lub koniec procedury / funkcji

Liczba aktywacji trybu uprzywilejowanego musi odpowiadać liczbie dezaktywacji. Jeśli jednak tryb uprzywilejowany został włączony (raz lub więcej) w procedurze lub funkcji, ale nie został wyłączony, system automatycznie wyłączy go tyle razy, ile było oczekujących aktywacji w zaniechanej procedurze lub funkcji.

Jeśli w procedurze lub wywołaniu metody funkcji Ustaw tryb uprzywilejowany(Fałsz) więcej niż wywołania metod Ustaw tryb uprzywilejowany(prawda) wtedy zostanie zgłoszony wyjątek

Funkcjonować Tryb uprzywilejowany() zwraca True, jeśli tryb uprzywilejowany jest nadal włączony, i False, jeśli tryb uprzywilejowany jest całkowicie wyłączony. Nie analizuje liczby ustawień trybu uprzywilejowanego w danej funkcji.

Wszystkie wywoływane procedury i funkcje będą również wykonywane w trybie uprzywilejowanym.


Możliwe jest również rozpoczęcie sesji uprzywilejowanej. Jest to sesja, w której tryb uprzywilejowany jest ustawiany od samego początku działania systemu. Jednocześnie podczas pracy metoda Tryb uprzywilejowany() zawsze zwróci True , a możliwość wyłączenia trybu uprzywilejowanego nie jest obsługiwana. Sesję uprzywilejowaną może rozpocząć tylko użytkownik z uprawnieniami administracyjnymi (prawo administratora). Rozpoczęcie sesji można wykonać za pomocą klawisza wiersz poleceń uruchomienie aplikacji klienckiej UsePrivilegedMode lub parametru ciągu połączenia infobase prmod.


Naturalnie pojawia się pytanie: po co więc w ogóle ustanawiać ograniczenia dostępu, skoro można to tak łatwo ominąć?

Tryb bezpieczeństwa.

Tak, możliwe jest zapisywanie przetwarzania zewnętrznego w uprzywilejowanym trybie wykonywania i usuwanie/uszkodzenie danych. Aby temu zapobiec, system posiada metodę globalnego kontekstu

Ustaw tryb bezpieczny().

Tryb awaryjny ignoruje między innymi tryb uprzywilejowany.

Należy go ustawić przed programowym wywołaniem zewnętrznych programów obsługi lub wyeksportowaniem procedur i funkcji z ich modułów.

Zgłasza wyjątek podczas wykonywania zabronionych operacji w czasie wykonywania.

Dodatkowo dla użytkowników można wyłączyć możliwość interaktywnego uruchamiania zewnętrznych raportów i przetwarzania na poziomie ustawień ról.

Ustawienie ograniczenia dostępu

RLS można skonfigurować tylko dla praw:

  • czytanie (wybierz)
  • dodawanie (wstaw)
  • zmiana (aktualizacja)
  • usuwanie (usuń)

Do operacji odczytu i usunięcia, obiekt w bazie danych musi być zgodny z ograniczeniem dostępu do danych.

Do operacji dodawania ograniczenie dostępu do danych musi odpowiadać obiektowi, który ma zostać zapisany w bazie danych.

Do operacji zmiany Ograniczenie dostępu do danych musi odpowiadać obiektowi zarówno przed zmianą (aby obiekt mógł zostać odczytany), jak i po zmianie (aby obiekt został zapisany).

W przypadku wszystkich innych praw ta opcja jest niedostępna.

Dodajmy nowe ograniczenie dla prawa „czytania” podręcznika „Nomenklatury”. Otworzy się lista pól, dla których możesz skonfigurować dodane ograniczenie.

Oznacza to, że jeśli spróbujesz uzyskać dostęp do pól zaznaczonych, ograniczenie zadziała, ale jeśli spróbujesz uzyskać dostęp do pól niezaznaczonych, ograniczenie nie zadziała.

Jeśli wybierzesz flagę Inne pola”, ograniczenie zostanie ustawione dla wszystkich pól tabeli, z wyjątkiem pól, dla których ograniczenia są ustawione wprost.


*Funkcja: w przypadku uprawnień do dodawania, zmiany, usuwania:

  • Ograniczenie można skonfigurować tylko dla wszystkich pól.
  • Może być tylko jeden limit.

W przypadku prawa „Odczyt” możesz ustawić kilka warunków, zostaną one połączone operator logiczny"ORAZ".

W ograniczeniach dotyczących obiektów bazy danych następujących typów nie można użyć wszystkich pól głównego obiektu danych ograniczenia:

  • w rejestrach akumulacji ograniczenia dostępu mogą zawierać tylko pomiary głównego przedmiotu ograniczenia;
  • w księgach rachunkowych w ograniczeniach można korzystać tylko z pomiarów bilansowych głównego przedmiotu ograniczenia

Jeżeli w warunkach ograniczonego dostępu do danych ewidencji obrotów kumulacyjnych wykorzystywane są pomiary nieuwzględnione w sumach, to przy dostępie do wirtualnej tabeli obrotów nie są wykorzystywane przechowywane sumy i zapytanie jest wykonywane w całości zgodnie z stół ruchu.

Mechanizm nakładania ograniczeń dostępu.

Każda operacja na danych przechowywanych w bazie danych w 1C:Enterprise ostatecznie skutkuje uzyskaniem dostępu do bazy danych z żądaniem odczytu lub modyfikacji danych. Podczas wykonywania zapytań do bazy danych wewnętrzne mechanizmy 1C:Enterprise nakładają ograniczenia dostępu. W której:

  • Powstaje lista praw(odczytaj, dodaj, zaktualizuj, usuń), listę tabel bazy danych oraz listę pól używanych przez to zapytanie.
  • Ze wszystkich ról bieżącego użytkownika wybierz ograniczenia dostępu do danych dla wszystkich praw, tabel i pól związanych z żądaniem. Co więcej, jeśli jakaś rola nie zawiera ograniczeń dostępu do danych dowolnej tabeli lub pola, oznacza to, że wartości wymaganych pól z dowolnego rekordu są dostępne w tej tabeli. Innymi słowy, brak ograniczenia dostępu do danych oznacza, że ​​istnieje ograniczenie WHERE True.
  • Uzyskaj aktualne wartości wszystkich parametrów sesji i opcji funkcjonalnych uczestnicząc w wybranych ograniczeniach.

Uzyskanie wartości parametru sesji lub opcji funkcjonalnej nie wymaga od aktualnego użytkownika posiadania prawa do uzyskania tej wartości. Jeśli jednak wartość jakiegoś parametru sesji nie została ustawiona, to wystąpi błąd i zapytanie do bazy danych nie zostanie wykonane.

Ograniczenia wywodzące się z tej samej roli są łączone za pomocą operacji AND.

Ograniczenia otrzymane z różnych ról są łączone z operacją OR.

Skonstruowane warunki są dodawane do zapytań SQL, za pomocą których 1C:Enterprise uzyskuje dostęp do DBMS. Podczas uzyskiwania dostępu do danych ze strony warunków ograniczeń dostępu nie jest wykonywane sprawdzanie uprawnień (ani obiektów metadanych, ani obiektów bazy danych). Ponadto mechanizm dodawania warunków zależy od wybranego trybu działania ograniczeń „wszystkie” lub „dozwolone”.


*Cecha: Jeżeli użytkownik ma dostęp do kilku ról ze skonfigurowanymi ograniczeniami na poziomie rekordów jednego obiektu, to w tym przypadku warunki ograniczeń są dodawane przez operację logiczną „LUB”. Innymi słowy, uprawnienia użytkownika kumulują się.

Prowadzi to do następującego wniosku: nie dopuszczaj do przekroczenia warunku ograniczenia dostępu do jednego obiektu w różnych rolach, ponieważ w tym przypadku tekst zapytania stanie się znacznie bardziej skomplikowany, a to wpłynie na wydajność.

Cała droga.

W przypadku nałożenia ograniczeń metodą „all” do zapytań SQL dodawane są warunki i pola, dzięki czemu 1C:Enterprise może uzyskać informacje o tym, czy dane, które są zabronione dla danego użytkownika, zostały użyte w procesie wykonywania zapytania do bazy danych, czy też nie . Jeśli wykorzystano zabronione dane, wówczas rozbić siężądanie z powodu naruszenia dostępu.

Nakładanie ograniczeń dostępu metodą „wszyscy” schematycznie przedstawia rysunek:


Metoda „dozwolona”.

W przypadku nałożenia ograniczeń metodą „dozwolonych” do zapytań SQL dodawane są takie warunki, aby rekordy zakazane dla bieżącego użytkownika nie wpływały na wynik zapytania. Innymi słowy, gdy ograniczenia są nakładane w trybie „dozwolonym”, zabronione dany użytkownik rekordy uważa się za brakujące i nie ma to wpływu na wynik operacji, co schematycznie pokazano na rysunku:


Ograniczenia dostępu do danych są nakładane na obiekty bazy danych, gdy 1C:Enterprise uzyskuje dostęp do bazy danych.

W wersji klient-serwer 1C:Enterprise ograniczenia są stosowane na serwerze 1C:Enterprise.

Jednak ta opcja (ALLOWED) nie zadziała, jeśli w zapytaniu odniesiemy się do tabeli, dla której nie skonfigurowano ograniczeń dostępu, ale w której znajdują się łącza do wierszy tabeli ze skonfigurowanymi ograniczeniami. W takim przypadku wynikiem zapytania będzie „<Объект не найден>…...” zamiast wartości pola referencyjnego.


Jeśli tworzysz raport lub przetwarzasz przy użyciu ogólnych lub niestandardowych zapytań konfiguracyjnych, zawsze sprawdzaj flagę „Dozwolone”żeby raport zadziałał pod dowolnym użytkownikiem z dowolnym zestawem praw.

W przypadku obiektu odczytującego dane z bazy nie ma możliwości ustawienia flagi „Dozwolone”. Dlatego jest to konieczne skonfigurować wybory do odczytu obiektów z uwzględnieniem ewentualnych ograniczeń praw dostępu dla użytkownika. Nie ma możliwości uzyskania tylko dozwolonych danych w technologii obiektowej.

Ważne jest, aby jeśli słowo kluczowe ALLOWED nie zostało określone w zapytaniu, wszystkie filtry określone w tym zapytaniu nie mogą kolidować z żadnymi ograniczeniami odczytu obiektów bazy danych użytych w zapytaniu. Ponadto, jeśli w zapytaniu używane są tabele wirtualne, odpowiednie filtry muszą zostać nałożone na same tabele wirtualne.

Praktyka 1. Konstruktor zapytań w ustawieniach RLS.

Skomponujmy tekst sekcji „GDZIE” w zapytaniu do katalogu. Możesz użyć konstruktora zapytań.
Konstruktor jest obcięty.


Zakładka „Tabele”

Główna tabela będzie tabelą obiektu, dla którego konfigurowane jest ograniczenie.

Możesz także wybrać inne tabele i dostosować je do swoich potrzeb różne połączenia na karcie Połączenia.

Zakładka Warunki

Tutaj możesz skonfigurować rzeczywiste warunki ograniczania dostępu.

Dodajmy warunki dla atrybutu „Cena” katalogu z listą giełdową dla prawa „odczytywania” wszystkich pól tabeli.

„Nomenklatura GDZIE Nomenklatura. Cena > 500”

Zobaczmy, jak działa ta prosta zasada. Tabela referencyjna zawiera następujące elementy:


Po ustawieniu ograniczenia dostępu w tabeli pojawią się tylko te elementy, które spełniają warunek:


Zniknęły też grupy. Zmień tekst ograniczenia

„Nomenklatura GDZIE Nomenklatura. Cena > 500

LUB Nomenklatura.To jest Grupa"

Cóż, oto czego potrzebujesz.


Jeśli usuniesz wyświetlanie pola „kod” w ustawieniach listy, zostaną wyświetlone wszystkie elementy katalogu, tj. ograniczenie nie zadziałało. Jeśli ustawisz wyświetlanie pola „Kod”, ograniczenie będzie działać.


Jednocześnie pomimo tego, że element odnośnika jest widoczny w polu listy, nie można otworzyć jego formularza, ponieważ ustawione jest ograniczenie atrybutu. To samo w przypadku arbitralnego żądania: podczas próby uzyskania atrybutu „restricted” wystąpi błąd dostępu.


Jeśli spróbujesz programowo uzyskać „zastrzeżone” właściwości, zostanie również zgłoszony błąd dostępu.


Ponadto nie będzie można uzyskać dostępu do żadnych pól obiektu poprzez link, ponieważ po otrzymaniu linku system odczytuje cały obiekt, a jeśli ma „ograniczone” szczegóły, obiekt nie zostanie odczytany.

Dlatego kiedy praca programowa przy obiektach bazy danych należy pamiętać o możliwych ograniczeniach na poziomie rekordu i za pomocą zapytania pobrać wszystkie niezbędne dane obiektowe, a następnie umieścić je w strukturze lub wykonać fragment kodu w uprzywilejowanym module.

Po ustawieniu ograniczenia dostępu zmienił się sposób wyświetlania wiersza na liście uprawnień - stał się szary i pojawiła się ikona.

Ograniczenia konfiguracji dostępu (RLS).

  • Brak sekcji Podsumowanie;
  • Nie można uzyskać dostępu do wirtualnych tabel rejestrów;
  • Nie można jawnie używać parametrów;
  • Podzapytania mogą być używane wszelkie>/span> udogodnienia języka zapytań, z wyjątkiem:
    • operator W HIERARCHII;
    • oferuje WYNIKI;
    • zagnieżdżone wyniki zapytania nie może zawierać części tabelarycznych>/span>;
    • wirtualne stoły, w szczególności Salda i Obroty

Praktyka 2. Nomenklatura z aktualną ceną.

Wprowadź ograniczenie dostępu, jeśli chcesz wyświetlić przedmiot z aktualną ceną większą niż określona wartość, na przykład 100.

Decyzja:

Dodaliśmy nową regułę ograniczeń dostępu do podręcznika „Nomenklatury” dla prawa „odczyt”.
Wybierz "inne pola".
W konstruktorze dodaj zapytanie zagnieżdżone. W nim wybierz tabelę rejestru informacyjnego „Ceny artykułów”.
Nie ma zakładki „zamówienie” — jest to funkcja konstruktora zapytań służąca do budowania zapytania ograniczającego dostęp.
Na zakładce „Zaawansowane” ustaw „pierwszy 999999999”, pojawiła się zakładka „zamówienie”.
Ustaw kolejność według pola „Okres” w kolejności malejącej.
Następnie ustawiamy połączenie tabeli głównej z podzapytaniem przez odwołanie.


Szablony ograniczeń dostępu.

Praktyka 3. Ograniczenie „wykonawców” przez wartość w stałej.

Ustaw ograniczenie dostępu do katalogu kontrahentów według wartości przechowywanej w stałej.

Ponadto musisz ustawić ograniczenie dla wszystkich obiektów, które w szczegółach korzystają z katalogu „Kontrahenci”.

Decyzja

W przypadku podręcznika „Konta” dla prawa „odczyt” ustawimy ograniczenie, dodając zagnieżdżone zapytanie do stałej w sekcji „Warunki”. Nie zapomnij o tej grupie.

Widzimy problem, katalog Kontrahenci jest poprawnie filtrowany, wyświetlane są wszystkie dokumenty z atrybutem „Kontrahent”, niektóre z „uszkodzonymi” linkami w atrybucie „Kontrahent”.

Teraz musisz skonfigurować ograniczenie dostępu dla wszystkich obiektów za pomocą linku do "Konta". Znajdźmy je za pomocą usługi "szukaj linków do obiektu".

Skopiujmy i nieznacznie zmodyfikujmy tekst warunku RLS z katalogu „Kontrahenci”. Należy to zrobić tyle razy, ile jest znalezionych obiektów.

Lub użyj wzorca Ograniczenie dostępu, aby uniknąć problemów z duplikacją kodu.

Szablony ograniczeń dostępu są konfigurowane na poziomie roli i mogą być używane dla dowolnego obiektu w ramach edytowanej roli.

Możesz umieścić w szablonie dowolny fragment tekstu ograniczenia dostępu. Szablon jest wywoływany za pomocą symbolu „#”. Na przykład #TemplateContractor.

Poprzez # w 1C instrukcje są zapisywane do preprocesora. W kontekście wykonywania ustawień ograniczeń dostępu platforma zastępuje tekst wywołania szablonu tekstem szablonu.

Przenieśmy tekst po słowie WHERE do szablonu „TemplateContractor”, z wyjątkiem tekstu o ThisGroup.

Parametry w szablonach ograniczeń dostępu.

Kontynuujmy rozwiązywanie problemu 2.

Problem polega na tym, że główna tabela w katalogu nosi nazwę „kontrahent”, w dokumencie „Faktura”. Zaznaczone pole w katalogu nosi nazwę "link", w dokumencie - "Kontrahent".

Zmień nazwę głównej tabeli w tekście szablonu na „#CurrentTable”

„#CurrentTable” to wstępnie zdefiniowany parametr.

A poprzez kropkę wskazujemy numer parametru wejściowego - „.#Parameter(1)

„#Parametr” jest również wartością predefiniowaną. Może zawierać dowolną liczbę parametrów wejściowych. Są one określane numerem seryjnym.

W tekście ograniczenia dostępu do katalogu wskazujemy, co następuje:

W przypadku dokumentu:

„Sprzedaż towarów GDZIE #TemplateContractor(„Kontrahent”)”

Podczas wywoływania szablonu ograniczeń dostępu parametry należy do niego przekazać wyłącznie jako String, czyli w cudzysłowie.

Tabela główna - Nomenklatura

Tekst szablonu to:

#CurrentTable GDZIE #CurrentTable.#Parameter(1) = #Parameter(2)

Tekst szablonu zawiera część tekstu w języku ograniczeń dostępu do danych i może zawierać parametry, które są wyróżnione symbolem „#”.

Po znaku „#” może następować:

  • Jedno ze słów kluczowych:
    • Parametr, po którym następuje numer parametru w szablonie w nawiasach;
    • CurrentTable - oznacza wstawienie do tekstu pełnej nazwy tabeli, dla której budowane jest ograniczenie;
    • Bieżąca nazwa tabeli– oznacza wstawienie do tekstu pełnej nazwy tabeli (jako wartość łańcuchową, w cudzysłowie), do której odnosi się instrukcja, w aktualnej wersji wbudowanego języka;
    • NazwaBieżące Zezwolenie– zawiera nazwę uprawnienia, dla którego dokonywane jest aktualne ograniczenie: ODCZYT/ODCZYT, DODAJ/WSTAW, ZMIEŃ/AKTUALIZUJ, USUŃ/USUŃ;
  • nazwa parametru szablonu – oznacza wstawienie do tekstu ograniczenia odpowiedniego parametru szablonu;
  • symbol „#” - oznacza wstawienie do tekstu pojedynczego symbolu „#”.

Wyrażenie ograniczenia dostępu może zawierać:

  • Wzorzec ograniczenia dostępu, który jest określony w formacie #TemplateName("Wartość parametru szablonu 1", "Wartość parametru szablonu 2",...). Każdy parametr szablonu jest ujęty w podwójne cudzysłowy. Jeśli musisz określić znak podwójnego cudzysłowu w tekście parametru, użyj dwóch podwójnych cudzysłowów.
  • Funkcja StrContains(Gdzie szukamy, czego szukamy). Funkcja jest przeznaczona do wyszukiwania wystąpienia WhatLooking for w ciągu WhereLooking for. Zwraca True, jeśli zostanie znalezione dopasowanie, w przeciwnym razie False.
  • Operator + dla konkatenacji ciągów.

Dla wygody edytowania tekstu szablonu na karcie Szablony ograniczeń w formularzu roli kliknij przycisk Ustaw tekst szablonu. W otwartym oknie dialogowym wprowadź tekst szablonu i kliknij OK.

Nie można ich zainstalować za pomocą ustawParametr() lub coś podobnego.

W tym przypadku parametry to:

  • Opcje sesji
  • Opcje funkcjonalne

Odczytywanie parametrów sesji w żądaniu ograniczenia dostępu odbywa się w trybie uprzywilejowanym, czyli bez kontroli uprawnień do działania z nimi.

Praktyka 4. Dostęp do „swoich” kontrahentów

Niezbędne jest ustawienie ograniczenia dostępu aktualnego użytkownika do „ich” kontrahentów.

Istnieje katalog „Użytkownicy”, katalog „Kontrahenci”, dokumenty z wymaganym „Kontrahentem”.

Aktualny użytkownik powinien widzieć dane tylko dla tych kontrahentów, dla których nawiązano z nim połączenie.

Należy również skonfigurować komunikację.

Możliwe opcje:

Nawiązywanie powiązań użytkownik + kontrahent

  • Szczegóły w katalogu kontrahentów
  • Rejestr informacji

Możliwe rozwiązania problemu:

  • Przechowywanie użytkownika w stałej to zła opcja, stała jest dostępna dla wszystkich użytkowników.
  • Utrzymywanie stałej tablicy kontrahentów bieżącego użytkownika w parametrach sesji nie jest zbyt dobre. dobra opcja, kontrahentów może być wielu
  • Przechowuj w sesji parametry aktualnego użytkownika, a następnie poproś o listę „jego” kontrahentów – opcja do zaakceptowania.
  • Inne opcje.

Decyzja.

Stwórzmy nowy parametr sesję „CurrentUser” i wpisz jej wypełnienie w module sesji.

Stwórzmy rejestr informacji „Korespondencja menedżerów i kontrahentów”

Stwórzmy nową rolę, a w niej nowe ograniczenie dostępu do dokumentu „Faktura paragonowa”.

W tekście zapytania połączymy główną tabelę z rejestrem informacyjnym według Kontrahent = Kontrahent i Manager = &CurrentUser. Rodzaj połączenia Wewnętrzne.

Jeśli to możliwe, lepiej unikać zagnieżdżonych zapytań w tekstach ograniczeń dostępu, ponieważ będzie ono wykonywane za każdym razem, gdy dane z tego obiektu zostaną odczytane z bazy danych.

Sprawdzamy - ograniczenia działają

* Funkcjonalność : W przypadku zmiany listy kontrahentów użytkownika w rejestrze ograniczenia dostępu zaczną obowiązywać natychmiast, bez konieczności ponownego uruchamiania sesji użytkownika.

Praktyka 5. Brak zmiany daty.

Konieczność wcześniejszego zaimplementowania ograniczenia edycji danych termin płatności zakaz zmian.
Użytkownicy muszą być ograniczeni.

Utwórzmy rejestr informacyjny „ChangeBarDateDate” z wymiarem Użytkownik, zasób RestrictedDate.

Zbudujmy logikę rozwiązania w ten sposób:

  • jeśli użytkownik nie jest określony, zakaz dotyczy wszystkich użytkowników
  • jeżeli jest ograniczenie dla wszystkich użytkowników i ograniczenie dla konkretnego użytkownika, to jest ograniczenie dla konkretnego użytkownika, a dla reszty na zasadzie ogólnej.

Oczywiście taki limit można skonfigurować dla obiektów bazy danych, które mają określoną pozycję na osi czasu. To może być

  • Dokumentacja
  • Okresowe rejestry informacji

Utwórzmy nową rolę „RestrictionsBy ChangeProhibitionDate”.

W nim dla dokumentu „Faktura paragonowa” dla właściwej „zmiany” dodamy nowe ograniczenie dostępu.

Ustawienie jest określone dla wszystkich pól.

Tekst ograniczenia to:

Faktura pokwitowania Z dokumentu Faktura pokwitowania AS Faktura faktura

ChangeProhibitionDates.ProhibitionDate AS ProhibitionDate
OD

POŁĄCZENIE WEWNĘTRZNE (WYBIERZ
MAXIMUM (DataProhibicji Zmiany.Użytkownik) JAKO Użytkownik
OD
Rejestr informacji Daty zakazu zmian jako data wprowadzenia zakazu zmian
GDZIE
(ChangeProhibitionDates.User = &Bieżący użytkownik
ORChangeProhibitionDate.User = VALUE(Reference.users.NullReference))) JAKO OT_User
BYChangeProhibitedDate.User = OT_User.User) AS Podzapytanie
Faktura Faktura Data. > NestedRequest.BanDate

Sprawdzamy - ograniczenie działa.

Korzystanie z instrukcji preprocesora

#Jeżeli Warunek1 #Wtedy

Fragment żądania 1

#InneJeżeli Warunek2 #Wtedy

Fragment żądania 2

#Inaczej

Fragment żądania 3

#Koniec, jeśli

W warunkach można używać operacji logicznych (i. lub, nie itp.) oraz dostępu do parametrów sesji.

Takie podejście w kontekście budowania ograniczeń dostępu jest wygodne, ponieważ w zależności od warunków zostanie skompilowany krótszy tekst zapytania. Prostsze żądanie ładuje system mniej.

Minusem jest to, że konstruktor zapytania nie będzie działał z takim tekstem.

* Osobliwość :

W przeciwieństwie do instrukcji dla preprocesora 1C:Enterprise w tekstach ograniczeń dostępu, poprzedź operator Then znakiem krzyża — #Then

Praktyka 6. Przełącz „Użyj RLS”

Uzupełnijmy nasz system ograniczeń o przełącznik, który włącza/wyłącza korzystanie z ograniczenia na poziomie rekordu.

Aby to zrobić, dodaj stałą i parametr sesji o nazwie „UserRLS”.

Napiszmy w module sesji ustawienie wartości parametru sesji z wartości stałej.

Dodaj następujący kod do wszystkich tekstów ograniczeń dostępu:

"#Jeżeli &Użyj #Wtedy….. #KoniecJeżeli"

Sprawdzamy - wszystko działa.

Jednak teraz po włączeniu flagi „użyj radaru” zmiany nie zaczną obowiązywać natychmiast. Czemu?

Ponieważ parametr sesji jest ustawiany w momencie rozpoczęcia sesji.

Możesz sprawić, że po zapisaniu nowej wartości stałej wartość parametru sesji zostanie zresetowana, ale będzie to działać tylko dla obecna sesja użytkownik. Inni użytkownicy muszą zostać poproszeni o ponowne uruchomienie systemu.


Koniec pierwszej części.

Począwszy od platformy 8.0 systemu 1C Enterprise, możliwe jest ograniczenie praw dostępu użytkowników na poziomie rekordu. W tym celu wykorzystywany jest mechanizm RLS (Record Level Security). Takie „dokładne” ustawienie może być przydatne do ograniczania dostępu przez organizacje, klientów, produkty itp.

RLS to możliwość ustawienia przez programistę warunku w tabelach bazy danych dla określonych użytkowników (grup użytkowników) i uniemożliwienia im zobaczenia zbyt wielu. Warunek jest typu Boolean. Jeśli wartość warunku przyjmuje wartość „prawda”, dostęp jest przyznawany, w przeciwnym razie jest odmawiany.

RLS jest używany w tym samym czasie, co ustawianie normalnych uprawnień. Dlatego zanim zaczniesz konfigurować RLS, musisz rozdzielić zwykłe uprawnienia do obiektów konfiguracyjnych.

RLS dotyczy następujących rodzajów praw dostępu:
* Czytanie
* Dodatek
* Zmiana
* Usunięcie

Jak ustawić RLS

Spójrzmy na prosty przykład konfiguracji. Zrzuty ekranu wykonano w wersji 1C Enterprise 8.2 (8.2.9.356). Składnia szablonów tekstu ograniczeń jest opisana w dokumentacji do wersji 8.2 w książce „Przewodnik programisty. Część 1”, więc nie będziemy się nad tym rozwodzić.

Tak więc pierwszym krokiem jest zdefiniowanie szablonów ograniczeń dla każdej istniejącej roli.

Następnie, na podstawie określonych szablonów, ustalane są ograniczenia dla niezbędnych obiektów. Aby edytować tekst warunku, możesz użyć Konstruktora ograniczeń dostępu do danych.

Aby edytować wiele ról, wygodnie jest zarządzać za pomocą okna „Wszystkie role”.

Możesz użyć okna Wszystkie ograniczenia dostępu, aby skopiować warunki do innych ról. Szablony do innych ról można kopiować tylko ręcznie.

To wszystko. Możesz sprawdzić wynik.

niedogodności korzystanie z RLS:
1. Zastosowanie mechanizmu ograniczania dostępu na poziomie rekordu prowadzi do niejawnego wzrostu liczby tabel biorących udział w zapytaniu, co może prowadzić do błędów w trybie klient-serwer bazy danych.
2. W przypadku kontroli rekordów wdrożenie złożonej logiki aplikacji może być trudne lub niemożliwe. W takich przypadkach lepiej jest użyć warunków w procedurze OnWrite().
3. Napisanie warunku (wniosku) wymaga pewnych kwalifikacji dewelopera.
4. Dodatkowe trudności może stwarzać niemożność debugowania warunku (żądanie).

W typowe konfiguracje uprawnienia na poziomie ewidencji można ustawiać interaktywnie dla następujących obiektów: organizacje, kontrahenci, nazewnictwo, magazyny, pododdziały, osoby fizyczne, zgłoszenia kandydatów i inne.

Należy pamiętać, że ograniczenia praw dostępu na poziomie rekordu są mechanizmem dość zasobożernym, a im bardziej złożone ograniczenia ustawisz, tym wolniej będzie działał program, zwłaszcza przy dużej bazie danych.
Aleksander Melkostupow

Informacje zaczerpnięte ze strony

Jak ustawić prawa dostępu w programie 1C 8.3?

W tym artykule zastanowimy się, jak pracować z użytkownikami w 1C Accounting 8.3:

  • utwórz nowego użytkownika
  • konfigurowanie uprawnień - profile, role i grupy dostępu
  • jak ustawić ograniczenie praw na poziomie rekordu (RLS) w 1C 8.3 - na przykład przez organizację

Instrukcja jest odpowiednia nie tylko dla programu księgowego, ale także dla wielu innych zbudowanych w oparciu o BSP 2.x: 1C Trade Management 11, Payroll and HR 3.0, ERP 2.0, Small Business Management i inne.

W interfejsie programu 1C zarządzanie użytkownikami odbywa się w sekcji „Administracja”, w pozycji „Konfigurowanie użytkowników i praw”:

Jak utworzyć nowego użytkownika w 1C?

Aby utworzyć nowego użytkownika w 1C Accounting 3.0 i przypisać mu określone prawa dostępu, w menu „Administracja” znajduje się pozycja „Ustawienia użytkownika i praw”. Idziemy tam:

Listą użytkowników zarządza się w sekcji „Użytkownicy”. Tutaj możesz utworzyć nowego użytkownika (lub grupę użytkowników) lub edytować już istniejącego. Tylko użytkownik z uprawnieniami administracyjnymi może zarządzać listą użytkowników.

Stwórzmy grupę użytkowników o nazwie "Księgowość", a w niej dwóch użytkowników: "Księgowy 1" i "Księgowy 2".

Aby utworzyć grupę, naciśnij przycisk podświetlony na powyższym rysunku i wprowadź nazwę. Jeśli w infobazie znajdują się inni użytkownicy, którzy nadają się do roli księgowego, możesz od razu dodać ich do grupy. W naszym przykładzie nie ma żadnego, więc klikamy „Zapisz i zamknij”.

Teraz stwórzmy użytkowników. Umieść kursor na naszej grupie i kliknij przycisk „Utwórz”:

W pełnej nazwie wpisz „Konto 1”, ustaw nazwę logowania na „Konto1” (pojawi się po wejściu do programu). Hasło to „1”.

Upewnij się, że pola wyboru „Logowanie do programu jest dozwolone” i „Pokaż na liście wyboru” są zaznaczone, w przeciwnym razie użytkownik nie będzie widział siebie podczas autoryzacji.

Pozostaw „Tryb uruchamiania” jako „Auto”.

Ustawianie praw dostępu - role, profile

Teraz musisz określić „Uprawnienia” dla tego użytkownika. Ale najpierw musisz to zapisać, w przeciwnym razie pojawi się okno ostrzegawcze, jak pokazano na powyższym rysunku. Kliknij „Zapisz”, a następnie „Uprawnienia”:

Wybierz profil „Księgowy”. Ten profil standardowe i nastawione na podstawowe uprawnienia wymagane przez księgowego. Kliknij „Nagraj” i zamknij okno.

W oknie „Użytkownik (Utwórz)” kliknij „Zapisz i zamknij”. Tworzymy również drugiego księgowego. Dbamy o to, aby użytkownicy byli zalogowani i mogli pracować:

Należy zauważyć, że ten sam użytkownik może należeć do kilku grup.

Wybraliśmy prawa dostępu dla księgowych spośród tych, które były domyślnie zawarte w programie. Ale są sytuacje, w których konieczne jest dodanie lub usunięcie jakiegoś prawa. W tym celu możliwe jest stworzenie własnego profilu z zestawem niezbędnych uprawnień dostępu.

Przejdźmy do sekcji „Dostęp do profili grupowych”.

Powiedzmy, że musimy umożliwić naszym księgowym przeglądanie księgi.

Tworzenie profilu od podstaw jest dość pracochłonne, więc skopiujmy profil „Księgowy”:

I dokonamy w nim niezbędnych zmian - dodamy rolę "Wyświetl rejestr rejestracji":

Nadaj nowemu profilowi ​​inną nazwę. Na przykład „Księgowy z dodatkami”. I zaznacz pole „Wyświetl rejestr rejestracji”.

Teraz musisz zmienić profil użytkowników, których utworzyliśmy wcześniej.

Ograniczenie praw na poziomie rekordu w 1C 8.3 (RLS)

Zastanówmy się, co to znaczy ograniczać prawa na poziomie nagrywania lub jak to nazywają w 1C - RLS (Record Level Security). Aby uzyskać tę funkcję, musisz zaznaczyć odpowiednie pole:

Program będzie wymagał potwierdzenia akcji i zgłosi, że takie ustawienia mogą znacznie spowolnić działanie systemu. Często konieczne jest, aby niektórzy użytkownicy nie widzieli dokumentów określonych organizacji. Właśnie w takich przypadkach istnieje ustawienie dostępu na poziomie rekordu.

Wracamy do sekcji zarządzania profilami, klikamy dwukrotnie profil „Konto z dodatkami” i przechodzimy do zakładki „Ograniczenia dostępu”:

"Typ dostępu" wybierz "Organizacje", "Wartości dostępu" wybierz "Wszyscy są dozwoleni, wyjątki są przypisywane w grupach dostępu". Kliknij „Zapisz i zamknij”.

Teraz wracamy do sekcji „Użytkownicy” i wybieramy np. użytkownika „Konto 1”. Kliknij przycisk „Uprawnienia”:

Za pomocą przycisku „Dodaj” wybierz organizację, której dane będą widoczne dla „Księgowego 1”.

Notatka! Wykorzystanie mechanizmu różnicowania uprawnień na poziomie rekordu może wpłynąć na wydajność programu jako całości. Uwaga dla programisty: istotą RLS jest to, że system 1C dodaje dodatkowy warunek do każdego żądania, prosząc o informacje o tym, czy użytkownik może odczytać te informacje.

Inne ustawienia

Sekcje „Kopiowanie ustawień” i „Usuwanie ustawień” nie powodują pytań, ich nazwy mówią same za siebie. Są to ustawienia wyglądu programu i raportów. Na przykład, jeśli założysz piękny wygląd zewnętrzny książka referencyjna "Nomenklatura" - może być replikowana innym użytkownikom.

W sekcji „Ustawienia użytkownika” możesz zmienić wygląd programu i zrobić dodatkowe ustawienia dla wygody.

Pole wyboru „Zezwól na dostęp użytkownikom zewnętrznym” umożliwia dodawanie i konfigurowanie użytkowników zewnętrznych. Na przykład chcesz zorganizować sklep internetowy w oparciu o 1C. Klienci sklepu będą po prostu użytkownikami zewnętrznymi. Prawa dostępu konfiguruje się w taki sam sposób, jak zwykli użytkownicy.

Źródło: programmer1s.ru

Rada zawiera instrukcja krok po kroku skonfigurować Record Level Sceurity (RLS) w Aksapta 3.0.

Gdzie jest to napisane w dokumentacji?

Wersja rosyjska: Podręcznik użytkownika dla administratora (rosyjski)_3.0.pdf (p.126)
Wersja angielska: Podręcznik użytkownika dla administracji (s. 40, 101)

Wstęp


Ograniczenie uprawnień na poziomie rekordów (Record Level Security - RLS) pozwoli ograniczyć dostęp do rekordów do różnych grup użytkowników. Na przykład jedna grupa menedżerów może widzieć klientów rosyjskich, a inna zagranicznych. Ponadto menedżerowie pracujący z klientami rosyjskimi nie powinni spotykać się z klientami zagranicznymi. Co więcej, menedżerowie nie powinni ich nawet widzieć.

RLS w Aksapta działa w połączeniu z systemem ustawiania uprawnień niestandardowych. Oznacza to, że aby ograniczyć dostęp do jednego lub drugiego pola tabeli, konieczne jest ustawienie zwykłych praw do tych tabel. Zadaniem RLS jest niedostrzegalne dla użytkownika filtrowanie rekordów.

Konfigurowanie ograniczeń praw na poziomie rekordów sprowadza się do zdefiniowania filtrów w określonych tabelach dla różnych grup użytkowników. Jeśli użytkownik należy do kilku grup, filtry są łączone przez warunek LUB.

Sztuka ustawiania uprawnień polega na prawidłowym zdefiniowaniu filtrów we właściwych tabelach. I rób to w optymalny sposób, aby nie zmniejszać wydajności systemu.

Ustawienie

Zanim wykonamy konfigurację ograniczeń dostępu, konieczne jest wykonanie wstępnych kroków:

Prace przygotowawcze zostały zakończone. Test użytkownika nie ma obecnie żadnych praw. Możesz przejść do Axapty pod użytkownikiem testowym i upewnić się, że nie może on nawet otworzyć menu głównego.

Możesz rozpocząć konfigurowanie RLS:

  1. Ustaw normalne prawa dla grupy tstGroup1.

  • Teraz skonfigurujmy RLS
  • Edytuj zapytanie dotyczące utworzonego dostosowania.
    • Kliknij przycisk Poproś;
  • Właściwie wszystko! RLS jest skonfigurowany. Użytkownik Test ma teraz uprawnienia do odczytu danych z modułu Rozrachunki z odbiorcami oraz prawo do tworzenia i usuwania zleceń. Dodatkowo do tabeli klientów stosowany jest filtr. Od tej chwili użytkownicy należący do grupy tstGroup1 będą mogli widzieć tylko innych klientów (klientów, dla których ustawiona jest grupa Other).

    Sprawdźmy ustawienie


    Zaloguj się do Axapty pod zakładką Test użytkownika. Otwórz listę klientów (Menu główne \ Konta z klientami \ Klienci). Upewnij się, że lista klientów zawiera tylko tych klientów, dla których ustawiono grupę z kodem Prf.

    Zwróć uwagę, że w menu głównym została otwarta nie tylko zakładka Konta z klientami. Otworzyły się również zakładki Księgi Głównej, Gotówka, CRM, Zarządzanie zapasami, Ogólne. Faktem jest, że nadając uprawnienia modułowi klienta, wpłynęliśmy na wiele tabel z innych modułów. Tak, oczywiście niepotrzebne zakładki są prawie puste. Ale nadal, w prawdziwe życie prawa powinny być nadane znacznie dokładniej.

    Ponadto zakładki z niekupionych modułów nigdy nie pojawiają się w prawdziwym życiu. Na przykład spróbuj wyłączyć moduł CRM w ustawieniu kluczy konfiguracyjnych.

    Spróbuj zastosować filtr „*” do grupy (Umieść kursor myszy nad kolumną Grupa klientów, kliknij prawy przycisk, wybierz Znajdź..., wprowadź filtr "*").

    Spróbuj też zastosować filtr "!Prch". Spróbuj zastosować filtry do innych pól. Upewnij się, że filtr klienta faktycznie działa poprawnie we wszystkich przypadkach.

    Sprawdź, jak działa RLS w raportach. Otwórz raport z listą klientów (Menu główne \ Należności \ Raporty \ Dane podstawowe \ Klient). Spróbuj utworzyć ten sam raport za pomocą filtrów. Upewnij się, że filtr klientów działa poprawnie również w raportach.

    Należy pamiętać, że programista nie musi niczego zmieniać ani przerabiać, aby RLS działał w jego raporcie, jeśli używa jądra w formularzach lub do tworzenia raportów i nie przedefiniowuje mechanizmu pobierania danych. Jeśli programista ręcznie kodował zapytania, musi dodać wywołanie metody recordLevelSecurity(true) dla tych tabel, w których konieczne jest włączenie ograniczenia dostępu do zapisu. Aby uzyskać szczegółowe informacje, zapoznaj się z Przewodnikiem programisty dla słowa kluczowego Zabezpieczenie poziomu rekordu.

    Otwarte zlecenia. Op! A zamówienia są wyświetlane dla wszystkich klientów. Czemu? Ale ponieważ zamówienia zawierają kody klientów, a nie samych klientów. Spróbuj przejść do głównej tabeli z klientami - nie będziesz mógł zobaczyć parametrów ukrytych klientów.


    Ogólnie rzecz biorąc, w prawdziwym życiu ustawienie ograniczenia poziomu uprawnień nie wystarczy, aby ustawić jedną tabelę. Z reguły powiązane ograniczenia muszą być nałożone na kilka powiązanych tabel.

    Prawa dostępu na poziomie rekordu działają nie tylko w formularzach i raportach, ale także na listach rozwijanych. Otwórz zamówienie i kliknij przycisk listy rozwijanej u klienta. Tak, wszystko się zgadza. Test użytkownika widzi tylko innych klientów.

    RLS dla wielu grup

    Rozważmy teraz sytuację, w której musisz utworzyć kilka różnych grup z różnymi prawami iz różnymi ograniczeniami praw.

    Załóżmy, że jedna grupa menedżerów ma dostęp do innych klientów (grupa klientów = Prh), a inna grupa menedżerów ma dostęp do klientów ogólnych (grupa klientów = T&U). Utworzyliśmy już pierwszą grupę. Pozostaje założyć drugą grupę.

    Powtórz kroki 8-10. Wystarczy ustawić pełne uprawnienia grupy tstGroup2 do modułu Rozrachunki z odbiorcami i określić „Regulamin” jako kryterium w ustawieniu RLS dla grupy tstGroup2.

    Aby to sprawdzić, zaloguj się do Axapta pod użytkownikiem Test i upewnij się, że formularze i raporty działają poprawnie, upewnij się, że masz pełne prawa do klientów i możesz edytować parametry klienta.

    Co się stanie, jeśli klient dokona zmiany grupowej? W formularzu klient będzie widoczny do momentu opuszczenia ekranu formularza. Gdy tylko Aksapta ponownie odczyta dane z serwera, RLS zacznie działać, a menedżer nie będzie już widział „obcego” klienta.

    Ten przykład ponownie pokazuje, że prawa muszą być konfigurowane w złożony sposób. W takiej sytuacji można uniemożliwić menedżerom edytowanie pola grupy klientów lub ustawić ograniczenie na poziomie rekordu (RLS) w tabeli z grupami.

    Aby umożliwić niektórym użytkownikom dostęp do całej listy klientów, należy nadać trzeciej grupie prawa do tabeli klientów, ale nie należy konfigurować RLS. Axapta sprawdza normalne uprawnienia. A jeśli istnieje prawo dostępu, sprawdza ustawienia RLS. Jeśli nie ma ustawień RLS dla tej grupy i tej tabeli, Axapta wyświetla wszystkie wpisy z tabeli.

    Zauważ, że grupa tstGroup3 nie wpłynęła na zachowanie RLS, o ile nie miała uprawnień do tabeli klienta. Gdy tylko w tej grupie pojawiło się prawo do klientów, ta grupa natychmiast zaczęła brać udział w RLS. Aby przetestować tę tezę, usuń uprawnienia do modułu Rozrachunki z odbiorcami w grupie tstGroup2 i sprawdź RLS dla klienta testowego. Zobaczysz tylko innych klientów.

    Konstruktor ograniczeń umożliwia tworzenie ograniczeń dostępu na poziomie rekordów i pól w bazie danych. Lista ograniczeń jest dostępna od menu kontekstowe gałęzie Roles drzewa konfiguracyjnego; Konstruktor jest wywoływany po dodaniu nowego ograniczenia (przycisk Dalej) lub edycję istniejącego:

    Aby wywołać konstruktora podczas tworzenia nowego ograniczenia, kliknij przycisk Konstruktor zapytania:

    Język konstrukcji ograniczeń jest podobny do języka zapytań, podobnie jak konstruktor. W nim możesz zdefiniować jedną lub więcej powiązanych tabel, na których zostaną ustawione ograniczenia:

    Samo ograniczenie jest również formułowane jako tekst zapytania:

    Pytanie 04.51 z egzaminu 1C: Platforma zawodowa. W konstruktorze ograniczeń dostępu do danych:

    1. Możesz używać tylko pól obiektu, dla którego zdefiniowano ograniczenie
    2. Można korzystać tylko z pól obiektu, dla których zdefiniowano ograniczenie oraz pól tabel zagnieżdżonych (w stosunku do pól obiektu)
    3. Dowolne tabele, które można połączyć w zapytaniu z polami obiektu, dla którego definiowane jest ograniczenie

    Prawidłowa odpowiedź to trzecia. Jeżeli w konstruktorze określonych jest kilka tabel z danymi, to pojawia się w nim zakładka Relacje:

    W którym możesz określić ograniczenia związane z innymi tabelami:

    Pytanie 04.52 z egzaminu 1C: Platforma zawodowa. Podczas definiowania ograniczenia dostępu w konstruktorze ograniczeń dostępu do danych...

    1. tekst żądania może zostać wygenerowany tylko przez samego konstruktora
    2. tekst żądania można wprowadzić tylko ręcznie
    3. tekst żądania może być generowany zarówno przez sam konstruktor, jak i ręcznie

    Prawidłowa odpowiedź to trzecia - możesz użyć konstruktora, możesz ręcznie.

    Pytanie 04.53 z egzaminu 1C: Platforma zawodowa. Definiując ograniczenie dostępu w konstruktorze ograniczeń dostępu do danych:

    1. Reguła ograniczenia jest zdefiniowana tylko w zakładce „Linki”
    2. Reguła ograniczeń jest zdefiniowana tylko w zakładce „Warunki”
    3. Ustawienia dokonane na obu zakładkach konstruktora mają wpływ na określenie warunków dostępu do danych

    Prawidłowa odpowiedź to trzecia, obie zakładki są potrzebne, inaczej po co by miały.

    Pytanie 04.54 z egzaminu 1C: Platforma zawodowa. Podczas definiowania ograniczenia dostępu w konstruktorze ograniczenia dostępu do danych tekst warunku:

    1. Rozpoczyna się słowem kluczowym „Wybierz”
    2. Zaczyna się tylko od konstrukcji „Wybierz inny”
    3. Rozpoczyna się tylko od konstrukcji „Wybierz dozwolone”
    4. Słowo kluczowe „Wybierz” nie jest zdefiniowane
    5. Opcje 1 i 3 są dozwolone

    Prawidłowa odpowiedź to czwarta odpowiedź - w przeciwieństwie do języka zapytań, słowa Select nie ma tutaj.

    Pytanie 07.01 egzaminu 1C: Platforma zawodowa. Podczas ustawiania ograniczeń dostępu do danych można ustawić kilka (wg liczby pól) ograniczeń:

    1. Aby uzyskać uprawnienie „Odczyt”
    2. O prawo do „Zmiany”
    3. Dla prawa „Dodaj”
    4. Dla właściwego „Usuń”
    5. Dla wszystkich powyższych praw
    6. Za wszystkie możliwe prawa