Ограничения за достъп до данни в 1c роли. Използване на RLS

Как да конфигурирате права за достъп в 1C 8.3?

В тази статия ще разгледаме как да работим с потребители в 1C Accounting 8.3:

  • създайте нов потребител
  • конфигуриране на права - профили, роли и групи за достъп
  • как да конфигурирате ограничение на правата на ниво запис (RLS) в 1C 8.3 - например по организация

Инструкциите са подходящи не само за счетоводната програма, но и за много други, изградени на базата на BSP 2.x: 1C Trade Management 11, Salary and Personnel Management 3.0, ERP 2.0, Small Firm Management и други.

В интерфейса на програмата 1C управлението на потребителите се извършва в раздела „Администриране“, в елемента „Настройване на потребители и права“:

Как да създадете нов потребител в 1C

За да създадете нов потребител в 1C Accounting 3.0 и да му зададете определени права за достъп, в менюто „Администрация“ има елемент „Настройки на потребителя и правата“. Хайде да отидем там:

Списъкът с потребители се управлява в секцията „Потребители“. Тук можете да създадете нов потребител (или група потребители) или да редактирате съществуващ. Само потребител с администраторски права може да управлява списъка с потребители.

Нека създадем потребителска група, наречена „Счетоводство“, и в нея ще има двама потребители: „Счетоводител 1“ и „Счетоводител 2“.

За да създадете група, щракнете върху бутона, маркиран на фигурата по-горе, и въведете име. Ако в информационната база има други потребители, които са подходящи за ролята на счетоводител, можете веднага да ги добавите към групата. В нашия пример няма такива, затова кликваме върху „Запис и затваряне“.

Сега нека създадем потребители. Поставете курсора върху нашата група и щракнете върху бутона „Създаване“:

В пълното име ще въведем „Счетоводител 1“, а името за вход ще бъде зададено на „Счетоводител1“ (това ще се показва при влизане в програмата). Паролата ще бъде „1“.

Не забравяйте да се уверите, че квадратчетата „Влизане в програмата е разрешено“ и „Показване в списъка за избор“ са отметнати, в противен случай потребителят няма да се види по време на оторизация.

Оставете „Режим на стартиране“ като „Автоматично“.

Настройка на права за достъп - роли, профили

Сега трябва да посочите „Права за достъп“ за този потребител. Но първо трябва да го запишете, в противен случай ще се появи предупредителен прозорец, както е показано на снимката по-горе. Щракнете върху „Запис“, след това върху „Права за достъп“:

Изберете профил Счетоводител. Този профил е стандартен и конфигуриран с основните права, изисквани от счетоводителя. Кликнете върху „Запис“ и затворете прозореца.

В прозореца „Потребител (създаване)“ щракнете върху „Запазване и затваряне“. Създаваме и втори счетоводител. Уверяваме се, че потребителите са активирани и могат да работят:

Трябва да се отбележи, че един и същи потребител може да принадлежи към няколко групи.

Избрахме права за достъп за счетоводители от тези, които бяха включени в програмата по подразбиране. Но има ситуации, когато е необходимо да се добави или премахне някакво право. За да направите това, е възможно да създадете свой собствен профил с набор от необходими права за достъп.

Нека отидем в раздела „Профили на групи за достъп“.

Да кажем, че трябва да позволим на нашите счетоводители да видят записа в дневника.

Създаването на профил от нулата е доста трудоемко, така че нека копираме профила на „Счетоводител“:

И нека направим необходимите промени в него - добавете ролята „Преглед на дневника“:

Нека да дадем друго име на новия профил. Например „Счетоводител с добавки“. И поставете отметка в квадратчето „Преглед на регистъра на регистрацията“.

Сега трябва да променим профила на потребителите, които създадохме по-рано.

Ограничаване на правата на ниво запис в 1C 8.3 (RLS)

Нека да разберем какво означава ограничаване на правата на ниво запис или както го наричат ​​в 1C - RLS (защита на нивото на запис). За да получите тази възможност, трябва да поставите отметка в съответното поле:

Програмата ще изисква потвърждение на действието и ще ви информира, че такива настройки могат значително да забавят системата. Често е необходимо някои потребители да не виждат документи на определени организации. Точно за такива случаи има настройка за достъп на ниво запис.

Отиваме отново в раздела за управление на профили, щракнете двукратно върху профила „Счетоводител с добавки“ и отидете в раздела „Ограничения за достъп“:

