mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 08:04:56 +03:00
d02ca602a4
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
113 lines
6.9 KiB
Markdown
113 lines
6.9 KiB
Markdown
# Табличный документ (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`
|