Extract detailed preset tables, Russian synonym tables, and extra examples into dsl-reference.md (318 lines). Compact SKILL.md from 340 to 107 lines. Add role-dsl-spec.md project spec. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.8 KiB
Роли (Role)
Навыки группы /role-* позволяют анализировать, создавать и проверять роли 1С — XML-файлы прав доступа (Rights.xml) и метаданных.
Навыки
| Навык | Параметры | Описание |
|---|---|---|
/role-info |
<RightsPath> |
Компактная сводка прав: объекты по типам, только разрешённые, RLS, шаблоны |
/role-compile |
<JsonPath> <RolesDir> |
Генерация роли из JSON DSL: метаданные + Rights.xml, UUID автоматически |
/role-validate |
<RightsPath> [MetadataPath] |
Валидация структурной корректности: XML, namespace, права, RLS, шаблоны |
Рабочий цикл
Описание прав (текст) → JSON DSL → /role-compile → XML-исходники → /role-validate
→ /role-info
- Claude формирует JSON-определение роли (с пресетами или явными правами)
/role-compileгенерируетRoles/ИмяРоли.xml+Roles/ИмяРоли/Ext/Rights.xml/role-validateпроверяет корректность сгенерированного XML/role-infoвыводит компактную сводку для визуальной проверки
JSON DSL — компактный формат
Роли описываются в JSON с двумя уровнями детализации:
Строковый shorthand (простые роли)
{
"name": "ЧтениеНоменклатуры",
"synonym": "Чтение номенклатуры",
"objects": [
"Catalog.Номенклатура: @view",
"Catalog.Контрагенты: @view",
"DataProcessor.Загрузка: @use"
]
}
Формат строки: Тип.Имя: @пресет или Тип.Имя: Право1, Право2.
Объектная форма (RLS, переопределения)
{
"name": "Document.Реализация",
"preset": "view",
"rights": { "Delete": false },
"rls": { "Read": "#ДляОбъекта(\"\")" }
}
Форматы можно смешивать в одном массиве objects.
Пресеты
| Пресет | Действие |
|---|---|
@view |
Просмотр: Read, View, InputByString (для справочников/документов); Read, View (для регистров) |
@edit |
Полное редактирование: CRUD + Interactive* + Posting (для документов) |
@use |
Использование: Use, View (для обработок/отчётов/сервисов) |
@ обязателен в строковом shorthand. В объектной форме — ключ preset без @.
Русские синонимы
Скрипт принимает русские имена типов и прав: Справочник → Catalog, Чтение → Read, Проведение → Posting и т.д. Полный список — в спецификации Role DSL.
Сценарии использования
Анализ существующей роли
> Проанализируй права роли Roles/БазовыеПраваБП/Ext/Rights.xml
Claude вызовет /role-info, получит компактную сводку (тысячи строк XML → 50–300 строк текста) и опишет:
- какие объекты доступны и с какими правами
- где есть ограничения RLS
- какие шаблоны ограничений используются
Создание роли по описанию
> Создай роль МенеджерПродаж с правами:
> - Документ РеализацияТоваровУслуг: полные права
> - Справочник Контрагенты: чтение
> - Справочник Номенклатура: чтение
> - Регистр ЦеныНоменклатуры: чтение
Claude сформирует JSON с пресетами:
{
"name": "МенеджерПродаж",
"synonym": "Менеджер продаж",
"objects": [
"Document.РеализацияТоваровУслуг: @edit",
"Catalog.Контрагенты: @view",
"Catalog.Номенклатура: @view",
"InformationRegister.ЦеныНоменклатуры: @view"
]
}
И вызовет /role-compile → /role-validate → /role-info.
Создание роли для регламентного задания
> Проанализируй модуль регламентного задания ОбновлениеКурсовВалют
> и создай роль с минимальными правами для его выполнения
Claude проанализирует код, определит используемые объекты, создаст JSON с точечными правами (без пресетов — только нужные права), и скомпилирует роль.
Создание роли с RLS
> Создай роль для чтения документов с ограничением по организации
Claude использует объектную форму JSON с шаблонами ограничений.
Проверка существующей роли
> Проверь корректность роли Roles/МояРоль/Ext/Rights.xml
Claude вызовет /role-validate и покажет результат: ошибки (невалидный XML, отсутствующие элементы) и предупреждения (неизвестные типы объектов, подозрительные имена прав с подсказками).
Структура файлов роли
Roles/
├── ИмяРоли.xml # Метаданные (UUID, синоним)
└── ИмяРоли/
└── Ext/
└── Rights.xml # Права доступа
Регистрация в Configuration.xml:
<ChildObjects>
<Role>ИмяРоли</Role>
</ChildObjects>
Спецификация
- 1c-role-spec.md — XML-формат прав роли, типы объектов, RLS, шаблоны ограничений
- role-dsl-spec.md — JSON DSL для описания ролей (формат входных данных
/role-compile)