mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-18 01:00:24 +03:00
feat(mxl-compile,mxl-decompile,mxl-validate): примечания к ячейкам
Ключ ячейки note описывает всплывающую подсказку: строкой, объектом языков или полной формой с оформлением, признаком авторазмера и геометрией окошка. Из четырнадцати тегов, которые платформа пишет в примечание, настоящей информации несут пять. drawingType, pictureSize и id — константы на всём корпусе. Якорь конца это координаты самой ячейки (1087 примечаний из 1087), якорь начала — 1/1 (1085 из 1087, три исключения в одном макете берёт раундтрип-ключ anchor). Остаётся текст, стиль, autoSize и четыре смещения, причём autoSize описывает не наличие геометрии, а пересчёт размера: при true координаты всё равно записаны и осмысленны. Стиль примечания — обычная запись палитры; без своего стиля пишем тот, что даёт Конфигуратор (926 примечаний корпуса из 1087). Формат примечания добавлен в сбор именованных стилей декомпилятора и в перечень владельцев формата: иначе стиль подсказки вырезался как неиспользуемый и ссылка оставалась висячей. mxl-validate: индекс формата примечания проверяется наравне с ячейкой, строкой и колонкой. Стенд СПримечанием собирается байт в байт обоими портами и добавлен в платформенные фикстуры. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
faa8ab7659
commit
4005f36cce
@@ -601,6 +601,43 @@ current-config не объявляет, поэтому вынести объяв
|
||||
обратные, ячейки продолжают ссылаться на записи со старыми ширинами. Из итогового XML это
|
||||
значение не выводится — воспроизводить его не нужно.
|
||||
|
||||
## Примечание к ячейке
|
||||
|
||||
```xml
|
||||
<note>
|
||||
<drawingType>Comment</drawingType>
|
||||
<id>0</id>
|
||||
<formatIndex>1</formatIndex>
|
||||
<text><v8:item><v8:lang>ru</v8:lang><v8:content>тест</v8:content></v8:item></text>
|
||||
<beginRow>1</beginRow> <beginRowOffset>-21</beginRowOffset>
|
||||
<endRow>0</endRow> <endRowOffset>51</endRowOffset>
|
||||
<beginColumn>1</beginColumn> <beginColumnOffset>21</beginColumnOffset>
|
||||
<endColumn>0</endColumn> <endColumnOffset>408</endColumnOffset>
|
||||
<autoSize>true</autoSize>
|
||||
<pictureSize>Stretch</pictureSize>
|
||||
</note>
|
||||
```
|
||||
|
||||
Конструкция редкая (188 макетов, 1 087 примечаний), но структура жёсткая: все четырнадцать тегов
|
||||
присутствуют у всех 1 087, порядок один и тот же, опциональных нет. Информации при этом меньше,
|
||||
чем тегов:
|
||||
|
||||
| Тег | Наблюдение |
|
||||
|---|---|
|
||||
| `drawingType`, `pictureSize`, `id` | константы: `Comment`, `Stretch`, `0` |
|
||||
| `beginRow`, `beginColumn` | всегда `1`/`1` — 1085 и 1086 из 1087; три исключения в одном макете |
|
||||
| `endRow`, `endColumn` | **координаты самой ячейки** — 1087 из 1087 |
|
||||
| четыре смещения | авторские: сдвиг окошка меняет `begin*Offset`, растяжение — `end*Offset` |
|
||||
| `autoSize` | `true` у 1036 из 1087 |
|
||||
|
||||
`autoSize` описывает не наличие геометрии, а пересчёт размера: при `true` окошко всё равно несёт
|
||||
координаты, и они осмысленны — 306 различных пар `(endRowOffset, endColumnOffset)` против
|
||||
12 различных пар положения.
|
||||
|
||||
Формат примечания — обычная запись палитры, на корпусе их всего 7 различных: 926 — стиль
|
||||
подсказки (`verticalAlignment: Top` + `style:ToolTipTextColor` + `style:ToolTipBackColor`),
|
||||
105 — он же с заливкой `#FFFAD9`.
|
||||
|
||||
## Ресурсы картинок
|
||||
|
||||
```xml
|
||||
|
||||
+31
-1
@@ -188,6 +188,7 @@
|
||||
| `controlType` | нет | `input` | Элемент управления поля ввода: `input` или `checkbox`. Только вместе с `valueType` |
|
||||
| `value` | нет | — | Значение в поле ввода. Только вместе с `valueType` |
|
||||
| `control` | нет | — | Настройки элемента управления в записи платформы (base64). Раундтрип, не для ручного авторинга |
|
||||
| `note` | нет | — | Примечание к ячейке (см. ниже) |
|
||||
|
||||
### Содержимое ячейки
|
||||
|
||||
@@ -270,6 +271,35 @@
|
||||
включая `Boolean`. Флажок задаётся явно. Значение `"none"` (тега элемента управления нет вовсе) —
|
||||
форма раундтрипа, для ручного авторинга не нужна.
|
||||
|
||||
## Примечание к ячейке
|
||||
|
||||
Всплывающая подсказка, которую платформа показывает при наведении. Задаётся ключом `note` —
|
||||
строкой, объектом «язык → текст» или полной формой:
|
||||
|
||||
```json
|
||||
{ "col": 1, "text": "Итого", "note": "Сумма без НДС" }
|
||||
{ "col": 2, "note": { "ru": "на дату документа", "en": "as of the document date" } }
|
||||
{ "col": 3, "note": { "text": "не более 20%", "style": "жёлтая-подсказка" } }
|
||||
{ "col": 4, "note": { "text": "…", "autoSize": false,
|
||||
"box": { "top": 58, "left": -175, "bottom": 362, "right": 478 } } }
|
||||
```
|
||||
|
||||
Объект трактуется по ключам — так же, как текст ячейки в короткой форме строки: есть ключ
|
||||
примечания (`text`, `style`, `box`, `autoSize`, `anchor`) → это описание примечания, иначе ключи
|
||||
считаются идентификаторами языков.
|
||||
|
||||
| Поле | По умолч. | Описание |
|
||||
|------|-----------|----------|
|
||||
| `text` | — | Текст подсказки: строка или объект «язык → текст» |
|
||||
| `style` | стиль подсказки | Имя стиля из `styles`; без него — оформление, которое даёт Конфигуратор |
|
||||
| `autoSize` | `true` | Подгонять ли размер окошка под текст |
|
||||
| `box` | канонический | Смещения окошка: `top`, `left` — положение, `bottom`, `right` — размер |
|
||||
| `anchor` | `{ row: 1, col: 1 }` | Якорь начала окошка. Раундтрип, не для ручного авторинга |
|
||||
|
||||
Координаты ячейки в примечании не задаются — платформа привязывает конец окошка к самой ячейке,
|
||||
и компилятор проставляет это сам. `autoSize` и `box` независимы: при автоподгоне размера
|
||||
положение окошка всё равно хранится.
|
||||
|
||||
## `rowStyle` — оформление строки
|
||||
|
||||
Стиль применяется ко ВСЕЙ ширине строки: позиции без явных ячеек получают тот же стиль. Так в табличных строках получаются сплошные рамки. Он же становится оформлением самой строки — именно так платформа хранит строку, оформленную целиком.
|
||||
@@ -285,7 +315,7 @@ round-trip** (`/mxl-decompile` → `/mxl-compile`): в JSON оно не попа
|
||||
XML не возвращается.
|
||||
|
||||
- объединения, не привязанные к ячейке (по всей высоте или ширине документа);
|
||||
- рисунки и картинки, в том числе штрихкоды, и примечания к ячейкам;
|
||||
- рисунки и картинки, в том числе штрихкоды;
|
||||
- группировки строк и колонок;
|
||||
- колонтитулы, параметры печати, область печати.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user