„Тип достъп“ изберете „Организации“, „Стойности на достъп“ изберете „Всички разрешени, изключенията се присвояват в групи за достъп“. Кликнете върху „Запазване и затваряне“.

Сега се връщаме в секцията „Потребители“ и избираме например потребителя „Счетоводител 1“. Щракнете върху бутона „Права за достъп“:

Чрез бутона „Добави“ изберете организацията, чиито данни ще се виждат от „Счетоводител 1“.

Забележка! Използването на механизъм за разделяне на правата на ниво запис може да повлияе на работата на програмата като цяло. Забележка за програмиста: същността на RLS е, че системата 1C добавя допълнително условие към всяка заявка, като изисква информация дали потребителят има право да чете тази информация.

Други настройки

Разделите „Настройки за копиране“ и „Настройки за изчистване“ не предизвикват въпроси; Това са настройки за външния вид на програмата и отчетите. Например, ако сте настроили красив външен вид за директорията „Номенклатура“, той може да бъде копиран на други потребители.

В секцията „Потребителски настройки“ можете да промените външния вид на програмата и да направите допълнителни настройки за по-лесно използване.

Квадратчето „Разрешаване на достъп до външни потребители“ ви позволява да добавяте и конфигурирате външни потребители. Например, искате да организирате онлайн магазин, базиран на 1C. Клиентите на магазина ще бъдат външни потребители. Правата за достъп се конфигурират по същия начин като обикновените потребители.

По материали от: programmist1s.ru

Всички настройки на потребителските права, които ще направим в рамките на тази статия, се намират в раздел 1C 8.3 „Администриране“ - „Настройки на потребител и права“. Този алгоритъм е подобен в повечето конфигурации на управлявани формуляри. Програмата 1C Accounting ще бъде използвана като пример, но настройката на правата в други програми (1C UT 11, 1C ZUP 3, 1C ERP) се извършва по абсолютно същия начин.

Нека отидем в секцията „Потребители“ на прозореца с настройки. Тук виждаме две хипервръзки: „Потребители“ и „Настройки за влизане“. Първият от тях ви позволява да отидете директно до списъка с потребители на тази информационна база. Преди да създадете нов потребител, нека разгледаме възможните настройки за влизане (хипервръзка вдясно).

В тази форма за настройки можете да конфигурирате сложността на паролата (най-малко 7 знака, задължително съдържание от различни типове знаци и т.н.). Можете също така да посочите дължината на паролата, нейния период на валидност и да забраните на потребителите да влизат в програмата, ако не са били активни за определен период от време.

Сега можете да продължите директно към добавяне на нов потребител към 1C. Това може да стане, като щракнете върху бутона „Създаване“, както е показано на изображението по-долу.

На първо място, ще посочим пълното име - „Дмитрий Петрович Антонов“ и ще изберем физическо лице от съответната директория. Тук можете да посочите и отдела, в който работи наш служител.

Името за вход „AntonovDP“ автоматично беше заменено с абревиатура на пълното име „Дмитрий Петрович Антонов“. Нека да настроим парола и удостоверяване на 1C Enterprise. Тук можете също да посочите дали този потребител може да промени паролата си независимо.

Да кажем, че искаме Дмитрий Петрович Антонов да бъде наличен в списъка за избор при стартиране на тази информационна база. За да направите това, трябва да поставите отметка в квадратчето до елемента „Показване в списъка за избор“. В резултат на това прозорецът за оторизация при стартиране на програмата ще изглежда както е показано на фигурата по-долу.

Нека обърнем внимание на друга важна настройка в картата на потребителския указател - „Входът в програмата е разрешен“. Ако забавянето не е зададено, тогава потребителят просто няма да може да влезе в тази информационна база.

Права за достъп

След като попълним всички данни в потребителската карта - Дмитрий Петрович Антонов, ще ги запишем и ще преминем към настройка на правата за достъп, както е показано на фигурата по-долу.

Пред нас се отвори списък с профили за достъп, въведени преди това в програмата. Поставете отметки в квадратчетата, които са задължителни.

Достъп до групови профили

Профилите на групата за достъп могат да бъдат конфигурирани от главния потребител и формата за настройка на правата. Отидете в секцията „Групи за достъп“ и щракнете върху хипервръзката „Профили на групи за достъп“.

Нека създадем нова група от формата със списък, която се отваря. В табличния раздел на раздела „Разрешени действия (роли)“ поставете отметки в квадратчетата за онези роли, които ще повлияят на правата за достъп на потребителите, включени в групата, която създаваме. Всички тези роли се създават и конфигурират в конфигуратора. Те не могат да се променят или да се създават нови от потребителски режим. Можете да избирате само от съществуващия списък.

