Своя роль в расширении конфигурации: от Конфигуратора до прав пользователя
Содержание
Роль в расширение конфигурации
1С добавляют в Конфигураторе: Конфигурация → Расширения конфигурации, открыть нужное расширение, в его дереве ветка Общие → Роли, правой кнопкой — Добавить. Затем в редакторе роли отмечают права на объекты, сохраняют расширение командой Обновить конфигурацию базы данных (F7) и назначают роль пользователю. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) роль назначают не галочкой в Конфигураторе, а через профиль групп доступа.
Есть второй путь — заимствовать роль основной конфигурации и дописать в неё права на новые объекты. Тогда все, у кого эта роль уже есть, сразу получат доступ к доработке. Какой путь выбрать, зависит от того, кому нужен доступ.
Как права доступа работают в расширении
Объекты, которые вы создали в расширении (справочники, документы, отчёты, обработки), основная конфигурация не видит. Ни одна её роль не даёт на них прав. Поэтому сразу после подключения расширения пользователь без полных прав часто получает Недостаточно прав для просмотра или просто не видит новый раздел.
Права на такие объекты можно выдать двумя способами:
- 🆕 Собственная роль расширения. Новая роль, которая живёт только в расширении. Её назначают отдельно — через профиль группы доступа или список ролей пользователя.
- 🔗 Заимствованная роль. Роль основной конфигурации, добавленная в расширение. В ней можно отметить права на собственные объекты расширения. Права на объекты основной конфигурации в заимствованной роли поменять нельзя: они остаются такими, как задал разработчик конфигурации.
| Способ | Когда подходит | Что учесть |
|---|---|---|
| Собственная роль | Доступ нужен узкому кругу: склад, юристы, один отдел | Роль надо явно назначить каждому, кому она нужна |
| Заимствованная роль | Доступ нужен всем, у кого уже есть базовая роль | Права «приезжают» автоматически, в том числе тем, кому не нужны |
Для администраторов удобно заимствовать роль ПолныеПрава и отметить в ней все объекты расширения. Тогда администратор видит доработку без отдельных настроек.
Права, которые отмечают в роли, те же, что и в основной конфигурации: Чтение, Добавление, Изменение, Удаление, Просмотр, интерактивные права, Проведение для документов, Использование для обработок и отчётов. Права на подсистему (Просмотр) нужны, чтобы раздел появился в командном интерфейсе.
Что проверить перед тем, как добавлять роль
Пять минут подготовки избавят от переделок:
- 🧩 Префикс имён. В свойствах расширения задан
Префикс имен, напримермр_. Имя новой роли должно начинаться с него:мр_РаботаСЗаявками. Префикс защищает от конфликта имён при обновлении основной конфигурации. - 🔒 Безопасный режим. В свойствах расширения смотрят флаг
Безопасный режим. На набор прав в роли он не влияет, но ограничивает код расширения. Если доработка работает с файлами или внешними ресурсами, это всплывёт сразу после назначения роли — не путайте с проблемой прав. - 📋 Список объектов. Выпишите, к каким объектам нужен доступ и какой: только смотреть, вводить, проводить, удалять.
- 👤 Режим управления доступом в базе. В типовых конфигурациях проверьте, включены ли ограничения на уровне записей:
Администрирование → Настройки пользователей и прав. От этого зависит, понадобится ли настраивать ограничения в самой роли. - 💾 Копия расширения. Выгрузите текущую версию расширения в файл
.cfe: в окнеРасширения конфигурациивыделите расширение и выберите сохранение в файл в менюКонфигурацияэтого окна.
Пошаговое создание роли в расширении 1С
Шаг 1. Откройте дерево расширения
- Запустите Конфигуратор под пользователем с правом администрирования.
- Меню
Конфигурация → Расширения конфигурации. - Двойным щелчком откройте нужное расширение. Если его ещё нет — кнопка
Добавить, задайте имя, синоним и префикс.
Откроется отдельное дерево с заголовком вида Расширение: ИмяРасширения. Работайте именно в нём, а не в дереве основной конфигурации.
Шаг 2. Добавьте собственную роль
- В дереве расширения раскройте
Общие. - Правой кнопкой по ветке
Роли→Добавить. - Задайте имя с префиксом и понятный синоним. Синоним увидят администраторы в списке ролей профиля, поэтому пишите его по-человечески: «Работа с заявками на закупку».
Шаг 3. Отметьте права
Откроется редактор прав. Слева — дерево объектов, справа — список прав выбранного объекта.
- Найдите свои объекты расширения. Они в тех же ветках, что и в основной конфигурации:
Справочники,Документы,Отчеты,Обработки. - Для каждого объекта отметьте нужные права. Интерактивные права (
Интерактивное добавление,Интерактивная пометка удаления) отвечают за кнопки в форме, неинтерактивные — за работу из кода. - Не забудьте подсистему расширения: право
Просмотр. Без него команды раздела не появятся в интерфейсе. - Для общих команд и общих форм расширения отметьте
Просмотр.
Внизу редактора есть флаги роли:
Устанавливать права для новых объектов— новые объекты расширения будут сразу получать все права в этой роли. Удобно для административной роли, опасно для пользовательской.Устанавливать права для реквизитов и табличных частей по умолчанию— реквизиты наследуют права объекта. Оставьте включённым, если не нужно скрывать отдельные поля.Независимые права подчиненных объектов— права на реквизиты задаются отдельно от прав объекта.
Шаг 4. Заимствованная роль (если выбран второй путь)
- В дереве основной конфигурации найдите роль, например
БазовыеПраваБСПили отраслевую роль вроде роли кладовщика. - Правой кнопкой →
Добавить в расширение→ выберите расширение. - Роль появится в ветке
Ролирасширения со значком заимствования. - Откройте её и отметьте права только на объекты расширения.
Заимствовать БазовыеПраваБСП и давать в ней права на изменение — значит открыть доработку всем пользователям базы. Для широкой роли ограничивайтесь чтением и просмотром, а права на запись выносите в собственную роль.
Шаг 5. Сохраните расширение в базе
- Активируйте окно дерева расширения.
Конфигурация → Обновить конфигурацию базы данныхили F7.- Перезапустите сеансы пользователей: новые права подхватываются при следующем входе в программу.
Если расширение потом нужно передать в другую базу, выгрузите его в .cfe и загрузите там через Администрирование → Печатные формы, отчеты и обработки → Расширения в режиме 1С:Предприятие.
Ограничение доступа на уровне записей
В роли расширения можно задать условие ограничения: кнопка Ограничение доступа к данным у права Чтение или Изменение. Условие пишется на языке запросов, например так, чтобы пользователь видел только свои заявки:
ГДЕ мр_ЗаявкиНаЗакупку.Автор = &ТекущийПользователь
Параметр ТекущийПользователь должен существовать как параметр сеанса в основной конфигурации — в конфигурациях на БСП он есть. В типовых базах ограничения строятся по шаблонам БСП (#ПоЗначениям и другие). Если вы не знаете эти шаблоны, начинайте с роли без ограничений и сужайте доступ отдельной задачей.
Настраиваем профили групп доступа в БП, ЗУП и УТ
В конфигурациях на БСП роли пользователям назначает подсистема управления доступом. Галочка в Конфигураторе в списке ролей пользователя слетит при следующей записи пользователя в программе. Поэтому роль расширения подключают через профиль.
| Конфигурация | Где профили | Где группы |
|---|---|---|
| Бухгалтерия 3.0 | Администрирование → Настройки пользователей и прав → Профили групп доступа | там же, Группы доступа |
| ЗУП 3.1 | Администрирование → Настройки пользователей и прав → Профили групп доступа | там же, Группы доступа |
| УТ 11 | НСИ и администрирование → Настройки пользователей и прав → Профили групп доступа | там же, Группы доступа |
Порядок такой:
- Откройте
Профили групп доступа. - Поставляемые профили (например, «Бухгалтер») изменить нельзя. Скопируйте нужный профиль кнопкой копирования в списке или создайте новый.
- В карточке профиля на вкладке со списком разрешённых действий (ролей) найдите роль расширения по синониму и отметьте её.
- Запишите профиль.
Если роль не видна в списке, выйдите из программы и зайдите снова. Список ролей формируется по метаданным текущего сеанса, а расширение, сохранённое после входа, сеанс не видит.
Профиль под доработку можно сделать минимальным: только роль расширения, без базовых ролей. Пользователь получит его вторым профилем, в дополнение к основному. Так проще обновлять: основной поставляемый профиль остаётся нетронутым.
Как назначить роль конкретному пользователю
Типовая база на БСП
Группы доступа→Создать.- Укажите профиль из предыдущего шага и название, например «Заявки на закупку — отдел снабжения».
- На вкладке участников добавьте пользователей или группы пользователей.
- Запишите группу.
В режиме упрощённой настройки прав (в небольших базах он бывает включён) групп доступа в интерфейсе нет. Тогда права назначают из карточки пользователя: Администрирование → Настройки пользователей и прав → Пользователи → открыть пользователя → Права доступа → отметить профиль.
Самописная база или база без БСП
- Конфигуратор →
Администрирование → Пользователи. - Откройте пользователя → вкладка
Прочие. - В списке ролей отметьте роль расширения. Роли расширений показаны вместе с ролями конфигурации.
- Нажмите
ОК.
Как проверить результат
- 🔍 Войдите под этим пользователем и откройте раздел расширения.
- 🔍 Попробуйте создать и записать элемент, провести документ .
- 🔍 В типовой базе откройте отчёт о правах из карточки пользователя: кнопка отчёта по правам доступа в его командной панели показывает, какие роли и группы действуют.
Ошибки при добавлении роли и как их исправить
Роль создана в дереве основной конфигурации, а не расширения. Такое бывает, когда активным осталось не то окно. Если основная конфигурация открыта для изменения, роль попадёт в неё, а расширение останется без роли. Проверьте заголовок окна перед добавлением.
Права отмечены только на форму. Право на общую форму или команду не открывает доступ к данным. Ошибка Недостаточно прав возникает при попытке прочитать объект, на который права нет.
Забыта связанная таблица. Документ расширения пишет движения в регистр расширения — нужны права на регистр. Отчёт читает справочник основной конфигурации — у пользователя должно быть право на этот справочник из его основной роли.
Слишком широкий флаг «Устанавливать права для новых объектов». В пользовательской роли он тихо раздаёт полный доступ ко всему, что добавят в расширение позже. Включайте его только в административной роли.
Одноимённая роль в основной конфигурации. Если поставщик конфигурации в новом релизе добавит роль с таким же именем, расширение перестанет применяться. Префикс в имени снимает этот риск.
Безопасность при обновлении расширений и конфигурации
Расширения придумали, чтобы дорабатывать типовую базу и не снимать её с поддержки. Но роли в расширении требуют внимания при каждом обновлении.
- 🔄 Обновление основной конфигурации. Собственные роли расширения не затрагиваются. Заимствованные роли переносятся, если роль в основной конфигурации осталась с тем же именем. Если поставщик удалил или переименовал роль, расширение не применится — проверьте это на копии базы до обновления рабочей.
- 🧪 Тестовый прогон. После обновления войдите под пользователем с ролью расширения и пройдите основной сценарий: открыть, создать, провести, построить отчёт.
- 🧾 Ревизия прав. Раз в несколько релизов просматривайте собственные роли: не накопились ли права на объекты, которые уже не используются.
- 🚫 Права администратора. Не отмечайте в пользовательских ролях расширения права
АдминистрированиеиАдминистрирование данныхна корень конфигурации. Эти права дают доступ ко всей базе, а не только к доработке. - 📦 Передача расширения. Загружая чужой
.cfe, откройте его веткуРолидо применения. Расширение от подрядчика может нести заимствованную роль с широкими правами.
Загрузку и обновление расширения в рабочей базе делайте, когда пользователи не работают с доработкой. Открытые сеансы продолжат работать со старой версией до перезахода, а часть данных может записаться по старым правилам.