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