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