mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-17 16:50:30 +03:00
docs(mxl-compile,mxl-decompile): закрыть дыры каскада, найденные обходом по задачам
Перечитал каскад как модель, идущая от задачи, и нашёл три места, где задача упиралась в пустоту: - ключ pictureParameter стоял в схеме DSL, но не был описан нигде, а задача «картинка в ячейке» из индекса вела в drawings.md, где её не было. Добавлен раздел: picIndex считается с единицы по порядку объявления в pictures, выравнивания и положение текста — ключи стиля, pictureParameter — ключ ячейки; - объектная форма rowStyle с модификатором apply нигде не описана, хотя её пишет декомпилятор: модель, разобравшая чужой макет, встречала непонятный ключ. Такие формы собраны в mxl-decompile отдельной таблицей — вместе с controlType "none", пустым valueType, пустой привязкой к раскладке и записью палитры без картинки; - область печати и повторение шапки при печати DSL не выражает — теперь это сказано прямо в print.md, а не выясняется опытным путём. Индекс задач дополнен колонкой ключей: модель, увидевшая незнакомый ключ в схеме, сразу находит нужный файл.
This commit is contained in:
@@ -46,15 +46,15 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J
|
||||
Ниже — всё, что нужно для типового макета. Остальное лежит по файлу на задачу, читать нужно
|
||||
только свой:
|
||||
|
||||
| Задача | Файл |
|
||||
|---|---|
|
||||
| Свойство стиля вне частых: отступ, защита, узор, маска, формат редактирования | `reference/style-properties.md` |
|
||||
| Область, не описываемая диапазоном строк; свои ширины колонок у части документа | `reference/layout.md` |
|
||||
| Колонтитулы, ориентация, поля, масштаб | `reference/print.md` |
|
||||
| Картинка, фигура или надпись поверх сетки; картинка в ячейке | `reference/drawings.md` |
|
||||
| Ячейки для ввода данных пользователем | `reference/input-cells.md` |
|
||||
| Сворачиваемые группы строк или колонок | `reference/groups.md` |
|
||||
| Всплывающая подсказка у ячейки | `reference/notes.md` |
|
||||
| Задача | Ключи | Файл |
|
||||
|---|---|---|
|
||||
| Свойство стиля вне частых: отступ, защита, узор, маска, поведение при выводе | — | `reference/style-properties.md` |
|
||||
| Область, не описываемая диапазоном строк; свои ширины колонок у части документа | `namedAreas`, `columnSets`, `columnSet` | `reference/layout.md` |
|
||||
| Колонтитулы, ориентация, поля, масштаб | `header`, `footer`, `printSettings` | `reference/print.md` |
|
||||
| Картинка, фигура или надпись поверх сетки; картинка в ячейке | `pictures`, `drawings`, `pictureParameter` | `reference/drawings.md` |
|
||||
| Ячейки для ввода данных пользователем | `valueType`, `controlType`, `value` | `reference/input-cells.md` |
|
||||
| Сворачиваемые группы строк или колонок | `rowGroups`, `columnGroups` | `reference/groups.md` |
|
||||
| Всплывающая подсказка у ячейки | `note` | `reference/notes.md` |
|
||||
|
||||
## Пример
|
||||
|
||||
|
||||
@@ -47,3 +47,26 @@
|
||||
картинки (по флажку «прозрачный фон» Конфигуратор берёт её правый нижний пиксель).
|
||||
|
||||
Одну запись `pictures` могут использовать несколько рисунков — данные в макете не дублируются.
|
||||
|
||||
## Картинка в ячейке
|
||||
|
||||
Картинка бывает не только поверх сетки, но и внутри ячейки — тогда её задаёт стиль, а сама
|
||||
картинка берётся из той же палитры `pictures`:
|
||||
|
||||
```json
|
||||
{
|
||||
"columns": 2,
|
||||
"pictures": { "стоп": { "ref": "v8ui:Стоп48" } },
|
||||
"styles": { "значок": { "picIndex": 1, "picHorizontalAlignment": "Center",
|
||||
"picVerticalAlignment": "Center", "textPosition": "Bottom" } },
|
||||
"areas": [{ "rows": [
|
||||
[{ "style": "значок", "text": "удалить", "pictureParameter": "Удалить" }]
|
||||
]}]
|
||||
}
|
||||
```
|
||||
|
||||
- `picIndex` — номер записи в `pictures`, считая с единицы в порядке объявления;
|
||||
- `picHorizontalAlignment`, `picVerticalAlignment`, `pictureSizeMode`, `textPosition` — как
|
||||
картинка стоит в ячейке и где относительно неё текст (значения — в `style-properties.md`);
|
||||
- `pictureParameter` — ключ самой ЯЧЕЙКИ, а не стиля: имя параметра, которым картинку
|
||||
подставляют из кода, как `param` подставляет текст. С текстом ячейки уживается.
|
||||
|
||||
@@ -51,3 +51,9 @@
|
||||
`blackAndWhite`, `printerName`, `paper`, `paperSource`, `pageWidth`, `pageHeight`, `duplexType`,
|
||||
`pagePlacementAlternation`, `firstPageNumber`. Незнакомый ключ — ошибка. Порядок в объекте не
|
||||
важен: компилятор пишет свойства в том порядке, что и платформа.
|
||||
|
||||
## Чего в DSL нет
|
||||
|
||||
Область печати и повторение области при печати (шапка на каждой странице) не описываются:
|
||||
эти настройки задаются в Конфигураторе и при пересборке чужого макета теряются. Если задача
|
||||
требует именно их — правьте макет в Конфигураторе, а не через DSL.
|
||||
|
||||
@@ -43,6 +43,21 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-decompile.ps1"
|
||||
|
||||
Формат JSON на выходе — тот же DSL, что принимает `/mxl-compile`; его описание живёт в навыке `/mxl-compile`.
|
||||
|
||||
## Формы, которые встречаются только в разобранном макете
|
||||
|
||||
Их пишет декомпилятор, чтобы ничего не потерять; для авторинга они не нужны, но в чужом
|
||||
макете попадаются:
|
||||
|
||||
| Запись | Значение |
|
||||
|---|---|
|
||||
| `"rowStyle": { "style": "имя", "apply": "row" }` | Стиль строки лёг ТОЛЬКО на саму строку. `"cells"` — только на ячейки, `"both"` (умолчание при обычной записи именем) — на то и другое |
|
||||
| `"controlType": "none"` | У ячейки-поля ввода элемент управления не задан вовсе |
|
||||
| `"valueType": ""` | Ячейка содержит значение, но тип не ограничен |
|
||||
| `"columnSet": ""` | У области нет привязки к колоночной раскладке |
|
||||
| `"pictures": { "имя": {} }` | Запись палитры без картинки |
|
||||
|
||||
Компилятор принимает их обратно как есть — правя такой JSON, эти ключи можно не трогать.
|
||||
|
||||
## Что нужно знать о пересборке
|
||||
|
||||
Правка через DSL — это полная перегенерация макета, а не точечное изменение XML. Поэтому
|
||||
|
||||
@@ -438,6 +438,29 @@
|
||||
|
||||
Одну запись `pictures` могут использовать несколько рисунков — данные в макете не дублируются.
|
||||
|
||||
## Картинка в ячейке
|
||||
|
||||
Картинка бывает не только поверх сетки, но и внутри ячейки — тогда её задаёт стиль, а сама
|
||||
картинка берётся из той же палитры `pictures`:
|
||||
|
||||
```json
|
||||
{
|
||||
"columns": 2,
|
||||
"pictures": { "стоп": { "ref": "v8ui:Стоп48" } },
|
||||
"styles": { "значок": { "picIndex": 1, "picHorizontalAlignment": "Center",
|
||||
"picVerticalAlignment": "Center", "textPosition": "Bottom" } },
|
||||
"areas": [{ "rows": [
|
||||
[{ "style": "значок", "text": "удалить", "pictureParameter": "Удалить" }]
|
||||
]}]
|
||||
}
|
||||
```
|
||||
|
||||
- `picIndex` — номер записи в `pictures`, считая с единицы в порядке объявления;
|
||||
- `picHorizontalAlignment`, `picVerticalAlignment`, `pictureSizeMode`, `textPosition` — как
|
||||
картинка стоит в ячейке и где относительно неё текст (значения — в разделе «Полный список свойств стиля»);
|
||||
- `pictureParameter` — ключ самой ЯЧЕЙКИ, а не стиля: имя параметра, которым картинку
|
||||
подставляют из кода, как `param` подставляет текст. С текстом ячейки уживается.
|
||||
|
||||
## `rowStyle` — оформление строки
|
||||
|
||||
Стиль применяется ко ВСЕЙ ширине строки: позиции без явных ячеек получают тот же стиль. Так в табличных строках получаются сплошные рамки. Он же становится оформлением самой строки — именно так платформа хранит строку, оформленную целиком.
|
||||
|
||||
Reference in New Issue
Block a user