Однажды мы обсуждали механизмы ограничения доступа пользователей в 1С и в частности механизм RLS.
Он позволяет разрешить пользователю работать не со всеми документами, а только с теми, в которых указана определенная организация или склад. Отборы производятся динамически, поэтому накладывают определенную нагрузку на работу базы данных.
Общие реквизиты 1С, которые мы с Вами также обсуждали недавно, кроме того, что они являются общими для нескольких документов, реализуют новый механизм безопасности в 1С под названием — разделение данных 1С.
Поговорим об этом подробнее.
Разделение данных 1С
Разделение данных 1С – это механизм аналогичный RLS, организованный на другом принципе работы. Если RLS – это дополнение запросов к SQL условиями, ограничивающими список данных, то разделение данных – это SQL запросы к таблицам, в которых уже заранее отобраны данные.
С помощью разделения данных 1С возможно организовать работу пользователей в разных подразделениях, когда в одной информационной базе будет несколько виртуальных баз со своими данными и своими пользователями.
Возможные режимы работы (в одной физической базе данных):
- Полностью изолированные базы
- Изолированные базы, но с едиными справочниками
- Для определенных пользователей можно дать возможность видеть все данные.
Принцип работы:
- Создается общий реквизит
- С помощью свойства общего реквизита Состав определяются список справочников и данных, которые будут разделены
- В параметре сеанса указывается значение по которому фильтруются данные, в общем реквизите, в каждом справочнике, документе, регистре указанном в составе.
Включаем разделение данных 1С
Добавим общий реквизит Склад.
В свойствах общего реквизита укажем Состав – все документы, у которых есть реквизит Склад.
Свойство Разделение данных – Разделять. При включении свойства 1С предложит создать два параметра сеанса (см. далее).
Значение разделения данных 1С – параметр сеанса с типом равным типу общего реквизита. В данном параметре сеанса будет установлено значение, которое определит фильтр.
Использование разделения данных 1С – параметр сеанса с типом булево, в нем будет включено или выключено разделение данных 1С для данного сеанса.
Использовать разделение данных 1С — Независимо. Это значит, что база будет полностью и окончательно разделена и все пользователи в ней работают в своей области вне зависимости от дальнейших настроек, и даже идентификаторы (GUID) в разных областях одной базы могут быть одинаковы.
Значение общего реквизита-разделителя при этом в момент записи разделяемого справочника и документа устанавливается системой автоматически и поменять его нельзя.
Использовать разделение данных 1С – Независимо и совместно. Это управляемый режим, в котором подразумевается, что одна база может работать в разных режимах и пользователи могут работать в режиме, когда видят всю информацию без ограничений, в зависимости от настроек.
Использовать общий реквизит на формы можно только в режиме Независимо и совместно, так как в режиме Независимо его значение устанавливается системой автоматически по текущему значению параметра сеанса.
Особенности разделения данных 1С для администрирования
Если мы хотим организовать в одной физической базе несколько виртуальных, то требуется изменения в администрировании пользователей .
Свойство общего реквизита-разделителя – Разделение пользователей 1С – позволяет установить доступность списка пользователей в зависимости от использования разделителей.
Если разделитель включен для пользователя, то он будет виден в списке пользователей в режиме 1С Предприятие – иначе не виден.
Таким образом можно организовать различные списки пользователей для различных частей базы.
Свойство общего реквизита-разделителя – Разделение аутентификации 1С – позволяет заводить пользователей с одинаковыми именами пользователя для разных частей базы.
Условное разделение 1С
Условное разделение 1С позволяет включать и отключать разделитель на основании данных базы. Таким образом можно создавать цепочки зависимых друг от друга разделителей динамически действующих в том или ином случае.
Чтобы включить условное разделение 1С – нужно указать в свойстве общего реквизита-разделителя – Условное разделение 1С – объект 1С, который будет отвечать за определение факта включения разделения 1С.
Возможно использовать константу с типом булево или реквизит справочника с типом булево.
Важно – у этой константы/этого справочника нужно отключить использование (выбрать Не использовать) в составе разделителей, только тогда его можно будет выбрать.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.