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): поддержка типа InformationRegister (Регистры сведений) (v1.45/v0.37)
Седьмой тип, доминанта семейства регистров (2600 объектов). Пилот InformationRegister; Accumulation/Accounting/Calculation — отдельными заходами позже. Итог 150-выборки: 148 match, 4 = known empty-DTR noise (класс A, как Document), 1 = MAX_PATH-артефакт харнеса. 1С-cert ✓. - Рерайт Emit-InformationRegisterProperties на общие хелперы (был легаси-хардкод: UseStandardCommands=true, Comment/презентации/формы пусто, DataHistory хардкод): comment/useStandardCommands/editType/Emit-FormRef/ презентации(RecordPresentation ML)/DataHistory-триплет. - Class-2 дефолты: DataLockControlMode Automatic→Managed (88%); MainFilterOnPeriod расцеплён от periodicity (авто-вывод неверен для ~231 объекта) — теперь явное свойство. - Ресурсы/измерения через богатый Emit-Attribute (context register-info, elemTag Resource/Dimension) вместо легаси Emit-Resource/Emit-Dimension (игнорили comment/tooltip/fullTextSearch/fillValue/choiceParameters). Dimension-специфика Master/MainFilter/DenyIncompleteValues (+захват Attr-ToDsl + проброс Parse-AttributeShorthand). Флаг shorthand master → +FillFromFillingValue=true (конвенция; расцепление обязательно — 203 master+false key-формой). - Команды регистра: register-branch ChildObjects не эмитил Command → +парсинг+Emit-Command. - Class-1 декомпилятор: пустой object-синоним <Synonym/> → synonym:"" (аналог EP-фикса; починил и Catalog 52→53). - StandardAttributes: состав всегда 4 (Active/LineNumber/Period/Recorder), present 2465/omitted 135 (5%, не выводимо) — always-emit + opt-out standardAttributes:"" (декомпилятор эмитит при отсутствии блока). Регресс 49/49 ps1+py, ps1==py identical (modulo random GUID). spec §7.5, кейс information-register. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+18
-6
@@ -809,16 +809,28 @@ Split-CamelCase имени.
|
||||
|
||||
| Поле JSON | Умолчание | XML элемент |
|
||||
|-----------|----------|-------------|
|
||||
| `writeMode` | `Independent` | WriteMode |
|
||||
| `writeMode` | `Independent` | WriteMode (Independent/RecorderSubordinate) |
|
||||
| `periodicity` | `Nonperiodical` | InformationRegisterPeriodicity |
|
||||
| `mainFilterOnPeriod` | авто* | MainFilterOnPeriod |
|
||||
| `dataLockControlMode` | `Automatic` | DataLockControlMode |
|
||||
| `mainFilterOnPeriod` | `false` | MainFilterOnPeriod (не выводится из `periodicity` — задаётся явно) |
|
||||
| `dataLockControlMode` | `Managed` | DataLockControlMode |
|
||||
| `fullTextSearch` | `Use` | FullTextSearch |
|
||||
| `dimensions` | `[]` | → Dimension в ChildObjects |
|
||||
| `resources` | `[]` | → Resource в ChildObjects |
|
||||
| `editType` | `InDialog` | EditType |
|
||||
| `useStandardCommands` | `true` | UseStandardCommands |
|
||||
| `enableTotalsSliceFirst` / `enableTotalsSliceLast` | `false` | EnableTotalsSlice* (срез первых/последних) |
|
||||
| `comment` | пусто | Comment |
|
||||
| `recordPresentation` / `extendedRecordPresentation` / `listPresentation` / `extendedListPresentation` / `explanation` | пусто | презентации (ML) |
|
||||
| `defaultRecordForm` / `defaultListForm` / `auxiliaryRecordForm` / `auxiliaryListForm` | пусто | *RecordForm/*ListForm (ссылка на форму) |
|
||||
| `dataHistory` (+ триплет) | `DontUse` | DataHistory / UpdateDataHistoryImmediatelyAfterWrite / ExecuteAfterWriteDataHistoryVersionProcessing |
|
||||
| `standardAttributes` | (блок всегда) | `""` — opt-out: подавить all-default блок стандартных реквизитов (~5% регистров его опускают, правило не выводимо) |
|
||||
| `dimensions` | `[]` | → Dimension в ChildObjects (богатый object-слой реквизита + `master`/`mainFilter`/`denyIncompleteValues`) |
|
||||
| `resources` | `[]` | → Resource в ChildObjects (богатый object-слой реквизита) |
|
||||
| `attributes` | `[]` | → Attribute в ChildObjects |
|
||||
| `commands` | `[]` | → Command в ChildObjects (см. §7.1.3) |
|
||||
|
||||
\* `mainFilterOnPeriod` = `true` если `periodicity` != `Nonperiodical`, иначе `false`.
|
||||
Измерения/ресурсы РС поддерживают полный object-слой реквизита (synonym/tooltip/comment/type/fillValue/
|
||||
choiceParameters/indexing/fullTextSearch/dataHistory/…, см. §3–4). Признаки измерения — флаги shorthand
|
||||
(`master`/`mainFilter`/`denyIncomplete`) ЛИБО object-ключи (`master`/`mainFilter`/`denyIncompleteValues`: bool).
|
||||
Флаг `master` дополнительно ставит `FillFromFillingValue=true` (конвенция ведущего измерения).
|
||||
|
||||
### 7.6 AccumulationRegister
|
||||
|
||||
|
||||
Reference in New Issue
Block a user