mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-19 00:59:40 +03:00
feat(form-decompile,form-compile): choiceList значение — DesignTimeRef по GUID + nil
Значение элемента <ChoiceList> (InputField/RadioButtonField): (1) <Value xsi:type="xr:DesignTimeRef">GUID.GUID</Value> — ссылка по метаданным-GUID (raw, не по имени) эмитилась как xs:string: декомпилятор исключал DesignTimeRef из valueType (расчёт на авто-детект компилятора), но Normalize-ChoiceValue детектит только named-ссылки (Enum.X.Y), GUID.GUID → xs:string. Фикс: декомпилятор сохраняет valueType="xr:DesignTimeRef" при значении-GUID (по префиксу GUID); named-ссылки по-прежнему авто-детектятся. (2) <Value xsi:nil="true"/> — nil-значение варианта эмитилось как typed-empty xs:string (Convert-TypedValue пустого nil-узла → ""). Фикс: декомпилятор ставит valueType="nil", компилятор эмитит <Value xsi:nil="true"/>. Зеркало py. Выборка 15 форм (ИндексацияЗаработка/ФормаДокумента, РассылкиОтчетов, …): match 13→15 целевых (остаток 2 формы — отдельный кластер dcsset:left булев-литерал). ps1==py байт-в-байт. Регресс 43/43. Spec обновлён (choiceList valueType nil/DesignTimeRef). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -505,7 +505,7 @@ companion-панели с собственным контентом. Оба не
|
||||
| Свойство | Тип | Описание |
|
||||
|----------|-----|----------|
|
||||
| `value` | string/number/bool | Значение варианта. Для перечисления — `"Enum.ИмяТипа.EnumValue.ИмяЗначения"` (xsi:type автоматически: `xr:DesignTimeRef` / `xs:string` / `xs:decimal` / `xs:boolean`) |
|
||||
| `valueType` | string | Явный xsi:type значения, переопределяет авто-детект. Нужен для **системных перечислений** (`ent:` namespace: `ent:AccountType`=ВидСчёта, `ent:AccumulationRecordType`, `ent:HorizontalAlignment`, … — см. «Системные перечисления» в палитре типов) и иных не-примитивных типов. Напр. `{ "value": "Active", "valueType": "ent:AccountType", "presentation": "Активный" }` |
|
||||
| `valueType` | string | Явный xsi:type значения, переопределяет авто-детект. Нужен для **системных перечислений** (`ent:` namespace: `ent:AccountType`=ВидСчёта, `ent:AccumulationRecordType`, `ent:HorizontalAlignment`, … — см. «Системные перечисления» в палитре типов) и иных не-примитивных типов. Напр. `{ "value": "Active", "valueType": "ent:AccountType", "presentation": "Активный" }`. Спец-маркеры (раундтрип): **`"nil"`** → `<Value xsi:nil="true"/>` (пустое значение варианта без типа); **`"xr:DesignTimeRef"`** при значении-GUID (`GUID.GUID` — ссылка по метаданным-GUID, не по имени; named-ссылки `Enum.X.Y` авто-детектятся без ключа) |
|
||||
| `presentation` | string или object | Текст рядом с переключателем. Строка → ru; объект `{ru, en, ...}` → мультиязык. Если не задано — выводится из имени значения |
|
||||
|
||||
#### label — LabelDecoration
|
||||
|
||||
Reference in New Issue
Block a user