mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-14 06:45:17 +03:00
feat(meta-compile,meta-decompile): короткая запись типа предопределённых ПВХ (v1.36/v0.25)
Предопределённые виды характеристик несут тип значения на элемент. Раньше это требовало объектной формы; теперь тип выражается короткой строкой после ':' — как в полях СКД/реквизитах: "(Код) Имя [Наименование]: Тип" (тип составной через '+') Правило: нет ':' → без блока Type (Catalog-стиль); непустой тип → короткая строка; пустой <Type/> / папки / с детьми → объектная форма (ключ type). Разбор зеркалит Parse-CalcShorthand: сначала вынуть [Наим] (может содержать ':'), затем отделить тип по ':'. Компилятор принимает обе формы, декомпилятор пишет короткую для плоских элементов. На ВидыСубконтоХозрасчетные все 63 предопределённых из объектов стали компактными строками. Роундтрип/вывод XML не меняется (52 TOTAL). Регресс 47/47 ps1+py, ps1↔py identical. spec §7.2b, кейс chart-of-characteristic-types. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+11
-3
@@ -641,9 +641,17 @@ omit-on-empty. Поля пишутся частичной формой (`Standar
|
||||
Стандартные реквизиты ПВХ: PredefinedDataName, Predefined, Ref, DeletionMark, Description, Code, Parent, ValueType
|
||||
(профиль: Наименование → FillChecking=ShowError, Родитель → FillFromFillingValue=true). Блок **условный** (`standardAttributes`).
|
||||
|
||||
**Предопределённые виды** несут **тип значения на элемент** — ключ `type` в объектной форме `predefined`-элемента
|
||||
(строка `"A + B"` или массив; `""` → пустой `<Type/>`; отсутствие ключа → без блока). Пример:
|
||||
`{"name": "Цвет", "code": "000001", "type": "CatalogRef.Цвета"}`.
|
||||
**Предопределённые виды** несут **тип значения на элемент**. Короткая запись — как в полях СКД/реквизитах, тип после `:`:
|
||||
`"(Код) Имя [Наименование]: Тип"` (тип составной через `+`). Объектная форма — ключ `type` (строка/массив; `""` → пустой
|
||||
`<Type/>`). Правило: нет `:`/ключа → без блока Type; непустой тип → короткая строка; пустой `<Type/>` / папки / с детьми →
|
||||
объектная форма. Примеры:
|
||||
```json
|
||||
"predefined": [
|
||||
"(000001) Цвет: CatalogRef.Цвета",
|
||||
"(000002) Размер [Размер одежды]: String(50) + Number(3,0)",
|
||||
{ "name": "Группа", "isFolder": true, "type": "" }
|
||||
]
|
||||
```
|
||||
|
||||
### 7.3 Enum
|
||||
|
||||
|
||||
Reference in New Issue
Block a user