К статье
Практический материал

Разработка и Конфигурация · 11 мин

Как скопировать роль в расширение 1С

Как скопировать роль из основной конфигурации 1С в расширение, настроить права и проверить результат. Пошаговая инструкция для разработчиков и администраторов.

Копирование роли в расширение — стандартный приём, когда нужно изменить права доступа в типовой конфигурации 1С, не снимая её с поддержки. Вместо правки основной конфигурации вы добавляете в расширение копию роли с тем же именем, корректируете права, и платформа применяет изменённые настройки поверх типовых. Это работает в конфигурациях на управляемых формах с поддержкой расширений (режим совместимости 8.3.6 и выше, практически — 8.3.11+ для полноценной работы с ролями).

Механизм прост: расширение «подменяет» роль основной конфигурации, если имя роли в расширении совпадает с именем роли в конфигурации. При этом важно понимать, что права из расширения объединяются с правами основной роли по правилам платформы — не всё можно переопределить, а некоторые изменения после обновления конфигурации потребуют ручной синхронизации.

Ниже разобран полный цикл: подготовка расширения, копирование роли, настройка прав, контроль результата и типичные ошибки. Инструкция ориентирована на конфигуратор 1С:Предприятие 8.3 и типовые конфигурации (БП, УТ, ERP, ЗУП), но подходит и для самописных решений.

Подготовка: когда роль нужно копировать в расширение

Копирование роли в расширение оправдано, когда типовые права не подходят: нужно добавить доступ к самописному документу, расширить права существующей роли (например, дать менеджерам право изменения дополнительного справочника) или, наоборот, создать урезанный вариант роли для отдельной группы пользователей. Если требуется только назначить пользователю другую комбинацию типовых ролей — расширение не нужно, достаточно настройки в разделе администрирования.

Перед началом убедитесь, что конфигурация поддерживает расширения: режим совместимости не ниже 8.3.6, а для изменения ролей желательно 8.3.11 и выше. Также проверьте, что у вас есть права на разработку расширений и что база не работает в режиме, где расширения отключены (например, в некоторых сервисных режимах или при запрете в настройках безопасности).

Обязательно сделайте резервную копию базы или хотя бы выгрузку .dt. Изменение ролей влияет на доступ пользователей: ошибка может заблокировать работу целого отдела или, наоборот, открыть лишние данные. Работайте сначала на копии базы, а в рабочую переносите проверенное расширение.

Создание расширения и добавление роли

Откройте конфигуратор, перейдите в меню «Конфигурация — Расширения конфигурации» и создайте новое расширение. Задайте имя, синоним и префикс — префикс важен, чтобы объекты расширения не конфликтовали с типовыми. Свойство «Безопасный режим» и «Защита от опасных действий» оставьте включёнными, если нет явной необходимости их снимать; назначение расширения обычно оставляют «Исправление» или «Адаптация» в зависимости от задачи.

Далее в дереве расширения найдите ветку «Роли». Способ добавления зависит от версии платформы. В современных версиях можно кликнуть правой кнопкой по ветке «Роли» и выбрать добавление, а затем в появившемся окне отметить нужную роль основной конфигурации — платформа создаст её копию в расширении с сохранением имени. В более старых версиях роль добавляется вручную: создаёте новую роль и задаёте ей имя, точно совпадающее с именем типовой роли.

Имя — ключевой момент. Если имя роли в расширении совпадает с именем роли в основной конфигурации, платформа считает её переопределением: права объединяются. Если имя отличается (например, с префиксом расширения), это будет новая самостоятельная роль, которую нужно отдельно назначать пользователям. Оба подхода рабочие, но решают разные задачи.

Порядок действий
  1. 1
    Сделайте резервную копию базы или работайте на тестовой копии
  2. 2
    Создайте расширение: Конфигурация — Расширения конфигурации — Создать
  3. 3
    Задайте имя, синоним и префикс расширения
  4. 4
    В ветке «Роли» расширения добавьте роль из основной конфигурации или создайте роль с точным именем типовой
  5. 5
    Настройте права в редакторе роли
  6. 6
    Сохраните расширение и обновите конфигурацию базы данных (F7)
  7. 7
    Проверьте права под тестовым пользователем

Настройка прав в скопированной роли

Откройте роль в расширении двойным щелчком — появится редактор прав. В левой части — список объектов конфигурации, в правой — права и шаблоны ограничения доступа (RLS). Отметьте нужные права: чтение, добавление, изменение, удаление, просмотр, интерактивные действия. Для новых объектов расширения (например, добавленного вами справочника) права можно выставить только в роли расширения — типовая роль о них не знает.

Учитывайте логику объединения: для большинства прав действует правило «или» — если право есть хотя бы в одной из ролей (типовой или из расширения), оно предоставляется. Это значит, что через расширение легко добавить права, но нельзя надёжно отнять право, которое явно установлено в типовой роли. Для запретов обычно используют другие механизмы: отдельную роль без лишних прав, RLS, профили групп доступа в конфигурациях с БСП.

Если в типовой роли используются шаблоны ограничения доступа, при копировании они переносятся вместе с текстами. Проверьте, что тексты RLS корректно отображаются в расширении и не ссылаются на объекты, недоступные из расширения. Ошибка в шаблоне RLS проявляется только в момент обращения пользователя к данным, поэтому тестирование обязательно.

Два сценария: переопределение и новая роль

Переопределение типовой роли

Имя роли в расширении совпадает с типовой. Подходит, когда нужно всем обладателям типовой роли дать дополнительные права — например, доступ к документу, добавленному расширением, или к новому отчёту. Пользователи ничего не замечают: их роли те же, но возможностей стало больше. Минус — при обновлении конфигурации нужно следить за изменениями типовой роли.

Новая роль расширения

