| name | mxl-compile |
| description | Компиляция табличного документа (MXL) из JSON-определения. Используй когда нужно создать макет печатной формы |
| argument-hint | <JsonPath> <OutputPath> |
| allowed-tools | ["Bash","Read","Write","Glob"] |
/mxl-compile — Компилятор макета из DSL
MCP routing
- Preferred path: use MCP
unica tool unica.mxl.compile; unica owns XML/JSON DSL work and refreshes related workspace caches after mutations.
- Do not call internal MCP/CLI adapters directly. They are hidden behind
unica and synchronized by the orchestrator.
- Execution path: call MCP
unica tool unica.mxl.compile; skill-local operation scripts are not part of the workflow.
- For mutating operations, pass
dryRun: false only when the user explicitly requested the change; otherwise keep the default dry run.
- Vendor support guard runs inside
unica; if it blocks a locked/read-only supported object, prefer CFE/release-support or an explicit support-state change plan instead of editing raw support metadata.
Принимает компактное JSON-определение макета и генерирует корректный Template.xml для табличного документа 1С. Ассистент описывает что нужно (области, параметры, стили), MCP-инструмент обеспечивает корректность XML (палитры, индексы, объединения, namespace).
Использование
/mxl-compile <JsonPath> <OutputPath>
Параметры
| Параметр | Обязательный | Описание |
|---|
| JsonPath | да | Путь к JSON-определению макета |
| OutputPath | да | Путь для генерации Template.xml |
MCP вызов
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "unica.mxl.compile",
"arguments": {
"cwd": "<workspace>",
"JsonPath": "mxl/print-form.json",
"OutputPath": "src/Reports/ОтчетПродажи/Templates/ПФ_MXL_Продажи/Ext/Template.xml",
"dryRun": false
}
}
}
Рабочий процесс
- Ассистент пишет JSON-определение через Write tool в файл
.json
- Ассистент вызывает MCP
unica.mxl.compile для генерации Template.xml
- Ассистент вызывает MCP
unica.mxl.validate для проверки корректности
- Ассистент вызывает MCP
unica.mxl.info для верификации структуры
Если макет создаётся по изображению (скриншот, скан печатной формы) — сначала вызвать /img-grid для наложения сетки, по ней определить границы колонок и пропорции, затем использовать "Nx" ширины + "page" для автоматического расчёта размеров.
JSON-схема DSL
Полная спецификация формата: docs/mxl-dsl-spec.md (прочитать через Read tool перед написанием JSON).
Краткая структура:
{ 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"
col — 1-based позиция колонки
rowStyle — автозаполнение пустот стилем (рамки по всей ширине)
- Тип заполнения определяется автоматически:
param → Parameter, text → Text, template → Template
rowspan — объединение строк вниз (rowStyle учитывает занятые ячейки)