Files
cc-1c-skills/tests/skills/cases/mxl-decompile/roundtrip-value-content.json
T
Nick ShirokovandClaude Opus 5 43d2f660da 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>
2026-08-15 13:32:40 +03:00

42 lines
1.4 KiB
JSON

{
"name": "Roundtrip — сохранённые значения ячеек-полей ввода",
"preRun": [
{
"script": "mxl-compile/scripts/mxl-compile",
"input": {
"columns": 3,
"areas": [
{
"name": "Значения",
"rows": [
{ "cells": [
{ "col": 1, "valueType": "String(10)", "value": "5" },
{ "col": 2, "valueType": "Number(15,3)", "value": 12.5 },
{ "col": 3, "valueType": "Number(10,2)", "value": -3 }
]},
{ "cells": [
{ "col": 1, "valueType": "Boolean", "value": true },
{ "col": 2, "valueType": "DateTime", "value": "2026-08-09T13:45:00" },
{ "col": 3, "valueType": "DateTime", "value": "" }
]},
{ "cells": [
{ "col": 1, "valueType": "String", "value": "" },
{ "col": 2, "valueType": "Number", "value": "" },
{ "col": 3, "valueType": "Boolean + String + Number", "value": "Составной" }
]}
]
}
]
},
"args": { "-JsonPath": "{inputFile}", "-OutputPath": "Template.xml" },
"cwd": "{workDir}"
}
],
"params": { "templatePath": "Template.xml" },
"args_extra": ["-OutputPath", "{workDir}/back.json"],
"expect": {
"files": ["back.json"],
"stdoutContains": "[OK] Decompiled:"
}
}