Разработка и Конфигурация · 10 мин
Как добавить роли в расширение 1С
Разбираем, как добавить роли в расширение конфигурации 1С, зачем это нужно, какие ограничения существуют и как проверить права доступа после обновления.
Расширение конфигурации в 1С позволяет не только изменять формы, модули и макеты, но и работать с ролями. Это нужно, когда доработка добавляет новые объекты — документы, справочники, регистры — и доступ к ним надо раздать пользователям без изменения основной конфигурации. Без собственных ролей новые объекты расширения либо окажутся недоступны обычным пользователям, либо придётся править типовые роли, что грозит потерей изменений при обновлении.
Механика добавления ролей в расширение отличается от работы в основной конфигурации. Расширение может содержать собственные роли, а также заимствовать типовые роли и дополнять их правами на новые объекты. При этом есть ограничения: нельзя изменять права заимствованной роли на объекты основной конфигурации — только добавлять права на объекты, пришедшие из расширения.
Ниже разобран полный порядок действий: от создания роли в конфигураторе до проверки прав в пользовательском режиме. Инструкция применима к конфигурациям на управляемых формах с поддержкой расширений (режим совместимости не ниже 8.3.11, на практике обычно выше).
Когда роли нужно добавлять именно в расширение
Собственная роль в расширении оправдана в трёх типовых ситуациях. Первая — расширение добавляет новые объекты метаданных (справочник, документ, регистр сведений). Типовые роли про эти объекты ничего не знают, поэтому доступ к ним есть только у пользователя с полными правами. Вторая — нужно выделить отдельный уровень доступа для новой функциональности, например роль «Настройка обмена с сайтом» для доработанного обмена. Третья — требуется расширить типовую роль, дав ей права на новые объекты, не трогая основную конфигурацию.
Если же расширение лишь изменяет форму или модуль существующего объекта, отдельная роль обычно не нужна: права на сам объект уже настроены в типовой конфигурации. Добавление лишних ролей усложняет администрирование, поэтому перед созданием роли стоит ответить на вопрос: появился ли новый объект или новый сценарий доступа.
Как выбрать действие
Подготовка: создание и подключение расширения
Работа ведётся в конфигураторе. Откройте основную конфигурацию, затем перейдите в меню «Конфигурация — Расширения конфигурации». В открывшемся списке создайте новое расширение, задайте имя, префикс и синоним. Префикс важен: он будет автоматически добавляться к именам новых объектов расширения, включая роли, чтобы избежать конфликтов имён с основной конфигурацией и другими расширениями.
После создания расширение откроется в отдельном окне конфигурации. Все дальнейшие действия выполняются именно в этом окне, а не в окне основной конфигурации. Перед началом работ убедитесь, что свойство «Безопасный режим» и назначение расширения соответствуют задаче: для расширений, меняющих права, обычно снимают флаг безопасного режима только при реальной необходимости выполнения привилегированного кода.
Добавление собственной роли в расширение
В окне расширения найдите ветку «Общие — Роли». По умолчанию она пуста, потому что расширение изначально не содержит собственных объектов. Нажмите правой кнопкой мыши по ветке «Роли» и выберите «Добавить». Платформа создаст новую роль, имя которой автоматически начнётся с префикса расширения, например «Расш1_МенеджерПоПрайсам».
После создания роли откроется редактор прав. В левой части перечислены объекты конфигурации, в правой — права на выбранный объект. Отметьте нужные права: чтение, добавление, изменение, удаление, просмотр, интерактивные операции. Для регистров и документов отдельно настраиваются права на движения и проведение. Если в расширении есть подсистемы, включите новую роль в состав права «Просмотр» для соответствующих команд интерфейса.
Сохраните расширение и обновите конфигурацию базы данных (F7). Без обновления новая роль не появится в базе и её нельзя будет назначить пользователям.
- 1Откройте конфигуратор и меню «Конфигурация — Расширения конфигурации»
- 2Создайте расширение, задайте имя и префикс
- 3В окне расширения откройте ветку «Общие — Роли», нажмите «Добавить»
- 4В редакторе прав отметьте права на объекты расширения
- 5Сохраните расширение и обновите конфигурацию базы данных (F7)
- 6В режиме предприятия назначьте роль пользователям и проверьте доступ
Заимствование типовой роли и её дополнение
Если нужно, чтобы типовая роль (например, «Менеджер по продажам») получила доступ к новым объектам расширения, роль заимствуют. Для этого в ветке «Роли» окна расширения вызовите контекстное меню и выберите «Добавить из конфигурации» либо найдите нужную роль в основной конфигурации и перетащите её в окно расширения. Заимствованная роль появится в списке с пометкой о заимствовании.
Здесь действует ключевое ограничение платформы: в заимствованной роли можно добавлять права только на объекты, созданные в самом расширении. Изменить права на объекты основной конфигурации нельзя — соответствующие флажки будут недоступны. Это защищает типовую логику доступа от случайной поломки.
Если требуется изменить права типовой роли на типовые объекты, расширение для этого не подходит. Такие задачи решаются через профили групп доступа в режиме предприятия (в конфигурациях с БСП) или через доработку основной конфигурации со снятием с поддержки.
Назначение ролей пользователям
После обновления конфигурации базы данных роли расширения становятся доступны в списке пользователей. В конфигураторе откройте «Администрирование — Пользователи», выберите пользователя и на вкладке «Прочие» отметьте новую роль. В клиент-серверном варианте удобнее назначать роли в режиме предприятия через раздел администрирования пользователей.
В конфигурациях на базе Библиотеки стандартных подсистем прямое назначение ролей пользователю часто заменено профилями групп доступа. В этом случае создайте или скопируйте профиль, включите в него роль расширения (она появится в списке ролей профиля после обновления) и добавьте пользователей в группу доступа. Это правильный путь для типовых «Управление торговлей», «ERP», «Бухгалтерия» — прямое назначение ролей в обход профилей может быть проигнорировано механизмами БСП.
Удобно согласовать префикс ролей с префиксом объектов расширения. Тогда в списке ролей профиля доступа все роли расширения видны рядом, и администратору проще понять, что они пришли из доработки, а не из поставщика.
Проверка результата и типичные ошибки
Проверка выполняется в режиме предприятия под учётной записью пользователя без полных прав. Войдите под ним и убедитесь, что новые объекты открываются, документы проводятся, а лишние разделы не появились. Полезно проверить и обратную сторону: пользователь без новой роли не должен видеть объекты расширения.
Для быстрой диагностики можно использовать функцию «Все роли» в конфигураторе, чтобы сверить итоговый набор прав, а в режиме предприятия — отчёт «Права доступа» (в конфигурациях с БСП), который показывает, какие роли реально действуют у конкретного пользователя.
Как проверить результат
Объекты открываются, операции выполняются
Ошибка «Нарушение прав доступа» — роль не назначена или права не отмечены
Роль расширения присутствует и включена
Роли нет в списке — не выполнено обновление конфигурации базы данных
Расширение остаётся совместимым, роли работают
Расширение отключается — проверьте контроль совместимости в свойствах расширения
Ограничения и альтернативные подходы
Расширение не может удалить или ослабить права типовой роли, не может изменять ограничения доступа к данным (RLS) на уровне шаблонов типовых ролей и не гарантирует работу, если роль с таким именем появится в основной конфигурации при обновлении. Поэтому собственные роли всегда именуйте с префиксом расширения.
Альтернативы ролям в расширении: настройка прав через профили групп доступа без всяких расширений, если объекты типовые; доработка основной конфигурации, когда нужно менять права на типовые объекты; программная выдача прав через механизмы БСП в особых сценариях. Выбор зависит от того, что именно меняется — состав объектов или логика доступа к существующим.
Что важно запомнить
Собственные роли добавляются в ветку «Роли» окна расширения и настраиваются на объекты расширения. Типовые роли заимствуются и дополняются только правами на новые объекты. После обновления базы роли назначаются через пользователей или профили групп доступа, а результат проверяется под учётной записью без полных прав.
Частые вопросы
Можно ли в расширении изменить права типовой роли на типовые объекты?
Нет. Платформа позволяет в заимствованной роли добавлять права только на объекты, созданные в самом расширении. Для изменения прав на типовые объекты используйте профили групп доступа или доработку основной конфигурации.
Почему новая роль не видна в списке ролей пользователя?
Чаще всего не выполнено обновление конфигурации базы данных после сохранения расширения. Также проверьте, что расширение подключено к базе, активно и прошло контроль совместимости — отключённое расширение не передаёт свои роли.
Что произойдёт с ролями расширения при обновлении типовой конфигурации?
Собственные роли расширения обновление не затрагивает. Заимствованные роли получат изменения из новой версии типовой конфигурации, а добавленные вами права на объекты расширения сохранятся. Риск возникает только при смене режима совместимости или удалении заимствованных объектов.
Нужно ли добавлять роль, если расширение меняет только форму документа?
Нет. Права определяются объектом метаданных, а не его формой. Если объект типовой и права на него уже настроены, изменение формы или модуля в расширении не требует новых ролей.
Как дать доступ к новому регистру сведений из расширения только на чтение?
Создайте в расширении отдельную роль, отметьте для регистра права «Чтение» и «Просмотр», не включая «Добавление» и «Изменение». Назначьте эту роль нужным пользователям или профилю групп доступа и проверьте под их учётной записью, что запись в регистр недоступна.