AgentSkillsCN

mxl-validate

验证表格文档(MXL)的结构正确性

SKILL.md
--- frontmatter
name: mxl-validate
description: Валидация структурной корректности макета табличного документа (MXL)
argument-hint: <TemplatePath> или <ProcessorName> <TemplateName>
allowed-tools:
  - Bash
  - Read
  - Glob

/mxl-validate — Валидатор макета

Проверяет Template.xml на структурные ошибки, которые платформа 1С может молча проигнорировать (с возможной потерей данных или повреждением макета).

Использование

code
/mxl-validate <TemplatePath>
/mxl-validate <ProcessorName> <TemplateName>

Параметры

ПараметрОбязательныйПо умолчаниюОписание
TemplatePathнетПрямой путь к Template.xml
ProcessorNameнетИмя обработки (альтернатива пути)
TemplateNameнетИмя макета (альтернатива пути)
SrcDirнетsrcКаталог исходников
MaxErrorsнет20Остановиться после N ошибок

Укажите либо -TemplatePath, либо оба -ProcessorName и -TemplateName.

Команда

powershell
powershell.exe -NoProfile -File .claude/skills/mxl-validate/scripts/mxl-validate.ps1 -TemplatePath "<путь>"

Или по имени обработки/макета:

powershell
powershell.exe -NoProfile -File .claude/skills/mxl-validate/scripts/mxl-validate.ps1 -ProcessorName "<Имя>" -TemplateName "<Макет>" [-SrcDir "<каталог>"]

Выполняемые проверки

#ПроверкаСерьёзность
1<height> >= максимальный индекс строки + 1ERROR
2<vgRows> <= <height>WARN
3Индексы форматов ячеек (<f>) в пределах палитры форматовERROR
4<formatIndex> строк и колонок в пределах палитрыERROR
5Индексы колонок в ячейках (<i>) в пределах количества колонок (с учётом набора)ERROR
6<columnsID> строк ссылается на существующий набор колонокERROR
7<columnsID> в merge/namedItem ссылается на существующий наборERROR
8Диапазоны именованных областей в пределах границ документаERROR
9Диапазоны объединений в пределах границ документаERROR
10Индексы шрифтов в форматах в пределах палитры шрифтовERROR
11Индексы линий границ в форматах в пределах палитры линийERROR
12pictureIndex рисунков ссылается на существующую картинкуERROR

Вывод

code
=== Validation: ИмяМакета ===

[OK]    height (40) >= max row index + 1 (40), rowsItem count=34
[OK]    Font refs: max=3, palette size=4
[ERROR] Row 15: cell format index 38 > format palette size (37)
[OK]    Column indices: max in default set=32, default column count=33
---
Errors: 1, Warnings: 0

Код возврата: 0 = все проверки пройдены, 1 = есть ошибки.

Когда использовать

  • После генерации макета: запустить валидатор для выявления структурных ошибок до сборки EPF
  • После редактирования Template.xml: убедиться, что индексы и ссылки остались валидными
  • При ошибках: исправить найденные проблемы и перезапустить до полного прохождения

Защита от переполнения

Останавливается после 20 ошибок по умолчанию (настраивается через -MaxErrors). Итоговая строка с количеством ошибок/предупреждений выводится всегда.