Files
cc-1c-skills/tests/skills/cases/form-compile/radio-auto-enum.json
T
Nick Shirokov c383cc4ffe feat(form-decompile,form-compile): батч скаляров — форм. ChildItemsWidth/VerticalAlign/HorizontalSpacing + check/radio EqualItemsWidth/ItemTitleHeight
Раундтрип терял несколько pass-through скаляров:
- форм-уровень <ChildItemsWidth> (36 форм), <VerticalAlign> (26), <HorizontalSpacing> (25) —
  обрабатывались только как элементные генерики, не на форм-уровне;
- <EqualItemsWidth> (check/radio, 28: false 23/true 5) и <ItemTitleHeight> (radio) — чистый
  двусторонний пробел (не ловились вовсе).

decompile: форм-уровневые → KNOWN_FORM_PROPS; элементные → GENERIC_SCALARS (зеркало компилятора).
compile (ps1+py): форм-уровневые через generic Emit-Properties (авто-PascalCase); элементные —
в genericScalars (Emit-Layout→Emit-GenericScalars, покрывает check/radio).

Верификация: таргет-раундтрип 129 форм с этими тегами → 5 категорий закрыты (0 LOST; остаток —
др. категории Button>Parameter/valueType/content). Регресс form-compile 43/43 (ps1+py); 1С-cert
groups (форм-уровень) + radio-auto-enum (element). spec.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 16:21:59 +03:00

49 lines
2.0 KiB
JSON

{
"name": "RadioButtonField Auto + ссылки на перечисление с мультиязычной презентацией",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "Enum", "name": "СпособыКурса", "values": [
{ "name": "Авто" }, { "name": "Ручной" }
]},
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "meta-compile/scripts/meta-compile",
"input": { "type": "DataProcessor", "name": "ТестРадио", "attributes": [
{ "name": "СпособКурса", "type": "EnumRef.СпособыКурса" }
]},
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
},
{
"script": "form-add/scripts/form-add",
"args": { "-ObjectPath": "{workDir}/DataProcessors/ТестРадио.xml", "-FormName": "Форма" }
}
],
"params": { "outputPath": "DataProcessors/ТестРадио/Forms/Форма/Ext/Form.xml" },
"validatePath": "DataProcessors/ТестРадио/Forms/Форма/Ext/Form.xml",
"input": {
"title": "Радио — Auto + Enum",
"attributes": [
{ "name": "Объект", "type": "DataProcessorObject.ТестРадио", "main": true },
{ "name": "СпособКурса", "type": "EnumRef.СпособыКурса" }
],
"elements": [
{
"radio": "СпособКурса",
"path": "СпособКурса",
"title": "Способ курса",
"radioButtonType": "Auto",
"columnsCount": 1,
"itemTitleHeight": 1,
"equalItemsWidth": false,
"choiceList": [
{ "value": "Enum.СпособыКурса.EnumValue.Авто", "presentation": { "ru": "Автоматически", "en": "Automatic" } },
{ "value": "Enum.СпособыКурса.EnumValue.Ручной", "presentation": "вручную" },
{ "value": "Enum.СпособыКурса.EmptyRef", "presentation": "(не задан)" }
]
}
]
}
}