mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-14 23:05:16 +03:00
feat(meta-compile,meta-decompile): поддержка типа FunctionalOption (v1.54/v0.45)
18-й тип, 1381 объект acc+erp. Компилятор НЕ поддерживал FO вовсе (новый тип с нуля): +validTypes/typePluralMap/dispatch/Emit-FunctionalOptionProperties + рус.синоним ФункциональнаяОпция. FO без InternalInfo/ChildObjects/модулей — Emit-InternalInfo уже раннее-возвращает без generatedTypes-записи, ChildObjects/ модули гейтятся списками типов → FO их не получает. - Свойства: Location (хранилище значения), PrivilegedGetMode (дефолт true — корпус 2864/2864), Content (список зависимых объектов → <xr:Object>). Декомпилятор снят гейт +FO; захват location/privilegedGetMode(omit-true)/content. - Прощающий ввод MDObjectRef-путей (Normalize-MDObjectRef): русские корни метаданных+подвидов (Документ→Document/ТабличнаяЧасть→TabularSection/Реквизит→ Attribute/Измерение→Dimension/Ресурс→Resource/…) на чётных позициях-видах; имена не трогаются. Только компилятор (декомпилятор пишет полный англ. путь → роундтрип byte-exact). Location/Content — полные внешние ссылки, self-формы нет. ПОЛНЫЙ КОРПУС 1381: 1380 byte-exact order-preserved + 1 MAX_PATH-артефакт харнеса (имя 157 симв.; объект компилируется в короткий путь ✓). Регресс 55/55 ps1+py, ps1==py identical. spec §7.7a, кейс functional-option. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -963,6 +963,29 @@ true); `characteristics` (§7.1.4); `basedOn`/`inputByString`/`dataLockFields` (
|
||||
{ "type": "DefinedType", "name": "ФлагАктивности", "valueType": "Boolean" }
|
||||
```
|
||||
|
||||
### 7.7a FunctionalOption (Функциональная опция)
|
||||
|
||||
Функциональная опция: хранилище значения (Location) + список зависимых объектов (Content). Без InternalInfo,
|
||||
ChildObjects и модулей.
|
||||
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|-----------|----------|-------------|
|
||||
| `location` | `""` | Location — где хранится значение опции: `Constant.X` / `InformationRegister.X.Resource.Y` / `<Тип>.X.Attribute.Y` (алиас `value`) |
|
||||
| `content` | `[]` | Content — массив MDObjectRef-путей к реквизитам/измерениям/ресурсам, зависящим от опции (`<xr:Object>`) |
|
||||
| `privilegedGetMode` | `true` | PrivilegedGetMode |
|
||||
| `comment` | пусто | Comment |
|
||||
|
||||
`location`/`content` — **полные MDObjectRef-пути к внешним объектам** (короткой self-формы нет — опция ссылается
|
||||
на реквизиты чужих объектов). Прощающий ввод: русские корни метаданных и подвидов (Документ→Document,
|
||||
ТабличнаяЧасть→TabularSection, Реквизит→Attribute, Измерение→Dimension, Ресурс→Resource, Константа→Constant, …);
|
||||
имена объектов не трогаются.
|
||||
|
||||
```json
|
||||
{ "type": "FunctionalOption", "name": "ВестиУчетПоСкладам", "location": "Constant.ВестиУчетПоСкладам",
|
||||
"content": ["Документ.РеализацияТоваров.ТабличнаяЧасть.Товары.Реквизит.Склад",
|
||||
"РегистрНакопления.ОстаткиТоваров.Измерение.Склад"] }
|
||||
```
|
||||
|
||||
### 7.8 CommonModule
|
||||
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|
||||
Reference in New Issue
Block a user