feat(meta-compile,meta-decompile): презентации объекта (Object/List/Extended*/Explanation, ML) (v1.25/v0.10)

Раундтрип-находка: презентации мультиязычны и непусты у многих справочников (корпус: ObjectPresentation
1316/803-multi, ListPresentation 208, Explanation 101, Extended* 69/75), компилятор писал пусто.

DSL-ключи (ML, omit-on-default): objectPresentation, extendedObjectPresentation, listPresentation,
extendedListPresentation, explanation. Эмиссия через Emit-MLText во всех 8 местах (типы, где эти свойства
есть — безопасно: без ключа → self-close = прежнее поведение). Декомпилятор захватывает через Get-MLValue.

spec §7.1; тест-кейс catalog-attr-ml расширен.
Валидация: PS==PY; ObjectPresentation/ListPresentation impact 0; −17135 (70571→53436, вкл. добитый
пробельный ToolTip-остаток нормализацией); регресс 37/37; 1С-cert зелёный.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-07-03 16:37:39 +03:00
parent 40cdd57619
commit 1701bdac96
6 changed files with 113 additions and 83 deletions
+5
View File
@@ -272,6 +272,11 @@ JSON DSL для описания объектов метаданных конф
| `dataLockControlMode` | `Automatic` | DataLockControlMode |
| `fullTextSearch` | `Use` | FullTextSearch |
| `owners` | `[]` | Owners |
| `objectPresentation` | пусто | ObjectPresentation (ML) |
| `extendedObjectPresentation` | пусто | ExtendedObjectPresentation (ML) |
| `listPresentation` | пусто | ListPresentation (ML) |
| `extendedListPresentation` | пусто | ExtendedListPresentation (ML) |
| `explanation` | пусто | Explanation (ML) |
| `standardAttributes` | *(ключа нет → блок опущен)* | StandardAttributes |
| `attributes` | `[]` | → Attribute в ChildObjects |
| `tabularSections` | `{}` | → TabularSection в ChildObjects |