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