mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-18 01:00:24 +03:00
Тип значения ячейки и элемент управления переживают цикл компиляции и декомпиляции. Макет стенда с полями ввода собирается из своего же JSON байт в байт. DSL: два ключа ячейки — valueType (грамматика типа семьи: примитивы с квалификаторами, ссылочные типы, категории целиком, составной через " + ") и control (input/checkbox, синонимы, GUID для неизвестных элементов, none для формата вовсе без тега). containsValue отдельным ключом не выражается: он выводится из наличия типа. Текст и шаблон в такой ячейке запрещены, параметр и расшифровка допустимы. Умолчания голых типов взяты платформенные (строка без длины безлимитна, число без параметров без ограничения разрядности), поэтому эмиттер типа свой, а не копия meta-compile; resolve_type_str скопирован из эталона семьи и объявлен в реестре дрейфа. Канон типа в ключе дедупликации палитры развёрнут: иначе разные написания одного типа дали бы две одинаковые записи формата и сдвинули бы все ссылки ячеек. mxl-validate: проверка согласованности таких форматов — тип без признака значения, ячейка с текстом и значением одновременно, посторонний тег внутри типа, формат значения у строки или колонки, неизвестный GUID элемента управления. Попутно сведены два расхождения портов mxl-validate: py молчал там, где ps1 писал строку об отсутствии шрифтов, и шапка подробного вывода печаталась в разной форме. Версии сведены: mxl-compile 1.41 в обоих портах (было 1.40/1.39). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
27 lines
869 B
JSON
27 lines
869 B
JSON
{
|
|
"name": "Ячейки-поля ввода: три состояния типа и элемент управления",
|
|
"input": {
|
|
"columns": 4,
|
|
"styles": { "bordered": { "border": "Solid" } },
|
|
"areas": [
|
|
{
|
|
"name": "Состояния",
|
|
"rows": [
|
|
{ "cells": [
|
|
{ "col": 1, "valueType": "" },
|
|
{ "col": 2, "valueType": "Number(15,3)", "control": "none" },
|
|
{ "col": 3, "valueType": "Boolean", "control": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" },
|
|
{ "col": 4, "valueType": "String(50)", "style": "bordered" }
|
|
]},
|
|
{ "rowStyle": "bordered", "cells": [
|
|
{ "col": 2, "valueType": "Number(10,2)", "param": "Сумма", "detail": "Расшифровка" }
|
|
]}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"params": {
|
|
"outputPath": "Template.xml"
|
|
}
|
|
}
|