Files
cc-1c-skills/docs/role-guide.md
T
Nick Shirokov 8b8bc1225a Refactor role-compile SKILL.md with progressive disclosure
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>
2026-02-10 13:13:59 +03:00

6.8 KiB
Raw Blame History

Роли (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
  1. Claude формирует JSON-определение роли (с пресетами или явными правами)
  2. /role-compile генерирует Roles/ИмяРоли.xml + Roles/ИмяРоли/Ext/Rights.xml
  3. /role-validate проверяет корректность сгенерированного XML
  4. /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)