The @use preset name conflicted with the Use right semantics. DataProcessor and Report require Use+View together (View cannot be set without Use), so @view is the natural fit. Services (WebService, HTTPService, IntegrationService) use explicit rights. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.3 KiB
Спецификация Role JSON DSL
Формат JSON для описания ролей 1С, используемый навыком /role-compile.
Обзор
Role JSON DSL — компактный JSON-формат, транслируемый скриптом в XML-файлы роли 1С:Предприятия (метаданные + Rights.xml). Поддерживает пресеты прав, русские синонимы типов и прав, шаблоны ограничений (RLS).
Корневой объект
| Поле | Тип | Обяз. | По умолчанию | Описание |
|---|---|---|---|---|
name |
string | да | — | Программное имя роли |
synonym |
string | нет | = name | Отображаемое имя |
comment |
string | нет | "" |
Комментарий |
setForNewObjects |
bool | нет | false |
Устанавливать для новых объектов |
setForAttributesByDefault |
bool | нет | true |
Устанавливать для реквизитов по умолчанию |
independentRightsOfChildObjects |
bool | нет | false |
Независимые права подчинённых объектов |
objects |
array | нет | [] |
Массив объектов метаданных с правами |
templates |
array | нет | [] |
Шаблоны ограничений (RLS) |
Элементы objects
Массив принимает два формата, которые можно смешивать.
Строковый shorthand
"Тип.Имя: @пресет"
"Тип.Имя: Право1, Право2"
Тип — английский (Catalog) или русский (Справочник). Права — английские (Read) или русские (Чтение).
Объектная форма
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
name |
string | да | Полное имя объекта: Тип.Имя |
preset |
string | нет | Пресет: "view", "edit" (без @) |
rights |
object|array | нет | Переопределения: {"Right": bool} или ["Right1", "Right2"] |
rls |
object | нет | RLS: {"ИмяПрава": "текст условия или #шаблон"} |
При наличии preset + rights — сначала применяется пресет, затем rights переопределяют отдельные права.
Пресеты
Три встроенных пресета определяют набор прав в зависимости от типа объекта:
| Пресет | Назначение |
|---|---|
view |
Просмотр: Read, View (+InputByString для справочников/документов; Use+View для обработок/отчётов) |
edit |
Полное редактирование: CRUD + Interactive* + Posting (документы) |
Подробные таблицы прав для каждого типа объекта — в .claude/skills/role-compile/dsl-reference.md.
Шаблоны ограничений (RLS)
Элементы массива templates:
| Поле | Тип | Описание |
|---|---|---|
name |
string | Имя шаблона с параметрами: "ДляОбъекта(Модификатор)" |
condition |
string | Текст условия. & экранируется в & автоматически |
Ссылка на шаблон в rls: "#ИмяШаблона(\"параметры\")" — начинается с #.
Русские синонимы
DSL принимает русские имена типов и прав, транслируя их в английские. Полные таблицы соответствий — в .claude/skills/role-compile/dsl-reference.md.
Примеры: Справочник → Catalog, Документ → Document, Чтение → Read, Просмотр → View.
Пример
{
"name": "МенеджерПродаж",
"synonym": "Менеджер продаж",
"objects": [
"Document.РеализацияТоваровУслуг: @edit",
"Catalog.Контрагенты: @view",
"Catalog.Номенклатура: @view",
{
"name": "Document.ЗаказКлиента",
"preset": "view",
"rls": { "Read": "#ДляОбъекта(\"\")" }
}
],
"templates": [
{
"name": "ДляОбъекта(Модификатор)",
"condition": "ГДЕ Организация = &ТекущаяОрганизация"
}
]
}
Генерируемые файлы
Roles/
ИмяРоли.xml # Метаданные (UUID, синоним, флаги)
ИмяРоли/
└── Ext/
└── Rights.xml # Права доступа (объекты, права, RLS)
См. также
- Роли (Rights.xml) — XML-формат прав роли, типы объектов, RLS
- Гайд по ролям — сценарии использования, рабочий цикл