fix(form-compile): составной тип в shorthand параметра дин-списка (dcssch:valueType)

Parse-DLParamShorthand брал тип regex'ом (\S+) — один токен без пробелов.
Составной тип (CatalogRef.X | CatalogRef.Y, с пробелами вокруг |) не матчился
→ вся строка уходила в name → компилятор эмитил <dcssch:name>Имя: TYPE | TYPE</…>
и ТЕРЯЛ <dcssch:valueType>.

Фикс: тип = ([^=]+?) (допускает пробелы/|, исключает '='-разделитель значения);
составной резолвится по частям (per-part Resolve-TypeStr, rejoin ' | ').
Emit-DLValueType уже split'ил по |, эмиссия корректна. Зеркало py.

Выборка 2.17: TOTAL 38→12 (составной тип у дин-списков Task/прочих восстановлен).
Кейс dynamic-list-parameters (+составной параметр DocumentRef | CatalogRef → два
TypeSet) сертифицирован загрузкой в 1С. Регресс 40/40 (ps1+py).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-09 21:42:51 +03:00
co-authored by Claude Opus 4.8
parent e16b23968e
commit 2ff99d1b77
4 changed files with 33 additions and 6 deletions
@@ -22,6 +22,7 @@
"parameters": [
"Артикул",
"Маска: string = %",
"Получатель: DocumentRef | CatalogRef",
{ "name": "ВидЦен", "valueListAllowed": true },
{ "name": "Период", "type": "dateTime", "useRestriction": false },
{