feat(meta-edit): структурное свойство ChoiceParameters + фикс namespace app (Фаза 2 Шаг 3b-2a, v1.16)

modify-attribute/-dimension/-resource: ChoiceParameters ([{name, type?, value?}]) —
порт Emit-ChoiceParameters + полный кластер fill-ref машинерии в meta-edit
(fillRefRoots/fillRefKindRoot/fillEmptyRefWords/accountTypeValues, Normalize-FillRef,
Normalize-ChoiceValue/T, Expand-ChoiceRefValue, ConvertFrom-ChParamShorthand,
ConvertTo-ChScalar, Format-FillNum). Значение → app:value с xsi:type (bool/decimal/
DesignTimeRef); массив → v8:FixedArray/v8:Value; type разворачивает голые ref-имена
(EnumRef.X + "Оптовая" → Enum.X.EnumValue.Оптовая).

КРИТИЧНО: Import-Fragment (ps1+py) теперь объявляет xmlns:app + xmlns:ent — иначе
app:item/app:value падали бы "undeclared prefix". app/ent объявлены в корне 1С-файлов
→ вставка без per-element xmlns.

Cert декомпиляцией: выход meta-edit БАЙТ-В-БАЙТ = meta-compile (ps1 и py; включая
v8:FixedArray и DesignTimeRef-разворот). verify-snapshots --case modify-attribute-structural
(расширен ChoiceParameters bool+EmptyRef) грузится в 1С. meta-edit 14/14 ps1+py.

Остаток Шага 3: fillValue явный (нужна экстракция типа реквизита из XML).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-12 10:41:52 +03:00
parent 41df320153
commit 39dc3fc1e7
4 changed files with 350 additions and 4 deletions
@@ -20,7 +20,11 @@
"Контр": {
"ChoiceForm": "Catalog.Спр.Form.ФормаВыбора",
"ChoiceParameterLinks": ["Отбор.Владелец=Ссылка"],
"LinkByType": { "dataPath": "Ссылка", "linkItem": 0 }
"LinkByType": { "dataPath": "Ссылка", "linkItem": 0 },
"ChoiceParameters": [
{ "name": "Отбор.ПометкаУдаления", "value": false },
{ "name": "Отбор.Ссылка", "value": "Catalog.Спр.EmptyRef" }
]
},
"Сумма": { "MinValue": 0, "MaxValue": 1000000 }
}
@@ -179,7 +179,14 @@
<xr:ValueChange>Clear</xr:ValueChange>
</xr:Link>
</ChoiceParameterLinks>
<ChoiceParameters />
<ChoiceParameters>
<app:item name="Отбор.ПометкаУдаления">
<app:value xsi:type="xs:boolean">false</app:value>
</app:item>
<app:item name="Отбор.Ссылка">
<app:value xsi:type="xr:DesignTimeRef">Catalog.Спр.EmptyRef</app:value>
</app:item>
</ChoiceParameters>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm>Catalog.Спр.Form.ФормаВыбора</ChoiceForm>