feat(form-decompile,form-compile): хвост report-форм 2.17 (TOTAL 23→0)

Добивка длинного хвоста, раскрытого при выводе спец-полей из ring-3.

Generic-скаляры (обе стороны, +py): ItemHeight (radio), DropListWidth (input).
Форменное VariantAppearance → KNOWN_FORM_PROPS. Targeted: PasswordMode на
LabelField (факт. значение, ≠ input if-true), ChoiceButtonPicture (input, через
Emit/Get-PictureRef), TransparentPixel (под-элемент <xr:TransparentPixel x y> в
<Picture> PictureDecoration → ключ transparentPixel:{x,y}, 1162 в корпусе).

Компилятор-баг ChoiceParameters без значения: платформа эмитит
<app:value xsi:nil="true"/> (13 в корпусе), компилятор додумывал пустую
FormChoiceListDesTimeValue. Теперь по наличию ключа value (hashtable shorthand
vs PSCustomObject — для PS; dict — для py).

Выборка 2.17: TOTAL 23→0, match 170→181, diff 13→2 (остаток — только GroupList,
документированный не-покрываемый: декомпилятор намеренно опускает во избежание
тихой порчи ссылки). Регресс 40/40 (ps1+py). Кейс input-fields расширен
(value-less choiceParameter → nil) и сертифицирован загрузкой в 1С.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-09 19:59:12 +03:00
parent b5769ce373
commit ef036c7cf1
6 changed files with 64 additions and 11 deletions
@@ -33,7 +33,8 @@
{ "name": "Отбор.Активный", "value": true },
{ "name": "Отбор.Вид", "value": "Основной" },
{ "name": "Отбор.Дата", "value": "2020-01-01T00:00:00" },
{ "name": "Отбор.Список", "value": ["Один", "Два"] }
{ "name": "Отбор.Список", "value": ["Один", "Два"] },
{ "name": "Отбор.БезЗначения" }
],
"choiceParameterLinks": [
{ "name": "Отбор.Организация", "dataPath": "ОбычноеПоле" },