Кабинет
На этой странице

Рецепты

Новая роль и права во всех ролях менеджеров

Цель — дать доступ к новому справочнику так, как это сделано для похожих объектов. Роли «Чтение…» и «ДобавлениеИзменение…» по стандарту ИТС 689, права как у справочника-образца во всех ролях, где они есть, и чтение группе ролей менеджеров — одним вызовом на каждый шаг, с предпросмотром.

обновлено 30.09.2026плагин 0.2.0 · EDT 2025.2Предложить правку или письмом

Предпосылки

  • Новый справочник уже создан — в примерах Catalog.<НовыйСправочник>.
  • Образец — справочник с правильно настроенными правами, в примерах Catalog.Номенклатура.
  • Действует ключ или бесплатный доступ. Роли, закрытые поставщиком, не меняются — массовые операции их пропускают и перечисляют в Skipped.

Шаги

1. Снапшот

snapshot_write
{ "operation": "create", "label": "до прав нового справочника" }

2. Как устроены права у образца

rights_read
{ "project": "УТ2020", "fqn": "Catalog.Номенклатура#roles" }

Обратная матрица: все роли конфигурации и её расширений, которые дают что-то на справочник, с набором прав (@read (3), @edit (9), @all (25) или явный список), отметкой ограничений на уровне записей и ролей, выдающих права по умолчанию.

3. Роли по стандарту для нового объекта

rights_action · предпросмотр
{
  "project": "УТ2020",
  "operation": "scaffold_roles",
  "objects": ["Catalog.<НовыйСправочник>"],
  "subsystems": ["Subsystem.<Подсистема>"],
  "dry_run": true
}

Создаёт роли Чтение<НовыйСправочник> с набором @read и ДобавлениеИзменение<НовыйСправочник> с набором @edit — без удаления, как рекомендует ИТС 689, — и право просмотра подсистемы и её родителей. Ответ 🔵 dry_run показывает план. Повторите без dry_run, чтобы записать.

4. Права как у образца во всех ролях

rights_action · предпросмотр
{
  "project": "УТ2020",
  "operation": "clone_object_rights",
  "from": "Catalog.Номенклатура",
  "objects": ["Catalog.<НовыйСправочник>"],
  "dry_run": true
}

Явные права образца копируются новому справочнику в каждой роли, где они есть. Ограничения на уровне записей копируются с заменой имени таблицы, а в Warnings об этом сказано — проверьте их. Секция Roles в ответе — по строке на роль, одинаковые изменения сжимаются.

5. Чтение группе ролей менеджеров

rights_action · предпросмотр
{
  "project": "УТ2020",
  "operation": "grant",
  "objects": ["Catalog.<НовыйСправочник>"],
  "rights": ["@read"],
  "roles_regex": "^<Шаблон имени ролей менеджеров>",
  "dry_run": true
}

roles_regex — регулярное выражение по именам ролей, привязанное к началу имени. Вместо него можно перечислить роли явно в roles. Ответ показывает roles_matched N of M — сколько ролей совпало из всех — и изменения по каждой. За один вызов меняется до 50 ролей; остальные попадут в секцию Deferred с готовым следующим вызовом. У предпросмотра ограничения нет.

Проверка

  • rights_read с адресом Catalog.<НовыйСправочник>#roles — новые роли и роли менеджеров в матрице с нужными наборами.
  • rights_read с адресом Role.Чтение<НовыйСправочник>.Rights — сводка новой роли.
  • validate с checkers: ["rights"] — опасные права в функциональных ролях, права, неприменимые к типу, объекты без прав ни в одной роли.

Откат

snapshot_action
{ "operation": "restore", "snapshot_id": "<идентификатор снапшота из шага 1>" }

Снапшот хранит файлы прав ролей, а snapshot_read с операцией diff_semantic показывает изменения прав по объектам: какие права добавлены и сняты. Снять права точечно — rights_action с операцией revoke и теми же объектами и ролями.

Нашли ошибку — предложите правку.обновлено 30.09.2026

Например: metadata_write, «порт занят», коллекционный адрес.

↑ ↓ выборEnter открыть/ или Ctrl K — открыть поиск