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

Инструменты · Права

rights_write

W · записьпо подпискеизменяет проект

Пишет права одной роли — права объекта (выдать, снять, сбросить к умолчанию роли), права его реквизитов и команд, ограничения на уровне записей, пачку объектов роли одним вызовом и шаблоны ограничений. Изменения — дельтой: переданное применяется, остальное не трогается.

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

Когда использовать

  • Выдать или снять права объекта в одной роли — update по адресу Role.X.Rights::<объект>.
  • Несколько объектов в роли — пачка по адресу Role.X.Rights.
  • Ограничение на уровне записей на чтение или изменение — rls, вместе с выдачей права в том же вызове.
  • Скопировать стандартные шаблоны ограничений в свою роль — create по адресу Role.X.RestrictionTemplate с copy_from.
  • Один набор прав сразу многим ролям — rights_action.

Соседние инструменты домена «Права»

Операции

Операции rights_write
operationЧто делаетНужно передать
updateпо умолчаниюДельта прав объекта: сначала reset, затем grant, deny, rls. Наборы @read, @edit, @all раскрываются по типу объекта, раскрытие видно в Changes. Зависимые права платформы добавляются с предупреждением (Edit ⇒ View). По адресу Role.X.Rights — только пачка объектов. Менять нечего — ⚪ noop.project, fqn, definition
createШаблоны ограничений: одиночный по адресу ….RestrictionTemplate.<Имя> или пачка по ….RestrictionTemplate — с condition или copy_from. На адресе ::<объект> — то же, что update.project, fqn, definition
deleteУдаляет все явные записи объекта в роли (то же, что сброс @all) или шаблон ограничения.project, fqn

Параметры

Параметры rights_write
Параметр и типОбязательныйОписаниеПо умолчанию
projectстрокадаИдентификатор проекта рабочей области EDT — имя из ответа project_read (например, УТ2020). Для расширения — проект расширения.—
operationстроканетОперация инструмента — значения и их смысл в таблице «Операции».значения: update · create · deleteupdate
fqnстрокадаRole.X.Rights::<объект> — объект в роли; Role.X.Rights — только пачка; Role.X.RestrictionTemplate[.Имя] — шаблоны. Русские формы тоже принимаются. Контракт — rights_read с гранью #help на том же адресе.—
definitionобъект | массивнетДля объекта: grant, deny, reset — имена прав по-английски или по-русски либо наборы @read, @edit, @all; rls — {"Read": [{"condition": "…"}]} заменяет список ограничений права; sub_objects — {grant, deny, except} для реквизитов, табличных частей и команд владельца. Для шаблона: condition, copy_from, name. Массив — пачка: у объектов ключ object, у шаблонов name; до 100, всё или ничего.—
dry_runбулевонетtrue — план и предпросмотр по снимку прав, без записи.false
titleстроканетНеобязательная подпись вызова до 40 символов: клиент показывает её в шапке карточки вызова. На результат не влияет.—

Таблица собрана из схемы инструмента, которую получает агент при подключении.

Адреса

Адреса rights_write
АдресЧто адресует
Role.<Роль>.Rights::Catalog.Номенклатураправа справочника в роли
Role.<Роль>.Rights::Catalog.Номенклатура.Attribute.<Реквизит>права реквизита
Role.<Роль>.Rightsпачка объектов роли
Role.<Роль>.RestrictionTemplateпачка шаблонов ограничений

Пример вызова и ответа

View добавлено само: без него Edit не работает. deny для права, которое у роли по умолчанию не выдано, снимает явную запись — → default.

аргументы rights_write
{
  "project": "УТ2020",
  "operation": "update",
  "fqn": "Role.ДобавлениеИзменениеНоменклатуры.Rights::Catalog.Номенклатура",
  "definition": { "grant": ["Edit"], "deny": ["InteractiveDelete"] }
}
ответ инструмента
### 🟢 update — Role.ДобавлениеИзменениеНоменклатуры.Rights::Catalog.Номенклатура

- **status:** 🟢 committed
- **fqn:** `Role.ДобавлениеИзменениеНоменклатуры.Rights::Catalog.Номенклатура`
- **operation:** `update`

#### Changes

- Catalog.Номенклатура: +View (⇐ Edit), +Edit · −InteractiveDelete → default

#### Warnings

- View: + по зависимости от Edit

Отказы и ошибки

rolled_back · ограничение на невыданное право

Ограничение на уровне записей задаётся только для явно выданного права. Добавьте grant в тот же вызов.

ответ инструмента
### 🟠 update — Role.ЧтениеЗаказов.Rights::Document.ЗаказКлиента

- **status:** 🟠 rolled_back
- **fqn:** `Role.ЧтениеЗаказов.Rights::Document.ЗаказКлиента`
- **operation:** `update`
- **rollback_reason:** RLS на Update: право не выдано явно (default: denied); добавьте в тот же вызов "grant":["Update"]; контракт: rights_read Role.ЧтениеЗаказов.Rights::Document.ЗаказКлиента#help

rolled_back · расширение только добавляет

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

ответ инструмента
### 🟠 update — Role.ПолныеПрава.Rights::Catalog.Валюты

- **status:** 🟠 rolled_back
- **fqn:** `Role.ПолныеПрава.Rights::Catalog.Валюты`
- **operation:** `update`
- **rollback_reason:** расширение только добавляет права: deny/reset в роли расширения недопустимы — эффективные права правятся в конфигурации-родителе; контракт: rights_read Role.ПолныеПрава.Rights::Catalog.Валюты#help

noop

Все указанные права уже в нужном состоянии — изменений нет.

ответ инструмента
### ⚪ update — Role.ПолныеПрава.Rights::Catalog.Валюты

- **status:** ⚪ noop — все указанные права уже в нужном состоянии
- **fqn:** `Role.ПолныеПрава.Rights::Catalog.Валюты`
- **operation:** `update`

failed · роль на поддержке

Роль закрыта поставщиком — отказ до любых изменений. Права к заимствованным объектам добавляйте в роли расширения.

failed · Unknown operation

Неизвестное значение operation. В ответе — fix_hint: supported: … со списком допустимых операций и секция Did you mean. Допустимо: update, create, delete.

failed · лицензия

Без действующего ключа инструмент отвечает карточкой failed с сообщением лицензия: … и подсказкой, где ввести ключ; в секции Context — список инструментов, доступных без ключа. Подробнее — Лицензия и бесплатный доступ.

Ограничения

  • Ограничения на уровне записей — только для Read, Insert, Update, Delete; грамматика условия не проверяется (validation: skipped).
  • В расширении объект должен быть заимствован (metadata_action с операцией adopt).
  • Сразу после запуска EDT возможен ответ «повторите»: модель прав ещё загружается.
Нашли ошибку — предложите правку.обновлено 30.09.2026

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

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