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

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

Как добавить роль из расширения 1С

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

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

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

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

Когда роль стоит добавлять именно через расширение

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

Также расширение удобно, когда доработка носит локальный характер: нужно открыть доступ к одному новому отчёту, добавленному тем же расширением, или выдать права на дополнительный регистр сведений. В этом случае роль и объекты логично держать в одном месте — внутри расширения.

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

Подготовка: создание или открытие расширения

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

Обратите внимание на свойства расширения: флажок «Безопасный режим» по умолчанию включён. Для ролей это не критично, но если в расширении есть программный код, работающий с файловой системой или внешними компонентами, безопасный режим может блокировать выполнение. Также проверьте назначение расширения: для добавления ролей достаточно стандартного назначения «Дополнение».

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

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

Открыв расширение, вы увидите его дерево конфигурации — оно повторяет структуру основной конфигурации, но изначально пустое. Чтобы добавить роль, найдите ветку «Общие» → «Роли», щёлкните правой кнопкой и выберите «Добавить». Задайте имя роли, например ДоступКОтчетуПоСкладу, и понятный синоним — именно синоним увидят администраторы в списке ролей пользователя.

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

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

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

Откройте созданную роль двойным щелчком — появится окно редактирования прав со списком объектов. Для каждого объекта установите нужные права: «Чтение», «Добавление», «Изменение», «Удаление», «Просмотр», «Интерактивное добавление» и другие. Помните, что «Просмотр» отвечает за видимость объекта в интерфейсе, а «Чтение» — за фактический доступ к данным; для полноценной работы обычно нужны оба права.

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

Ограничение доступа на уровне записей (RLS)

Для прав «Чтение», «Добавление», «Изменение» и «Удаление» можно задать ограничение доступа на уровне записей — например, разрешить менеджерам видеть только документы своей организации. В окне редактирования роли выберите право и заполните поле «Ограничение доступа» на встроенном языке запросов RLS.

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

Сохранение и назначение роли пользователям

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

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

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

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

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

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

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

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

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

Видимость объекта в интерфейсе
Норма

Объект отображается в разделах и открывается

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

Объекта нет в меню — проверьте право «Просмотр» и подсистемы

Открытие документа или отчёта
Норма

Форма открывается, данные читаются

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

Ошибка «Нарушение прав доступа» — не хватает права «Чтение»

Проведение документа
Норма

Документ проводится без ошибок доступа

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

Ошибка при проведении — нет прав на регистры, по которым идёт движение

Недоступность лишнего
Норма

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

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

Объект открывается — у пользователя есть другая широкая роль

Типичные ошибки и ограничения

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

Вторая типичная ситуация — роль назначена, но доступа нет. Обычно причина в том, что забыли выдать право «Просмотр» (объект невидим) или не учли права на связанные объекты: для проведения документа нужны права на все регистры, по которым он делает движения, а для отчёта — права на читаемые им таблицы.

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

Типичные ошибки
01
Забыли право «Просмотр» — объект есть в правах, но невидим в интерфейсе пользователя
02
Не выдали права на регистры движений — документ открывается, но не проводится
03
Назначили роль, но пользователь не перезашёл в сеанс — права не применились
04
Отключили расширение при обновлении — все пользователи разом потеряли доступ
05
Продублировали логику типовой роли вручную и пропустили часть объектов — доступ работает частично

Альтернативы роли из расширения

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

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

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

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

Подходит для новых объектов и точечных прав; не затрагивает поддержку, но исчезает при отключении расширения

Профиль групп доступа в режиме «Предприятие»

Подходит, если достаточно комбинации типовых ролей; не требует разработки, но не даёт новых прав

Изменение типовой роли в основной конфигурации

Подходит для глобальных правок; требует включения возможности изменения и усложняет обновления

Заимствование типовой роли в расширение

Позволяет скорректировать типовые права без изменения конфигурации, но требует сверки после обновлений

FAQ

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

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

Можно ли назначить роль из расширения через профиль групп доступа?

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

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

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

Можно ли в расширении изменить права типовой роли?

Да, типовую роль можно заимствовать в расширение и скорректировать её права. Учтите две особенности: изменения поставщика в этой роли при обновлениях не применятся автоматически, а пользователям роль по-прежнему назначается под типовым именем, что может запутать при аудите прав.

Работает ли RLS из расширения так же, как в типовых ролях?

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

Нужно ли обновлять конфигурацию базы данных после добавления роли?

Сама роль не меняет структуру данных, поэтому обновление конфигурации базы данных обычно не требуется — достаточно сохранить расширение. Обновление понадобится, только если вместе с ролью в расширение добавлялись объекты, изменяющие структуру хранения: регистры, справочники, реквизиты.

Итог

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

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