RLS: Ограничение за достъп на ниво запис

Позволява ви по-гъвкаво да конфигурирате достъпа до програмни данни в определени области. За да го активирате, поставете отметка в квадратчето със същото име във формата за настройки на потребителя и правата.

Моля, обърнете внимание, че активирането на тази настройка може да повлияе неблагоприятно на производителността на системата. Въпросът е, че механизмът RLS променя всички заявки в зависимост от установените ограничения.

Нека отидем на профила на групата за достъп „Тестова група“, който създадохме по-рано. Фигурата по-долу показва, че след активиране на ограниченията за достъп на ниво запис се появява допълнителен раздел „Ограничения за достъп“.

Да кажем, че искаме потребителите, присвоени на тестова група, да имат достъп до данни за всички организации в тази информационна база, с изключение на тези, посочени в профила.

В горната таблична част ще зададем ограничения за достъп по организации. В долната част ще изясним, че достъп до данни (документи, директории и др.) няма да бъде предоставен на организацията „Roga LLC“.

Настройка на достъпа на ниво вход в директорията.

Тази настройка беше включена в конфигурацията не толкова отдавна, аз лично смятам, че настройката е много полезна.

Тази настройка е необходима за тези, които трябва да ограничат достъпа до директорията чрез елементи от тази директория. Например, мениджърът трябва да вижда само клиенти, както и отчети и регистрационни файлове на документи, само за контрагентите, до които има достъп, а счетоводителят трябва да има пълен достъп до всички елементи на директорията, например „Контрагенти. ”

Предлагам да разгледаме пример, използвайки примера на конфигурацията на мекия стартер.

  1. На този етап е необходимо да се определи набор от потребителски групи.

Администратори;

Мениджъри продажби;

Мениджъри покупки;

  1. На втория етап се определят групите за достъп до директорията.

Купувачи;

Доставчици;

Обикновено гореописаните списъци с групи се обсъждат с ръководството и едва след това се въвеждат в програмата.

Сега е необходимо да опишем действителните настройки, които трябва да се извършат в 1C.

  1. Нека активираме „Ограничен достъп на ниво запис“. Услуга - управление на потребители и достъп - Параметри за достъп на ниво запис. Вижте фиг. 1.

Ще се отвори формулярът за обработка „Параметри за достъп на ниво запис“, вижте Фиг. 2.

В този формуляр трябва действително да активирате ограничението, за което отговаря флагът „Ограничаване на достъпа на ниво запис по тип обект“ и да изберете онези директории, за които ще се прилага ограничението. Тази статия разглежда само директорията „Контрагенти“.

  1. След това ще ни трябват онези групи потребители и контрагенти, които бяха определени в началото на статията.

Групите изпълнители се въвеждат в директорията „Потребителски групи“, вижте Фиг. 3.

Ще се отвори формата на елемента на директорията „Потребителски групи“, вижте фиг. 4.

От лявата страна на прозореца е посочен обектът за достъп (за нас това са „контрагенти“), отдясно са потребителите, които са членове на групата, в този пример това са „Администратори“.

За всяка потребителска група, която дефинирате, трябва да завършите тази настройка; не трябва да остава нито един потребител, който да не е член на групата.

  1. В третата стъпка трябва да въведете „групи за достъп на контрагента“; за това отговаря директорията „Групи за достъп на контрагента“. Вижте фиг. 5.

За нашия пример това са: Купувачи, Доставчици, Други. Вижте фиг. 6.

  1. На този етап трябва да зададете група за достъп на всеки елемент от директорията „контрагенти“. Вижте фиг. 7.

Групата за достъп на контрагента се задава в раздела „други“. Обикновено използвам спомагателна стандартна обработка, за да присвоя данни на групи. „Групова обработка на директории и документи“, ви позволява масово да зададете желаната група за този детайл.

  1. Този етап е кулминационният етап. На този етап се конфигурира достъпът на „потребителски групи“ до „групи за достъп на контрагенти“; това се конфигурира с помощта на обработката „Задаване на права за достъп на ниво запис“, вижте фиг. 8.

Връзката на потребителските групи с групите за достъп на контрагентите е подчертана в червено. За групите „Мениджъри покупки“ и „Мениджъри продажби“ връзките са конфигурирани по абсолютно същия начин, само обектите за достъп са посочени като тези, до които трябва да имат достъп, например само „Доставчици“ или само „Купувачи“. Флагове, например „Видимост в списъка“ са правата на „Обект за достъп“. От името мисля, че функционалността на тези права е ясна.