Имя роли уникально (обычно с префиксом расширения). Подходит, когда нужен отдельный набор прав для конкретных пользователей: например, «Расш_ПросмотрСкладаБезЦен». Такую роль назначают вручную в справочнике пользователей или включают в профиль группы доступа. Плюс — полный контроль над составом прав, минус — администратор должен помнить о назначении роли новым сотрудникам.

Сравнение вариантов

Роль с именем типовой

Автоматически действует на всех обладателей типовой роли. Подходит для добавления прав. Не позволяет отнять типовые права и требует контроля после обновлений.

Новая роль с префиксом

Полностью независимый набор прав, назначается вручную. Подходит для отдельных групп пользователей. Требует администрирования назначений.

Профили групп доступа (БСП)

В типовых конфигурациях с БСП права часто гибче настроить через профили без расширения. Подходит, если не нужны программные доработки.

Проверка результата

После сохранения расширения обновите конфигурацию базы данных (F7). Если расширение подключено корректно, в списке расширений оно будет активным, без пометок об ошибках. Затем войдите в базу под тестовым пользователем, которому назначена изменённая роль, и проверьте целевой сценарий: открытие объекта, проведение документа, отсутствие доступа к запрещённым данным.

Полезно проверить и обратную сторону: убедиться, что у пользователя не появилось лишних прав. Откройте объекты, к которым доступа быть не должно, — система должна выдать сообщение о нарушении прав доступа. Для тонкой диагностики используйте отчёт «Анализ прав доступа» (в конфигурациях с БСП) или технологический журнал с событием доступа.

Контрольные точки

Как проверить результат

Статус расширения
Норма

Расширение активно, ошибок в списке нет

Тревожный признак

Расширение отключено или помечено как неприменимое

Доступ к целевому объекту
Норма

Пользователь открывает объект и выполняет нужные действия

Тревожный признак

Сообщение «Нарушение прав доступа» при штатной операции

Отсутствие лишних прав
Норма

Запрещённые объекты недоступны

Тревожный признак

Пользователь видит данные, которых у него быть не должно

Работа RLS
Норма

Пользователь видит только свои строки данных

Тревожный признак

Пустые списки или ошибки в тексте шаблона доступа

Обновление конфигурации и сопровождение

Главная слабость переопределённых ролей — обновления типовой конфигурации. Если в новом релизе поставщик изменил типовую роль (добавил права на новые объекты), ваша копия в расширении не обновится автоматически. После каждого обновления сравнивайте роль расширения с типовой: откройте обе и проверьте права на новые объекты. Удобно вести список изменённых прав, чтобы быстро восстановить логику.

Если расширение после обновления перестало применяться, проверьте его применимость: платформа может отключить расширение при несовпадении контролируемых объектов. В списке расширений есть команда проверки применимости — она покажет, какие объекты конфликтуют. Чем меньше объектов вы заимствуете в расширение, тем устойчивее оно к обновлениям: копируйте только действительно нужные роли.

Типичные ошибки
01
Опечатка в имени роли: вместо переопределения создаётся новая роль, которую никто не назначает, — права не применяются
02
Попытка отнять право через расширение: типовая роль всё равно даёт доступ, запрет не срабатывает
03
Тестирование под администратором: полные права скрывают ошибки настройки роли
04
Копирование в расширение лишних объектов: расширение становится хрупким и отключается при обновлении
05
Забытое обновление конфигурации БД (F7): расширение сохранено, но в базе изменения не применены

FAQ

Можно ли через расширение убрать право, которое есть в типовой роли?

Надёжно — нет: права объединяются по принципу «достаточно одного разрешения». Решение — создать в расширении новую роль с урезанным набором прав, назначить её пользователям вместо типовой, а типовую отключить в их профилях. В конфигурациях с БСП то же самое часто проще сделать через профили групп доступа.

Почему после добавления роли в расширение права не изменились?

Проверьте три вещи: совпадает ли имя роли с типовой (если нужно переопределение), применено ли расширение к базе (обновление конфигурации БД, активный статус в списке расширений) и под каким пользователем вы тестируете — у администратора полные права, и он не покажет реальную картину.

Что произойдёт с ролью в расширении при обновлении типовой конфигурации?

Роль в расширении останется без изменений, а типовая обновится. Если поставщик добавил в роль права на новые объекты, ваша переопределяющая роль их не получит — пользователям может не хватить доступа к новым функциям. После каждого обновления сравнивайте роли и при необходимости добавляйте права вручную.

Можно ли скопировать в расширение роль вместе с шаблонами RLS?

Да, шаблоны ограничения доступа копируются вместе с текстами запросов. После копирования проверьте, что тексты шаблонов не содержат ошибок и ссылаются на существующие объекты. Ошибки RLS проявляются только при обращении пользователя к данным, поэтому тестируйте под реальным пользователем с целевой ролью.

Нужно ли расширение, если в конфигурации есть профили групп доступа?

Не всегда. Механизм профилей БСП позволяет гибко собирать права из типовых ролей без доработок. Расширение нужно, когда требуются права на объекты, добавленные самим расширением, или когда состав типовых ролей не позволяет собрать нужную комбинацию.

Расширение отключилось после обновления — что делать?

Откройте список расширений и выполните проверку применимости: платформа покажет конфликтующие объекты. Обычно помогает повторное заимствование изменённых объектов или удаление из расширения лишних. После исправлений включите расширение заново и повторно проверьте права под тестовым пользователем.

Итог

Что важно запомнить

Роль копируется в расширение с точным именем типовой для переопределения или с уникальным именем для нового набора прав. Расширение добавляет права, но не отзывает типовые. Работайте на копии базы, тестируйте под пользователем без административных прав и сверяйте роли после каждого обновления конфигурации.