Права из расширения конфигурации: куда поставить галочку, чтобы сотрудник их получил

· 9 мин

Содержание

В типовых конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11, ERP) роль из расширения пользователю добавляют через профиль групп доступа: Администрирование → Настройки пользователей и прав → Профили групп доступа, скопируйте нужный профиль, отметьте роль расширения на вкладке с ролями, затем включите сотрудника в группу доступа с этим профилем. Роль начнёт действовать после того, как пользователь перезапустит 1С.

В самописной базе без БСП роль из расширения назначают напрямую в Конфигураторе, в карточке пользователя. В типовой так делать не стоит: подсистема управления доступом пересчитает роли и уберёт всё, что назначено в обход групп доступа.

Как роли расширения встраиваются в права пользователя

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

Что полезно знать заранее:

  • 🔤 Префикс в имени. У расширения есть свойство «Префикс», и имена его объектов обычно начинаются с него: Расш1_ДоступКОтчетам. По префиксу роль легко отличить в длинном списке.
  • 🧩 Собственные и заимствованные роли. В расширение можно заимствовать роль основной конфигурации и дописать в ней права на новые объекты. Тогда назначать ничего не нужно: пользователи с этой типовой ролью сразу получат доступ. Собственную роль расширения нужно назначать отдельно.
  • ➕ Права складываются. В 1С права ролей суммируются. Если хотя бы одна роль даёт право на объект, пользователь его получает. Отнять права ролью нельзя.
  • 🔄 Роли читаются при входе. Новая роль не заработает в уже открытом сеансе. Пользователь должен закрыть 1С и войти заново.
  • 🔌 Нет расширения — нет роли. Если расширение отключено или удалено, его роли пропадают из списка. В профилях групп доступа такие роли остаются отметками без объекта.

Что проверить до назначения роли

Половина обращений «галочку поставил, а прав нет» связана не с назначением, а с самим расширением. Пройдите короткий список.

Перед назначением роли из расширения
Выполнено: 0 / 5

Список расширений в типовой базе открывается так: Администрирование → Печатные формы, отчеты и обработки → Расширения. Там видно, какие расширения подключены, активны ли они и работают ли в безопасном режиме.

Если под рукой Конфигуратор, загляните в Конфигурация → Расширения конфигурации. Откройте дерево расширения и раскройте ветку «Общие → Роли». Двойной щелчок по роли покажет, на какие объекты она даёт права. Так вы поймёте, нужна ли она сотруднику целиком или хватит заимствованной типовой роли.

Если расширение пишет подрядчик, попросите его сразу описать роли: какая роль за что отвечает и кому её давать. Это экономит разбор прав «по объектам» потом.

Добавление роли расширения через профиль групп доступа

Это основной способ для БП 3.0, ЗУП 3.1, УТ 11, КА и ERP. Путь в этих конфигурациях одинаковый.

КонфигурацияГде профили групп доступа
Бухгалтерия предприятия 3.0Администрирование → Настройки пользователей и прав → Профили групп доступа
ЗУП 3.1Администрирование → Настройки пользователей и прав → Профили групп доступа
Управление торговлей 11НСИ и администрирование → Администрирование → Настройки пользователей и прав → Профили групп доступа

Если ссылки «Профили групп доступа» не видно, включите в этом же разделе флажок групп доступа (режим упрощённой настройки прав отключает профили).

Шаг 1. Создайте свой профиль

Поставляемые профили («Бухгалтер», «Кадровик», «Менеджер по продажам») изменять нельзя: их состав задаёт конфигурация, и при обновлении он восстанавливается.

  1. Откройте список профилей.
  2. Выделите профиль, который ближе всего к нужному набору прав.
  3. Скопируйте его клавишей F9 или командой копирования на панели списка.
  4. Дайте понятное имя: «Бухгалтер + отчёты расширения».

Шаг 2. Отметьте роль из расширения

  1. В карточке нового профиля перейдите на вкладку с разрешёнными действиями (ролями).
  2. Отключите отбор «только выбранные», если он включён, иначе новой роли не будет видно.
  3. Найдите роль поиском по списку. Удобнее всего искать по префиксу расширения.
  4. Поставьте флажок и нажмите Записать и закрыть.

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

Шаг 3. Включите пользователя в группу доступа

  1. Откройте Группы доступа в том же разделе настроек.
  2. Создайте группу с новым профилем или откройте существующую.
  3. На вкладке участников добавьте сотрудников.
  4. Если у профиля есть ограничения по организациям или складам, заполните их на соответствующей вкладке группы.
  5. Запишите группу.

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

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

Назначение роли напрямую в карточке пользователя

Прямое назначение подходит для двух случаев: база без БСП (самописная или очень старая конфигурация) и срочная проверка на тестовой копии.

  1. Откройте базу в Конфигураторе.
  2. Выберите Администрирование → Пользователи.
  3. Откройте карточку пользователя и перейдите на вкладку Прочие.
  4. В списке ролей найдите роль с префиксом расширения и поставьте флажок.
  5. Нажмите OK и попросите пользователя перезапустить 1С.