След горепосочените манипулации трябва да имате ограничен достъп до директория „Контрагенти“.

Останалите директории са конфигурирани по подобен начин.

Важно:

Ограниченият достъп не се прилага за ролята „Пълни права“;

Наборът от потребителски роли трябва да съдържа ролята „Потребител“;

Ако имате свои собствени роли, тогава трябва да вмъкнете шаблони и ограничения във вашата роля като в ролята „Потребител“ по отношение на директорията „Контрагенти“ (вижте кода в ролята на потребител, като щракнете върху директорията на контрагентите).

1C има вградена система за права за достъп (тази система се нарича 1C роли). Тази система е статична - както администраторът е дал права на 1C, така ще бъде.

Освен това има система за динамични права за достъп (наречена RLS 1C). В него правата на 1C се изчисляват динамично, докато потребителят работи въз основа на зададените параметри.

Една от най-често срещаните настройки за сигурност в различни програми е набор от разрешения за четене/запис за потребителски групи и след това включване или изключване на потребител от групи. Например подобна система се използва в Windows AD (Active Directory).

Такава система за сигурност в 1C се нарича 1C Roles. Ролите на 1C се намират в конфигурацията в клона Общи/Роли. 1C ролите действат като групи, за които са присвоени 1C права. След това потребителят се включва или изключва от тази група.

Чрез двукратно щракване върху името на ролята 1C ще се отвори редакторът на правата за ролята 1C. Отляво има списък с 1C обекти. Изберете който и да е и вдясно ще се покажат опции за права за достъп (най-малко: четене, добавяне, промяна, изтриване).

За горния клон (име на текущата конфигурация) се установяват административни права на 1C и достъп до стартиране на различни опции.

Всички права на 1C са разделени на две групи - „просто“ право и същото право с добавяне на „интерактивно“. Какво означава?

Когато потребителят отвори формуляр (например обработка) и натисне бутон върху него, програмата на вградения език 1C извършва определени действия, например изтриване на документи. „Просто“ правата на 1C са отговорни за разрешаването на тези действия (извършвани програмно).

Когато потребителят отвори дневник и започне да прави нещо самостоятелно с помощта на клавиатурата (например въвеждане на нови документи), това са „интерактивни“ 1C права.

Един потребител може да има достъп до няколко роли, като в този случай разрешенията са кумулативни.

Разбивка на възможностите за задаване на права за достъп с помощта на роли – 1C обект. Тоест можете или да активирате достъпа до директорията, или да го деактивирате. Не можете да го включите малко.

За тази цел има разширение на ролевата система 1C, наречено 1C RLS. Това е динамична система за права за достъп, която ви позволява частично да ограничите достъпа. Например, потребителят вижда само документи за определен склад и организация и не вижда останалите.

Внимателно! Когато използвате объркваща схема RLS 1C, различни потребители може да имат въпроси, когато се опитват да съпоставят един и същ отчет, генериран от различни потребители.

Вземате определена директория (напр. организации) и определено право (напр. четене). Разрешавате четене за ролята 1C. В панела за ограничаване на достъпа до данни задавате текста на заявката, който връща TRUE или FALSE в зависимост от настройките. Настройките обикновено се съхраняват в информационен регистър (например конфигурационен информационен регистър за счетоводство и настройки за потребителски права за достъп).

Тази заявка се изпълнява динамично (когато се опитвате да реализирате четене) за всеки запис в директория. По този начин, за онези записи, за които заявката за защита е върнала TRUE, потребителят ще ги види, но останалите не.
Правата на 1C, които са предмет на ограничения на RLS 1C, са маркирани в сиво.

Копирането на същите настройки на RLS 1C се извършва с помощта на шаблони. Създавате шаблон, наричате го (например) MyTemplate и указвате заявката за сигурност в него. След това в настройките за права за достъп до 1C посочете името на шаблона по следния начин: „#MyTemplate“.

Когато потребител работи в режим 1C Enterprise, когато работи с RLS 1C, той може да получи съобщение за грешка „Недостатъчни права“ (например за четене на директорията Xxxx).

Това означава, че RLS 1C е блокирал четенето на няколко записа.

За да предотвратите появата на такова съобщение, е необходимо да използвате думата ALLOWED () в текста на заявката на вградения език 1C.

Например:

