Cc-1c-skills mxl-compile
Компиляция табличного документа (MXL) из JSON-определения. Используй когда нужно создать макет печатной формы
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/mxl-compile" ~/.claude/skills/nikolay-shirokov-cc-1c-skills-mxl-compile && rm -rf "$T"
manifest:
.claude/skills/mxl-compile/SKILL.mdsource content
/mxl-compile — Компилятор макета из DSL
Принимает компактное JSON-определение макета и генерирует корректный Template.xml для табличного документа 1С. Claude описывает что нужно (области, параметры, стили), скрипт обеспечивает корректность XML (палитры, индексы, объединения, namespace).
Использование
/mxl-compile <JsonPath> <OutputPath>
Параметры
| Параметр | Обязательный | Описание |
|---|---|---|
| JsonPath | да | Путь к JSON-определению макета |
| OutputPath | да | Путь для генерации Template.xml |
Команда
powershell.exe -NoProfile -File .claude/skills/mxl-compile/scripts/mxl-compile.ps1 -JsonPath "<путь>.json" -OutputPath "<путь>/Template.xml"
Рабочий процесс
- Claude пишет JSON-определение (Write tool) → файл
.json - Claude вызывает
для генерации Template.xml/mxl-compile - Claude вызывает
для проверки корректности/mxl-validate - Claude вызывает
для верификации структуры/mxl-info
Если макет создаётся по изображению (скриншот, скан печатной формы) — сначала вызвать
/img-grid для наложения сетки, по ней определить границы колонок и пропорции, затем использовать "Nx" ширины + "page" для автоматического расчёта размеров.
JSON-схема DSL
Полная спецификация формата:
(прочитать через Read tool перед написанием JSON).docs/mxl-dsl-spec.md
Краткая структура:
{ columns, page, defaultWidth, columnWidths, fonts: { name: { face, size, bold, italic, underline, strikeout } }, styles: { name: { font, align, valign, border, borderWidth, wrap, format } }, areas: [{ name, rows: [{ height, rowStyle, cells: [ { col, span, rowspan, style, param, detail, text, template } ]}]}] }
Ключевые правила:
— формат страницы (page
,"A4-landscape"
или число). Автоматически вычисляет"A4-portrait"
из суммы пропорцийdefaultWidth"Nx"
— 1-based позиция колонкиcol
— автозаполнение пустот стилем (рамки по всей ширине)rowStyle- Тип заполнения определяется автоматически:
→ Parameter,param
→ Text,text
→ Templatetemplate
— объединение строк вниз (rowStyle учитывает занятые ячейки)rowspan