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