Files
Nick Shirokov d02ca602a4 Update README and guides for renamed/new ERF skills
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 18:14:05 +03:00

113 lines
6.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Табличный документ (MXL)
Навыки группы `/mxl-*` позволяют анализировать, создавать и модифицировать макеты табличных документов 1С — основной формат печатных форм в конфигурациях 1С:Предприятия.
## Навыки
| Навык | Параметры | Описание |
|-------|-----------|----------|
| `/mxl-info` | `<TemplatePath>` или `<ProcessorName> <TemplateName>` | Анализ структуры: области, параметры, наборы колонок |
| `/mxl-validate` | `<TemplatePath>` или `<ProcessorName> <TemplateName>` | Валидация: индексы, ссылки, границы |
| `/mxl-compile` | `<JsonPath> <OutputPath>` | Компиляция макета из JSON-определения в Template.xml |
| `/mxl-decompile` | `<TemplatePath> [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. `/template-add` — добавить макет 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`