Осмата версия на платформата 1C:Enterprise (днес 8.3) пренесе много промени по отношение на „седемте“, сред които механизмът за ограничаване на правата за достъп на ниво запис беше особено забележим. Въпреки факта, че теоретично е възможно да се направи без него, като се използват само роли, RLS ви позволява да постигнете по-фини настройки за достъп. Но за да работите правилно с този механизъм, трябва ясно да разберете неговата същност и да имате достатъчно опит в разработката в 1C.

Какво е RLS?

Същността на тази функционалност е способността на разработчика да попречи на конкретен потребител или група потребители да имат достъп до таблици или полета от таблици на база данни. Обикновено ограниченията се използват, за да попречат на потребителите на 1C да виждат и редактират поверителна, секретна информация, например ограничаване на служителите на компания, включена в група, да преглеждат документи само за тяхната организация. Също така, механизмът за ограничаване на правата за достъп на ниво запис може да се използва за премахване на ненужна информация от интерфейса.

За да можете да пишете заявки за RLS ограничения, трябва да създадете роля или да вземете съществуваща. Настройката на RLS в 1C 8.3 може да се използва за следните потребителски действия:

  • Добавяне;
  • четене;
  • Изтрий;
  • промяна.

В допълнение към най-широките възможности за персонализиране на достъпа, RLS има и недостатъци:

  1. Изисквания за квалификацията на разработчика, тъй като заявката трябва да бъде написана на вграден език, като се вземат предвид правилата на синтаксиса;
  2. Липса на възможност за бързо отстраняване на грешки в условията;
  3. Ограничени възможности за описание на логиката: твърде сложните условия все пак ще трябва да бъдат записани в модули от документи и справочници;
  4. Във версията клиент-сървър на базата данни е възможно имплицитно нарастване на таблиците, включени в заявката. Освен това е много трудно да се проследи този процес;
  5. Изисквания за ресурси. RLS ограниченията консумират много енергия на клиентската машина и сървъра;
  6. Малко документация е свободно достъпна.

Друг проблем, който може да възникне след настройката на 1C RLS, могат да бъдат отчетите. Факт е, че разработчиците предвиждат възможни RLS ограничения и създават отчети по такъв начин, че да показват само разрешени данни. Ако потребителите имат различни конфигурирани RLS ограничения, тогава данните в отчета за едни и същи параметри може да са различни. Това може да повдигне въпроси, така че трябва да вземете предвид тези ситуации, когато проектирате отчети или пишете заявки в RLS.

Създайте RLS ограничение

За да добавите RLS ограничение, трябва да намерите желаната роля и да я отворите с двукратно щракване.

Прозорецът, който се отваря, съдържа 2 раздела: „Права“ и „Шаблони за ограничаване“. За да наложите определени ограничения върху конкретно действие, трябва да го изберете и да кликнете върху зеления плюс в долната дясна част. Ще се появи ред, в който можем да зададем ограничения на 1C RLS на езика, вграден в 1C.


Ако знаете синтаксиса на 1C (като опакото на ръката си), тогава можете да пишете директно в полето „Ограничение на достъпа“. Разработчиците на 1C предоставиха възможност за отваряне на конструктор на заявки, който ще помогне и ще предложи какви ограничения могат да бъдат направени. За да го отворите, трябва да кликнете върху бутона с три точки (Select) или F4 и ще се появи прозорец с бутона “Query Designer...”.


В прозореца, който се показва, можете да конфигурирате ограничения не само за тази директория, но и за други системни обекти. За да направите това, трябва да ги добавите в раздела „Таблици и полета“. Регистрираме ограничения в полетата на директорията „Номенклатура“ и щракнете върху „OK“. Внимавайте за имената на променливите: RLS параметрите се задават в началото на потребителската сесия и трябва да се съдържат в обекта на метаданни.


В раздела „Шаблони на ограничения“ посочвате заявки, които са необходими при копиране на същите RLS настройки в 1C 8.3. След като добавите своя шаблон, можете да използвате името му в настройките за права за достъп.

Също така е възможно едновременно да се добавят ограничения към няколко роли. За да направите това, в конфигурационното дърво трябва да щракнете с десния бутон върху секцията „Роли“ и да изберете „Всички роли“.


Като заключение бих искал да отбележа, че тази статия е насочена към консултанти за разработчици на 1C и може да помогне предимно на тези, които вече имат опит в разработката на 1C:Enterprise. Въпреки привидната си простота, познаването на семантиката и разбирането на структурата на бизнес процесите на собственото предприятие или организацията на клиента за правилното разпределение на правата изисква определено ниво на знания и опит.



Дял