mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-17 16:50:30 +03:00
feat(mxl-compile,mxl-decompile): значение ячейки-поля ввода и настройки элемента управления
Ключ ячейки value несёт значение, набранное в поле ввода, ключ control — сериализованные настройки самого элемента управления. Оба живут у ячейки, а не в палитре формата: у двух ячеек с одинаковым оформлением значения разные. Тип значения выражается литералом JSON и приведения к объявленному типу НЕ делается. Так пишет платформа: ссылочный и составной тип она хранит строкой, а при смене типа ячейки прежнее значение не переписывает — на корпусе 560 ячеек объявлены числом, но несут строку. Приведение здесь означало бы переписывать данные при пересборке. Дата литералом JSON не выражается, поэтому едет строкой и читается как дата только у ячейки, объявленной датой. Настройки элемента управления возим дословно: 26 370 вхождений корпуса дают всего 163 различных блоба, разбирать структуру незачем. Переводы строк внутри блоба приводим к LF на чтении — XML-парсеры двух портов нормализуют их по-разному, и без этого порты давали разный JSON на одном файле. Стенд СЗначениями снова собирается байт в байт обоими портами: фикстура обновлена до версии со значениями, флажком и блобом настроек. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
66bb285636
commit
43d2f660da
+17
-3
@@ -152,7 +152,8 @@
|
||||
| `{ ... }` | Обычная ячейка **без** `col`; нужна для `style`, `detail`, `template` |
|
||||
|
||||
Объект-элемент трактуется по его ключам: если среди них есть ключ ячейки (`span`, `rowspan`,
|
||||
`style`, `param`, `detail`, `text`, `template`, `valueType`, `controlType`) — объект описывает
|
||||
`style`, `param`, `detail`, `text`, `template`, `valueType`, `controlType`, `value`) — объект
|
||||
описывает
|
||||
свойства ячейки. Иначе он целиком считается её текстом, а его ключи — идентификаторами языков.
|
||||
|
||||
```json
|
||||
@@ -184,6 +185,7 @@
|
||||
| `template` | нет | — | Шаблонный текст с `[Параметр]`. Строка или объект, как `text` |
|
||||
| `valueType` | нет | — | Тип значения: ячейка становится полем ввода (см. ниже) |
|
||||
| `controlType` | нет | `input` | Элемент управления поля ввода: `input` или `checkbox`. Только вместе с `valueType` |
|
||||
| `value` | нет | — | Значение в поле ввода. Только вместе с `valueType` |
|
||||
|
||||
### Содержимое ячейки
|
||||
|
||||
@@ -248,6 +250,20 @@
|
||||
|
||||
Пустой тип `"valueType": ""` — «ячейка содержит значение», но тип не ограничен.
|
||||
|
||||
Значение поля ввода задаётся ключом `value`, и его тип выражается литералом JSON: строка —
|
||||
строкой, число — числом, булево — `true`/`false`. Приведения к объявленному типу **не
|
||||
происходит**: платформа хранит значение с его собственным типом и совпадать с объявленным он
|
||||
не обязан (у ссылочного и составного типа значение всегда строковое). Пустая строка означает
|
||||
пустое значение объявленного типа. Дата записывается строкой в формате `ГГГГ-ММ-ДДTчч:мм:сс`
|
||||
и читается как дата только у ячейки, объявленной датой.
|
||||
|
||||
```json
|
||||
{ "col": 1, "valueType": "Number(15,3)", "value": 12.5 }
|
||||
{ "col": 2, "valueType": "String(10)", "value": "5" }
|
||||
{ "col": 3, "valueType": "Boolean", "value": true }
|
||||
{ "col": 4, "valueType": "DateTime", "value": "" }
|
||||
```
|
||||
|
||||
`controlType` нужен редко: умолчание платформы — поле ввода, и оно применяется ко всем типам,
|
||||
включая `Boolean`. Флажок задаётся явно. Значение `"none"` (тега элемента управления нет вовсе) —
|
||||
форма раундтрипа, для ручного авторинга не нужна.
|
||||
@@ -266,8 +282,6 @@ DSL описывает не все конструкции табличного
|
||||
round-trip** (`/mxl-decompile` → `/mxl-compile`): в JSON оно не попадает, в сгенерированный
|
||||
XML не возвращается.
|
||||
|
||||
- начальное значение ячейки-поля ввода и сериализованные настройки её элемента управления
|
||||
(тип значения при этом переживает цикл);
|
||||
- объединения, не привязанные к ячейке (по всей высоте или ширине документа);
|
||||
- рисунки и картинки, в том числе штрихкоды, и примечания к ячейкам;
|
||||
- группировки строк и колонок;
|
||||
|
||||
Reference in New Issue
Block a user