# Role Validate

Валидация роли 1С.

- Repository: https://github.com/Nikolay-Shirokov/cc-1c-skills (750 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-31
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Nikolay-Shirokov/cc-1c-skills --skill role-validate -g -a claude-code -y`
Codex: `npx skills add Nikolay-Shirokov/cc-1c-skills --skill role-validate -g -a codex -y`
Cursor: `npx skills add Nikolay-Shirokov/cc-1c-skills --skill role-validate -g -a cursor -y`
Gemini CLI: `npx skills add Nikolay-Shirokov/cc-1c-skills --skill role-validate -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add Nikolay-Shirokov/cc-1c-skills`

## Description

Валидация роли 1С. Используй после создания или модификации роли для проверки корректности

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# /role-validate, валидация роли 1С

Проверяет корректность `Rights.xml` роли: формат XML, namespace, глобальные флаги, типы объектов, имена прав, RLS-ограничения, шаблоны. Опционально проверяет метаданные роли (UUID, имя, синоним).

## Параметры

| Параметр     | Обяз. | Умолч. | Описание                                        |
|--------------|:-----:|---------|-------------------------------------------------|
| RightsPath   | да    |, | Путь к роли (директория или `Rights.xml`)        |
| Detailed     | нет   |, | Подробный вывод (все проверки, включая успешные)  |
| MaxErrors    | нет   | 30      | Макс. ошибок до остановки (по умолчанию 30)      |
| OutFile      | нет   |, | Записать результат в файл (UTF-8 BOM)            |

## Команда

```powershell
powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/role-validate.ps1" -RightsPath "Roles/МояРоль"
```

## Что считается ошибкой

Ошибка (код возврата 1), а не предупреждение:

- тип объекта, не имеющий прав в ролях (`Enum`, `CommonModule`, `CommonPicture`, `ScheduledJob` и т.п.), конфигурация с блоком прав на перечисление не загружается в базу, конфигуратор зависает без сообщений;
- незнакомый тип объекта (опечатка);
- имя права, которого у этого типа нет;
- вид вложенности, невозможный у данного типа, и недопустимое право у вложенного объекта;
- право на сервис целиком (`HTTPService.Имя` и т.п.), платформа проверяет вложенный объект (метод шаблона URL, операцию, канал), а роль с правом на корень молча не работает: маршруты отвечают `403 Недостаточно прав`.

Полные списки «тип → права» и виды вложенности, в `role-compile/dsl-reference.md`.

