feat(meta-compile,meta-decompile): поддержка Sequence + FilterCriterion + DocumentNumerator + SettingsStorage (v1.56/v0.47)

20-23-й типы (хвост «мелких» служебных), 64 объекта acc×3+erp. Все НОВЫЕ (компилятор
не поддерживал). ПОЛНЫЙ КОРПУС 64/64 match, TOTAL 0 — byte-exact order-preserved.
Регресс 56/56 ps1+py, ps1==py identical.

- **Sequence** (последовательность документов): InternalInfo(Record/Manager/RecordSet)
  + MoveBoundaryOnPosting(дефолт DontMove)/Documents/RegisterRecords/DataLockControlMode
  (дефолт Automatic). Измерения с **DocumentMap/RegisterRecordsMap** (списки MDObjectRef —
  соответствие реквизитам документов/движениям) — гард общего dimensions-захвата,
  объектная форма измерения. Общий хелпер Emit-MDRefList.
- **FilterCriterion** (критерий отбора): InternalInfo(Manager/List) + Type(составной) +
  Content(объекты отбора) + формы + презентации. Несёт <Command> → эмиссия команд.
- **DocumentNumerator** (нумератор): БЕЗ InternalInfo/ChildObjects. NumberType/Length/
  AllowedLength/Periodicity/CheckUnique (дефолты String/11/Variable/Year/true).
- **SettingsStorage** (хранилище настроек): InternalInfo(Manager) + Default/Auxiliary
  Save/LoadForm (verbatim). Пустой ChildObjects (Form вне скоупа).

Прощающий ввод MDObjectRef (Documents/Content/documentMap) — Normalize-MDObjectRef.
spec §7.15a-d, кейсы sequence/filter-criterion/document-numerator/settings-storage.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-10 11:12:53 +03:00
parent b4e6037fd4
commit f4fb260f68
24 changed files with 1788 additions and 10 deletions
+57
View File
@@ -1186,6 +1186,63 @@ ChildObjects и модулей.
{ "name": "Сумма", "indexing": "Index", "references": ["Document.ПоступлениеНаСчет.Attribute.Сумма"] } ] }
```
### 7.15a Sequence (Последовательность документов)
| Поле JSON | Умолчание | XML элемент |
|-----------|----------|-------------|
| `moveBoundaryOnPosting` | `DontMove` | MoveBoundaryOnPosting |
| `documents` | `[]` | Documents — массив MDObjectRef документов последовательности |
| `registerRecords` | `[]` | RegisterRecords — движения (список MDObjectRef) |
| `dataLockControlMode` | `Automatic` | DataLockControlMode |
| `dimensions` | `[]` | → Dimension в ChildObjects |
**Измерение (`dimensions[]`)** — `{name, type, synonym?, comment?, documentMap[], registerRecordsMap[]}`:
`documentMap`/`registerRecordsMap` — MDObjectRef-пути к реквизитам документов / движениям регистров
(соответствие измерению). Прощающий ввод русских корней.
```json
{ "type": "Sequence", "name": "Взаиморасчеты", "documents": ["Document.Реализация"],
"dimensions": [{ "name": "Организация", "type": "CatalogRef.Организации",
"documentMap": ["Document.Реализация.Attribute.Организация"] }] }
```
### 7.15b FilterCriterion (Критерий отбора)
| Поле JSON | Умолчание | XML элемент |
|-----------|----------|-------------|
| `valueType` | — | Type — тип значения отбора (составной через ` + `) |
| `content` | `[]` | Content — реквизиты, по которым идёт отбор (MDObjectRef) |
| `useStandardCommands` | `true` | UseStandardCommands |
| `defaultForm` / `auxiliaryForm` | `""` | формы (verbatim) |
| `listPresentation` / `extendedListPresentation` / `explanation` | пусто | презентации (ML) |
| `comment` | пусто | Comment |
| `commands` | `[]` | → Command в ChildObjects (§7.1.3) |
```json
{ "type": "FilterCriterion", "name": "ДокументыПоКонтрагенту", "valueType": "CatalogRef.Контрагенты",
"content": ["Document.Реализация.Attribute.Контрагент"] }
```
### 7.15c DocumentNumerator (Нумератор документов)
Параметры нумерации (без InternalInfo и ChildObjects).
| Поле JSON | Умолчание | XML элемент |
|-----------|----------|-------------|
| `numberType` | `String` | NumberType (String/Number) |
| `numberLength` | `11` | NumberLength |
| `numberAllowedLength` | `Variable` | NumberAllowedLength (Variable/Fixed) |
| `numberPeriodicity` | `Year` | NumberPeriodicity (Nonperiodical/Day/…/Year) |
| `checkUnique` | `true` | CheckUnique |
### 7.15d SettingsStorage (Хранилище настроек)
| Поле JSON | Умолчание | XML элемент |
|-----------|----------|-------------|
| `defaultSaveForm` / `defaultLoadForm` | `""` | DefaultSaveForm / DefaultLoadForm (verbatim) |
| `auxiliarySaveForm` / `auxiliaryLoadForm` | `""` | Auxiliary*Form (verbatim) |
| `comment` | пусто | Comment |
### 7.16 ChartOfAccounts
Полное описание типа (все поля, стандартные реквизиты, грамматика предопределённых счетов) — см. **§7.2c**.