# Табличный документ (MXL) Навыки группы `/mxl-*` позволяют анализировать, создавать и модифицировать макеты табличных документов 1С — основной формат печатных форм в конфигурациях 1С:Предприятия. ## Навыки | Навык | Параметры | Описание | |-------|-----------|----------| | `/mxl-info` | `` или ` ` | Анализ структуры: области, параметры, наборы колонок | | `/mxl-validate` | `` или ` ` | Валидация: индексы, ссылки, границы | | `/mxl-compile` | ` ` | Компиляция макета из JSON-определения в Template.xml | | `/mxl-decompile` | ` [OutputPath]` | Декомпиляция Template.xml в JSON-определение | ## Сценарии использования ### Создание макета печатной формы с нуля Вы описываете макет словами или через JSON DSL, Claude компилирует его в Template.xml. ``` > Создай макет накладной М-11: шапка с реквизитами организации и склада, > таблица с колонками (номер, наименование, единица, количество, цена, сумма), > итоговая строка, подписи. ``` Claude напишет JSON-определение с областями, параметрами и стилями, вызовет `/mxl-compile` для генерации XML, затем `/mxl-validate` и `/mxl-info` для проверки. Рабочий цикл: 1. Claude пишет JSON-определение макета 2. `/mxl-compile` → Template.xml 3. `/mxl-validate` → проверка корректности 4. `/mxl-info` → верификация структуры (области, параметры) ### Создание макета по изображению Если есть скриншот или скан печатной формы, `/img-grid` поможет точно определить пропорции колонок. ``` > Вот изображение формы М-11. Создай макет по нему. ``` Рабочий цикл: 1. `/img-grid` → изображение с пронумерованной сеткой 2. Claude считает координаты границ колонок по сетке 3. Объединяет границы всех таблиц → базовая решётка 4. Пишет JSON DSL с пропорциями `"Nx"` и `"page": "A4-landscape"` 5. `/mxl-compile` автоматически вычисляет абсолютные ширины из пропорций и формата страницы 6. `/mxl-validate` → `/mxl-info` → проверка ### Анализ существующего макета Быстрый обзор структуры макета без чтения тысяч строк XML. ``` > Покажи структуру макета ПФ_MXL_М11 ``` Claude вызовет `/mxl-info` и выведет области, параметры и наборы колонок. С флагом `-WithText` покажет ещё и текстовое содержимое ячеек (заголовки колонок, надписи). ### Модификация существующего макета Декомпиляция в JSON, правка, компиляция обратно. ``` > Добавь в макет М-11 колонку "Примечание" ``` Claude вызовет `/mxl-decompile` для получения JSON, добавит колонку в определение, вызовет `/mxl-compile` и `/mxl-validate`. Рабочий цикл: 1. `/mxl-decompile` → JSON из существующего Template.xml 2. Claude модифицирует JSON (добавляет области, меняет стили, параметры) 3. `/mxl-compile` → обновлённый Template.xml 4. `/mxl-validate` → проверка > **Ограничения:** Этот сценарий подразумевает полную перегенерацию макета, а не точечную правку XML. Поэтому diff может показать больше изменений, чем фактическая доработка. Кроме того, DSL пока поддерживает не все конструкции табличного документа — для сложных макетов с рисунками, штрихкодами или нестандартным форматированием часть информации может быть потеряна при round-trip. ### Валидация макета Проверка структурной корректности после любых изменений. ``` > Проверь макет ПФ_MXL_М11 ``` Claude вызовет `/mxl-validate`, который проверит индексы палитр, ссылки на наборы колонок, границы областей и другие структурные зависимости. ### Примеры слеш-команд ``` > /mxl-info src/МояОбработка/Templates/ПФ_MXL_Накладная/Ext/Template.xml > /mxl-info МояОбработка ПФ_MXL_Накладная > /mxl-validate МояОбработка ПФ_MXL_Накладная > /mxl-compile макет.json src/МояОбработка/Templates/ПФ_MXL_Накладная/Ext/Template.xml > /mxl-decompile src/МояОбработка/Templates/ПФ_MXL_Накладная/Ext/Template.xml макет.json ``` ## Связь с EPF-навыками Макет табличного документа — часть обработки. Типичный сценарий создания печатной формы: 1. `/epf-init` — создать обработку 2. `/epf-add-template` — добавить макет SpreadsheetDocument (с именем `ПФ_MXL_...`) 3. `/mxl-compile` — заполнить макет содержимым из JSON-определения 4. `/epf-bsp-init` — добавить регистрацию БСП с видом ПечатнаяФорма 5. `/epf-bsp-add-command` — добавить команду печати 6. `/epf-build` — собрать EPF ## Спецификации - [Табличный документ (MXL)](1c-spreadsheet-spec.md) — XML-формат SpreadsheetDocument, совместимость версий - [MXL DSL](mxl-dsl-spec.md) — JSON-формат описания макета для `/mxl-compile` и `/mxl-decompile`