mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-18 09:10:21 +03:00
Auto-build: copilot (powershell) from f4768e2
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
---
|
||||
name: mxl-decompile
|
||||
description: Декомпиляция табличного документа (MXL) в JSON-определение. Используй когда нужно получить редактируемое описание существующего макета
|
||||
argument-hint: <TemplatePath> [OutputPath]
|
||||
allowed-tools:
|
||||
- Bash
|
||||
- Read
|
||||
- Write
|
||||
- Glob
|
||||
---
|
||||
|
||||
# /mxl-decompile — Декомпилятор макета в DSL
|
||||
|
||||
Принимает Template.xml табличного документа 1С и генерирует компактное JSON-определение (DSL). Обратная операция к `/mxl-compile`.
|
||||
|
||||
## Использование
|
||||
|
||||
```
|
||||
/mxl-decompile <TemplatePath> [OutputPath]
|
||||
```
|
||||
|
||||
## Параметры
|
||||
|
||||
| Параметр | Обязательный | Описание |
|
||||
|--------------|:------------:|-----------------------------------------|
|
||||
| TemplatePath | да | Путь к Template.xml |
|
||||
| OutputPath | нет | Путь для JSON (если не указан — stdout) |
|
||||
|
||||
## Команда
|
||||
|
||||
```powershell
|
||||
powershell.exe -NoProfile -File ".github/skills/mxl-decompile/scripts/mxl-decompile.ps1" -TemplatePath "<путь>/Template.xml" [-OutputPath "<путь>.json"]
|
||||
```
|
||||
|
||||
## Рабочий процесс
|
||||
|
||||
Декомпиляция существующего макета для анализа или доработки:
|
||||
|
||||
1. Вызвать `/mxl-decompile` для получения JSON из Template.xml
|
||||
2. Проанализировать или изменить JSON (добавить области, поменять стили)
|
||||
3. Вызвать `/mxl-compile` для генерации нового Template.xml
|
||||
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-ом: перечисленное выше нужно вернуть руками.
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user