mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-15 02:14:57 +03:00
feat(form-compile): значение v8:Type «Неопределено» — локальный xmlns на теге (фильтр + параметр дин-списка)
Значение типа v8:Type (на практике всегда <prefix>:Undefined — тип «Неопределено» из namespace http://v8.1c.ru/8.2/data/types, префикс авто d6p1/d8p1/dN…) эмитилось без объявления namespace → битый QName; а в параметре дин-списка компилятор вообще ронял v8:Type → xs:string. Корпус 8.3.24: 11 тегов (6 <dcsset:right> фильтра + 5 <dcssch:value> параметра), значение всегда prefix:Undefined, ns всегда data/types. Топ ROOT-пробел нового baseline (Attribute>value 48 LOST + 44 ADDED). Фикс: хелпер Get-ValueTypeNsAttr / _value_type_ns_attr (объявляет xmlns:<pref> для не-стандартного префикса при valueType v8:Type) в обе ветки Emit-FilterItem (скаляр + массив op `in`) + новая ветка v8:Type в Emit-DLValue / emit_dl_value. Выборка 7 форм (Взаимодействия acc/erp, ЖурналОпераций×3, ДокументЭДОБЗК, ЧекиККМ): match 0→6, TOTAL→0. Зеркало py байт-в-байт, регресс 43/43 (ps1+py). Раундтрип восстанавливает точные исходные байты платформы (её собственный формат — cert не нужен). Spec обновлён (раздел filter). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1064,6 +1064,7 @@ Shorthand: `"Имя [Заголовок]: тип = Выражение #noField #
|
||||
- **объект** `{ variant, date? }` + `valueType` — полная форма.
|
||||
- **escape** для плоской `xs:dateTime`: явный `valueType: "xs:dateTime"`.
|
||||
Эмитится структурно (`<v8:variant>`+`<v8:date>`). Декомпилятор: Custom+date → голая дата; именованный → строка+valueType.
|
||||
- **Тип-значение `valueType: "v8:Type"`** (раундтрип; сравнение поля с *типом*, на практике — «Неопределено»): `value` несёт QName типа из namespace платформы (`<prefix>:Undefined`, префикс авто). Компилятор объявляет `xmlns:<prefix>="http://v8.1c.ru/8.2/data/types"` локально на теге значения (иначе QName битый). Применимо к `<dcsset:right>` фильтра (скаляр и массив, op `in`) и к `<dcssch:value>` параметра дин-списка (`type: "v8:Type"`).
|
||||
- **conditionalAppearance** — объект `{ selection?, filter?, appearance?, presentation?, viewMode?, userSettingID?, use? }`. `appearance` — словарь «параметр: значение» платформы (`ЦветТекста`, `ЦветФона`, `Шрифт` и т.п.).
|
||||
- Значение текстовых параметров (`Текст`/`Заголовок`/`Формат`) ведётся **по форме значения**: голая строка → плоский `xs:string` (нелокализованный литерал; `""` → самозакрывающийся тег); объект `{ru,en}` → локализуемый `LocalStringType`; объект `{field:"путь"}` → ссылка на поле компоновки (`dcscor:Field`). (В отличие от `title`/`tooltip`, где голая строка = `LocalStringType` — здесь это намеренное scoped-различие: платформа хранит обе формы, и их надо различать.)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user