mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-14 14:55:16 +03:00
fix(meta-compile,meta-decompile): Characteristics edge-кейсы filterValue/-1/0 (v1.26/v0.17)
Досверка на всех 212 объектах корпуса вскрыла 3 недочёта первой версии
(category-objects по «Characteristics» их не ловил — листы отдельные owner'ы):
• TypesFilterValue: в корпусе доминирует xs:string с ГОЛЫМ именем (315),
а не DesignTimeRef с полным путём (62); +2 xs:boolean. Захардкоженный DTR
ломал 315. Теперь через Normalize-ChoiceValue: голое→xs:string, полный
путь→DTR, bool→xs:boolean, null→xsi:nil.
• «Пустая» характеристика: поля = -1 → эмитим -1 verbatim (не разворачиваем).
• DataPathField/MultipleValues* не всегда -1 (иногда 0) → опциональные ключи
dataPathField/multipleValues*Field, дефолт -1.
remaining ВСЕХ листовых категорий Characteristics = 0 на 212 объектах (match
4→22). Кейс покрывает обе формы filterValue. Регресс 44/44 ps1+py, ps1↔py
identical. spec §7.1.4.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -473,8 +473,11 @@ JSON DSL для описания объектов метаданных конф
|
||||
голое имя → `StandardAttribute.<EN>` для ссылочных станд. (`Ссылка`/`Родитель`/`Владелец`, RU→EN), иначе → `Attribute.<имя>`;
|
||||
частичное `Dimension.X`/`Resource.X`/`StandardAttribute.X` → + префикс `from` (форма для регистров ДопСведения);
|
||||
полный путь → как есть.
|
||||
- **`filterValue`** — предопределённое значение фильтра типов (`xr:DesignTimeRef`); голое имя → + префикс каталога
|
||||
из `types.from`; полный путь → как есть.
|
||||
- **`filterValue`** — значение фильтра типов (обычно предопределённый набор): голое имя → `xs:string` (частый случай,
|
||||
напр. `Справочник_Организации`); полный путь → `xr:DesignTimeRef` (`Catalog.X.Справочник_Y`); bool → `xs:boolean`;
|
||||
`null` → `xsi:nil` (пустая характеристика). Различает вид по наличию точки.
|
||||
- **Числовые флаги** `dataPathField`/`multipleValuesUseField` (в `types`), `multipleValuesKeyField`/
|
||||
`multipleValuesOrderField` (в `values`) — по умолчанию `-1`, задавать не нужно (кроме редких `0`).
|
||||
- **Синонимы ключей:** `types`/`characteristicTypes`, `values`/`characteristicValues`, `key`/`keyField`,
|
||||
`filterField`/`typesFilterField`, `filterValue`/`typesFilterValue`, `object`/`objectField`, `type`/`typeField`, `value`/`valueField`.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user