mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-15 07:15:17 +03:00
feat(meta-compile): голые метатипы-категории реквизита → TypeSet (v1.30)
Остаток Attribute>TypeSet после v1.21. Голый метатип без имени объекта (CatalogRef/DocumentRef/EnumRef/9 *Ref + AnyRef/AnyIBRef) означает «любой объект категории» и в XML — <v8:TypeSet>cfg:X</v8:TypeSet>, а компилятор писал <v8:Type>X</v8:Type> (fallback: регексы TypeSet/ref ждали ".имя", голое имя проваливалось). Напр. реквизит типа «любой документ» (DocumentRef) или «любая ссылка» (AnyRef) разворачивался в конкретный Type. Фикс: ветка голых метатипов перед concrete-ref match (ps1+py). Декомпилятор уже отдавал голое имя (Strip-NsPrefix у TypeSet) → не менялся (v0.20). В составном типе — каждый через "+": "DocumentRef + CatalogRef". Корпус (частота голых TypeSet): DocumentRef 25, AnyIBRef 17, AnyRef 13, ExchangePlanRef 10, CatalogRef 9, … Роундтрип 120: match 95→96, TOTAL 158→138 (−20), Attribute>TypeSet=0, новых diff нет. Регресс 46/46 ps1+py, ps1↔py identical. spec §3.2, кейс catalog-attr-typeset-linkbytype (+AnyRef/AnyIBRef/композит DocumentRef+CatalogRef). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -83,10 +83,16 @@ JSON DSL для описания объектов метаданных конф
|
||||
| `TaskRef.Xxx` | `cfg:TaskRef.Xxx` |
|
||||
| `DefinedType.Xxx` | `cfg:DefinedType.Xxx` (через `v8:TypeSet`) |
|
||||
| `Characteristic.Xxx` | `cfg:Characteristic.Xxx` (через `v8:TypeSet`) |
|
||||
| `CatalogRef` / `DocumentRef` / … / `AnyRef` / `AnyIBRef` (голый, без имени) | `cfg:<метатип>` (через `v8:TypeSet`) |
|
||||
|
||||
**Тип-множество (`v8:TypeSet`)** — тип, подразумевающий набор типов: `DefinedType.Xxx` (Определяемый тип) и
|
||||
`Characteristic.Xxx` (значение Характеристики из ПВХ — «Вид субконто»/доп.реквизит). У реквизита-значения
|
||||
Характеристики тип значения обычно определяется другим реквизитом-Видом — см. `linkByType` (§4.2).
|
||||
**Тип-множество (`v8:TypeSet`)** — тип, подразумевающий набор типов:
|
||||
- `DefinedType.Xxx` (Определяемый тип) и `Characteristic.Xxx` (значение Характеристики из ПВХ — «Вид субконто»/
|
||||
доп.реквизит). У реквизита-значения Характеристики тип обычно определяется другим реквизитом-Видом — см. `linkByType` (§4.2).
|
||||
- **Голый метатип-категория** без имени объекта — «любой объект категории»: `CatalogRef` (любой справочник),
|
||||
`DocumentRef`, `EnumRef`, `ChartOfAccountsRef`, `ChartOfCharacteristicTypesRef`, `ChartOfCalculationTypesRef`,
|
||||
`ExchangePlanRef`, `BusinessProcessRef`, `TaskRef`, а также `AnyRef` (любая ссылка) и `AnyIBRef` (любая ссылка ИБ).
|
||||
Отличается от именованного `CatalogRef.Xxx` (конкретный тип через `v8:Type`) отсутствием точки. В составном типе —
|
||||
каждый через `+`: `DocumentRef + CatalogRef`.
|
||||
|
||||
### 3.3 Русские синонимы типов
|
||||
|
||||
|
||||
Reference in New Issue
Block a user