Декомпиляция табличного документа (MXL) в JSON-определение. Используй когда нужно получить редактируемое описание существующего макета
Scanned 9/22/2026
Install to Claude Code
npx -y skills add vandalsvq/edt1c-ai-template --skill mxl-decompile --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Mxl Decompile?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vandalsvq-mxl-decompile)More formats (shields.io, HTML) on the badges page.
---
name: mxl-decompile
description: Декомпиляция табличного документа (MXL) в JSON-определение. Используй когда нужно получить редактируемое описание существующего макета
argument-hint: <TemplatePath> [OutputPath]
allowed-tools:
- Bash
- Read
- Write
- Glob
---
> **Источник:** [Nikolay-Shirokov/cc-1c-skills](https://github.com/Nikolay-Shirokov/cc-1c-skills) (MIT). Навык адаптирован под EDT-проект: рантайм Python, пути к файлам EDT. Нюансы и ограничения — [`docs/skd-mxl-toolkit.md`](../../../docs/skd-mxl-toolkit.md).
> **В EDT-проекте:** табличный документ лежит в `<Объект>/Templates/<Имя>/Template.mxlx` (в конфигураторном
> формате это `Template.xml` — содержимое то же). Сам макет навык не заводит: в EDT он регистрируется
> блоком `<templates>` в `.mdo` объекта-владельца — создавать через `edt_validate_request` →
> `create_metadata`/`update_metadata` или в EDT. После правки — `mxl-validate` и `edt_diagnostics`.
# /mxl-decompile — Декомпилятор макета в DSL
Принимает Template.mxlx табличного документа 1С и генерирует компактное JSON-определение (DSL). Обратная операция к `/mxl-compile`.
## Использование
```
/mxl-decompile <TemplatePath> [OutputPath]
```
## Параметры
| Параметр | Обязательный | Описание |
|--------------|:------------:|-----------------------------------------|
| TemplatePath | да | Путь к Template.mxlx |
| OutputPath | нет | Путь для JSON (если не указан — stdout) |
## Команда
```bash
python3 .claude/skills/mxl-decompile/scripts/mxl-decompile.py -TemplatePath "<путь>/Template.mxlx" [-OutputPath "<путь>.json"]
```
## Рабочий процесс
Декомпиляция существующего макета для анализа или доработки:
1. Вызвать `/mxl-decompile` для получения JSON из Template.mxlx
2. Проанализировать или изменить JSON (добавить области, поменять стили)
3. Вызвать `/mxl-compile` для генерации нового Template.mxlx
4. Вызвать `/mxl-validate` для проверки
Формат JSON на выходе — тот же DSL, что принимает `/mxl-compile`; его описание живёт в навыке `/mxl-compile`.
## Ключи, которых нет в описании DSL
В разобранном макете попадаются ключи, которых нет в инструкции `/mxl-compile`: например,
у `rowStyle` — модификатор `apply`, у ячейки-поля ввода — `controlType: "none"`. Они несут
состояние исходного файла, которое иначе не выразить. Писать их самому не нужно; удалять
из разобранного JSON — тоже: компилятор принимает их обратно как есть, а без них макет
изменится.
## Что нужно знать о пересборке
Правка через DSL — это полная перегенерация макета, а не точечное изменение XML. Поэтому
diff после цикла «декомпиляция → компиляция» обычно шире фактической доработки, даже когда
содержание сохранено целиком.
Побайтового совпадения с исходником ждать не всегда стоит. В макетах, которые долго правили
в Конфигураторе, остаются следы прежних состояний: например, формат ячейки несёт ширину
колонки, которая с тех пор изменилась. Из итогового документа такие значения не выводятся,
и в пересобранный файл они не возвращаются.
Не переживают цикл вовсе (в JSON не попадают, в XML не возвращаются):
- объединения, не привязанные к ячейке — по всей высоте или ширине документа;
- настройки диаграмм (`Chart`, `GanttChart`) — сам рисунок сохраняется, его содержимое нет;
- область печати.
Если задача — сохранить чужой макет как есть и поправить в нём малое, сверяйте результат
`/mxl-info` или diff-ом: перечисленное выше нужно вернуть руками.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!