Роли расширения появляются в этом списке только после применения расширения. Если Конфигуратор был открыт до загрузки расширения, закройте его и откройте снова.

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

СпособКогда применятьРиски
Профиль групп доступаЛюбая конфигурация на БСПНужны права на изменение профилей
Карточка пользователя в КонфигуратореКонфигурация без БСП, тестовая базаВ БСП роль слетит при пересчёте
Заимствованная типовая роль в расширенииПрава нужны всем, у кого есть типовая рольПрава получат все, даже лишние люди
Поставляемый профиль из расширенияРасширение ставится во много базНужен программист

Почему права не появились: диагностика

Пользователь видит Нарушение прав доступа! или Недостаточно прав для просмотра, а роль вроде бы назначена. Идите от простого к сложному.

Диагностика: выберите симптом

Быстрая проверка: зайдите под учётной записью сотрудника на копии базы и повторите действие. Так вы точно увидите текст ошибки и объект, на который не хватает прав.

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

Как раздавать права автоматически при внедрении расширения

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

Поставляемый профиль в самом расширении

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

Это самый аккуратный вариант для типовых конфигураций: права живут внутри подсистемы управления доступом и не слетают.

Скрипт для базы без БСП

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

ИмяПользователя = "Иванов";
ИмяРоли = "Расш1_ДоступКОтчетам";

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
Роль = Метаданные.Роли.Найти(ИмяРоли);

Если ПользовательИБ = Неопределено Тогда
	Сообщить("Пользователь не найден: " + ИмяПользователя);
ИначеЕсли Роль = Неопределено Тогда
	Сообщить("Роль не найдена, проверьте, что расширение применено: " + ИмяРоли);
ИначеЕсли ПользовательИБ.Роли.Содержит(Роль) Тогда
	Сообщить("Роль уже назначена");
Иначе
	ПользовательИБ.Роли.Добавить(Роль);
	ПользовательИБ.Записать();
	Сообщить("Роль добавлена");
КонецЕсли;

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

Загрузка расширения из командной строки

Само расширение при развёртывании загружают пакетным запуском Конфигуратора, а затем отдельной командой обновляют конфигурацию базы данных:

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /LoadCfg "D:\ext\Otchety.cfe" -Extension "Отчеты" /UpdateDBCfg -Extension "Отчеты" /Out "D:\ext\log.txt"

Вместо <версия> подставьте номер установленной платформы, имя сервера и базы — свои. Если не уверены в ключах для вашей версии, посмотрите справку по параметрам командной строки в документации платформы.

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

Если база работает в облаке 1С:Фреш

В облачном сервисе Конфигуратора у пользователя нет. Прямое назначение роли невозможно, остаётся только профиль групп доступа.

  • ☁️ Расширение подключают в приложении через список расширений. В сервисе расширения работают в безопасном режиме, и часть возможностей кода им недоступна.
  • 👤 Профили и группы доступа настраивает администратор абонента в самом приложении, по тем же шагам, что выше.
  • 🔒 Если нужной вкладки или команды нет, у вашей учётной записи не хватает прав администратора приложения. Обратитесь к владельцу абонента.

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

Как забрать роль и не потерять контроль над правами

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

  • ➖ Одному человеку. Исключите его из группы доступа с расширенным профилем. Роль уйдёт при пересчёте, новая сессия откроется уже без неё.
  • 🚫 Всем сразу. Снимите флажок роли в профиле. Изменение затронет каждую группу с этим профилем.
  • 📝 Учёт. В поле комментария профиля запишите, какое расширение и зачем добавлено, и кто попросил. Через год это сэкономит разбор.

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

Частые вопросы

Можно ли дать роль из расширения только одному сотруднику?
Да. Создайте отдельную группу доступа с нужным профилем и включите в неё одного человека. Остальных она не затронет.
Сохранится ли роль после обновления типовой конфигурации?
Да, если она назначена через свой профиль групп доступа. Обновление восстанавливает только поставляемые профили, копии остаются как есть. Само расширение после обновления стоит проверить: оно может перестать применяться, если изменились заимствованные объекты.
Что будет с правами, если отключить расширение?
Роль исчезнет из сеансов, и права, которые давала только она, пропадут. Профиль при этом сохранится, и после повторного включения расширения роль вернётся.
Почему администратор видит объекты расширения, а пользователь нет?
У администратора обычно есть роль полных прав. Если в расширении в эту роль заимствованы права на новые объекты, администратор их получает, а остальным нужна отдельная роль расширения.
Можно ли назначить роль расширения внешнему пользователю?
Для внешних пользователей в БСП есть свои профили и группы доступа. Роль добавляют в профиль для внешних пользователей, если подсистема разрешает её для этого вида пользователей.