Cc-1c-skills role-compile
Создание роли 1С из описания прав. Используй когда нужно создать новую роль с набором прав на объекты
install
source · Clone the upstream repo
git clone https://github.com/Nikolay-Shirokov/cc-1c-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Nikolay-Shirokov/cc-1c-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/role-compile" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-role-compile && rm -rf "$T"
manifest:
.claude/skills/role-compile/SKILL.mdsource content
/role-compile — генерация роли 1С из JSON DSL
Принимает JSON-определение роли → генерирует
Roles/Имя.xml (метаданные) и Roles/Имя/Ext/Rights.xml (права). UUID автоматически.
Параметры и команда
| Параметр | Описание |
|---|---|
| Путь к JSON-определению роли |
| Корень выгрузки конфигурации (где , и т.д.) |
powershell.exe -NoProfile -File .claude/skills/role-compile/scripts/role-compile.ps1 -JsonPath "<json>" -OutputDir "<ConfigDir>"
Создаёт
{OutputDir}/Roles/Имя.xml и {OutputDir}/Roles/Имя/Ext/Rights.xml. Регистрирует <Role> в Configuration.xml.
JSON DSL
Структура
{ "name": "ИмяРоли", "synonym": "Отображаемое имя", "objects": [...], "templates": [...] }
Необязательные:
comment (""), setForNewObjects (false), setForAttributesByDefault (true), independentRightsOfChildObjects (false).
Shorthand-строки и объектная форма
"objects": [ "Catalog.Номенклатура: @view", "Document.Реализация: @edit", "DataProcessor.Загрузка: @view", "InformationRegister.Цены: Read, Update", { "name": "Document.Продажа", "preset": "view", "rights": {"Delete": false}, "rls": {"Read": "#Шаблон(\"\")"} } ]
- Shorthand:
или"Тип.Имя: @пресет""Тип.Имя: Право1, Право2" - Объектная форма:
+preset
(переопределения) +rights
(ограничения)rls
Пресеты
| Пресет | Действие |
|---|---|
| Просмотр — Read, View (+InputByString для справочников/документов; Use+View для обработок/отчётов) |
| Полное редактирование — CRUD + Interactive* + Posting (документы) |
@ обязателен в shorthand. В объектной форме — "preset": "view" без @.
Для сервисов (WebService, HTTPService, IntegrationService) пресеты не определены — используй явные права:
"WebService.Имя: Use".
Русские синонимы
Поддерживаются русские типы (
Справочник→Catalog, Документ→Document) и права (Чтение→Read, Просмотр→View). Смешивание допустимо: "Справочник.Контрагенты: Чтение, View".
Шаблоны RLS
"templates": [{"name": "ДляОбъекта(Мод)", "condition": "ГДЕ Организация = &ТекОрг"}]
Ссылка в
rls: "#ДляОбъекта(\"\")". Символ & автоматически экранируется в XML.
Примеры
Простая роль
{ "name": "ЧтениеНоменклатуры", "synonym": "Чтение номенклатуры", "objects": ["Catalog.Номенклатура: @view", "Catalog.Контрагенты: @view", "DataProcessor.Загрузка: @view"] }
Роль с RLS
{ "name": "ЧтениеДокументовПоОрганизации", "synonym": "Чтение документов (ограничение по организации)", "objects": [ "Catalog.Организации: @view", {"name": "Document.РеализацияТоваровУслуг", "preset": "view", "rls": {"Read": "#ДляОбъекта(\"\")"}} ], "templates": [{"name": "ДляОбъекта(Модификатор)", "condition": "ГДЕ Организация = &ТекущаяОрганизация"}] }
Подробные таблицы пресетов, русских синонимов и дополнительные примеры — в
dsl-reference.md.
Верификация
/role-validate <RightsPath> [MetadataPath] — проверка корректности XML, прав, RLS /role-info <RightsPath> — визуальная сводка структуры