При настройке прав пользователей в программах 1С (таких как 1С:Управление торговлей, 1С:ERP, 1С:Комплексная автоматизация) часто возникает идея: взять роль ПолныеПрава, скопировать её в конфигураторе, отключить несколько ненужных прав и включить механизм RLS (Record Level Security — ограничение доступа на уровне записей) в пользовательском режиме. Однако после назначения такой роли пользователь продолжает видеть абсолютно все документы, склады и организации без каких-либо ограничений. Выясним причину такого поведения платформы и разберем, как правильно реализовать разграничение доступа.
Для понимания проблемы проанализируем базовый механизм проверки прав доступа платформы 1С:Предприятие 8:
ПолныеПрава предназначена исключительно для системных администраторов. В ней для всех объектов метаданных (справочники, документы, регистры) установлены полные права без использования шаблонов RLS.ПолныеПрава, мы переносим в новую роль те же самые безусловные разрешения. Даже если в пользовательском режиме для группы пользователей задать ограничение по конкретному складу или организации, платформа обращается к скопированной роли, видит прямое разрешение на чтение без ограничений и открывает доступ ко всем данным.Рассмотрим распространенную ситуацию: администратор не копирует роль ПолныеПрава, а собирает собственный профиль групп доступа в пользовательском режиме, включая туда множество предопределенных ролей. При этом ограничение (например, видимость только одного склада) все равно срабатывает не полностью — остатки ограничиваются, но в форме списка видны все элементы справочника.
Разберем причины этой проблемы:
В типовых конфигурациях 1С не требуется создавать универсальные роли в конфигураторе. Архитектура БСП рассчитана на модульную сборку прав через Профили групп доступа. Разберем по шагам, как правильно настроить ограничения:
Менеджер по продажам или Кладовщик), а не профиль администратора.Склады, Организации или Группы партнеров, выбрав вариант Все запрещены, кроме указанных.Обновление доступа на уровне записей выполнено успешно. При необходимости можно открыть обработку Управление доступом и запустить принудительное обновление ключей доступа.Если после настройки профиля пользователь все еще видит лишние объекты, необходимо выяснить, какая именно роль дает безусловный доступ. Воспользуемся встроенными инструментами диагностики:
Склады).Чтение, Изменение и отметками наличия условий RLS.Чтение, но отсутствует отметка об ограничении доступа, и исключим ее из профиля пользователя.Если специфика доработки конфигурации действительно требует создания новой роли в конфигураторе, шаблоны RLS необходимо прописать вручную для каждого защищаемого объекта. Рассмотрим последовательность действий:
ПоЗначениям или ПоЗначениямРасширенный.Контрагенты или Склады).Чтение. В нижней части окна в поле Ограничение доступа к данным добавим вызов шаблона ограничения:
#ПоЗначениям( "Справочник.Склады","Чтение","",
"Склады","Ссылка",
"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","" )
Добавление, Изменение и Удаление.Таким образом, для корректной работы ограничений на уровне записей необходимо исключить любые роли с безусловным доступом и использовать типовой механизм профилей БСП с правильно рассчитанными ключами доступа.