1c-skd-validate · diff
git:20260225.16f6008 to git:20260318.5802562
13 added, 39 removed. Audit A to A.
---
name: 1c-skd-validate
description: Валидация схемы компоновки данных 1С (СКД). Используй после создания или модификации СКД для проверки корректности
- argument-hint: <TemplatePath> [-MaxErrors 20]
+ argument-hint: <TemplatePath> [-Detailed] [-MaxErrors 20]
allowed-tools:
- Bash
- Read
- Glob
---
# /skd-validate — валидация СКД (DataCompositionSchema)
Проверяет структурную корректность Template.xml схемы компоновки данных. Выявляет ошибки формата, битые ссылки, дубликаты имён.
- ## Параметры и команда
+ ## Параметры
- | Параметр | Описание |
- |----------|----------|
- | `TemplatePath` | Путь к Template.xml или каталогу макета (авто-резолв в `Ext/Template.xml`) |
- | `MaxErrors` | Макс. ошибок до остановки (по умолчанию 20) |
- | `OutFile` | Записать результат в файл |
+ | Параметр | Обяз. | Умолч. | Описание |
+ |--------------|:-----:|---------|---------------------------------------------------------|
+ | TemplatePath | да | — | Путь к Template.xml или каталогу макета |
+ | Detailed | нет | — | Показывать [OK] для каждой проверки |
+ | MaxErrors | нет | 20 | Остановиться после N ошибок |
+ | OutFile | нет | — | Записать результат в файл |
+ ## Команда
+
```powershell
- powershell.exe -NoProfile -File skills/1c-skd-validate/scripts/skd-validate.ps1 -TemplatePath "<путь>"
+ powershell.exe -NoProfile -File skills/1c-skd-validate/scripts/skd-validate.ps1 -TemplatePath "src/МойОтчёт/Templates/ОсновнаяСхема"
+ powershell.exe -NoProfile -File skills/1c-skd-validate/scripts/skd-validate.ps1 -TemplatePath "Catalogs/Номенклатура/Templates/СКД/Ext/Template.xml"
```
## Проверки (~30)
| Группа | Что проверяется |
|--------|-----------------|
| **Root** | XML parse, корневой элемент `DataCompositionSchema`, default namespace, ns-префиксы |
| **DataSource** | Наличие, name не пуст, type валиден (Local/External), уникальность имён |
| **DataSet** | Наличие, xsi:type валиден, name не пуст, уникальность, ссылка на dataSource, query не пуст |
| **Fields** | dataPath не пуст, field не пуст, уникальность dataPath в наборе |
| **Links** | source/dest ссылаются на существующие наборы, expressions не пусты |
| **CalcFields** | dataPath не пуст, expression не пуст, уникальность, коллизии с полями наборов |
| **TotalFields** | dataPath не пуст, expression не пуст |
| **Parameters** | name не пуст, уникальность |
| **Templates** | name не пуст, уникальность |
| **GroupTemplates** | template ссылается на существующий template, templateType валиден |
| **Variants** | Наличие, name не пуст, settings element присутствует |
| **Settings** | selection/filter/order ссылаются на известные поля, comparisonType валиден, structure items типизированы |
- ## Коды выхода
-
- | Код | Значение |
- |-----|----------|
- | 0 | Ошибок нет (могут быть предупреждения) |
- | 1 | Есть ошибки |
-
- ## Пример вывода
-
- ```
- === Validation: Template.xml ===
-
- [OK] XML parsed successfully
- [OK] Root element: DataCompositionSchema
- [OK] Default namespace correct
- [OK] 1 dataSource(s) found, names unique
- [OK] 1 dataSet(s) found, names unique
- [OK] DataSet "НаборДанных1": 2 fields, dataPath unique
- [OK] 1 totalField(s): dataPath and expression present
- [OK] 1 settingsVariant(s) found
-
- === Result: 0 errors, 0 warnings ===
- ```
-
- ## Верификация
-
- ```
- /skd-compile <JsonPath> <OutputPath> — генерация XML
- /skd-validate <OutputPath> — проверка результата
- /skd-info <OutputPath> — визуальная сводка
- ```
+ Exit code: 0 = OK, 1 = есть ошибки. По умолчанию краткий вывод. `-Detailed` для поштучной детализации.