4.8 KiB
Программа доказательного codec-а отчётов и макетов
Цель
Построить для SQL-адаптера раздельные, evidence-first decoder/encoder пути для отчёта и каждого типа его макета. Публичный API принимает только имя расширения, отчёта и макета; физические таблицы, ключи и контейнеры остаются внутренними деталями реализации.
Первая live-фикстура
База: upo_test; расширение: фс_Отчеты;
отчёт: _ПоступлениеТовара;
GUID отчёта: c428f629-785a-4141-b038-f2192bb4580d.
Наблюдаемое состояние на 2026-08-14:
- extension object search подтверждает сохранённый override в
ConfigCASSave; - в saved слое присутствуют descriptor,
.0и extension__configinfo; - active manifest содержит только descriptor и
.0stream; metadata.object.componentsподтверждает четыре формы, среди них формуОсновнаяСхемаКомпоновкиДанных;metadata.object.templatesиscd.inspectне подтверждают макетDataCompositionSchemaдля этого объекта.
Следствие: имя формы не является доказательством существования одноимённого
макета СКД. Нельзя направлять запрос или XML-кодек в .0 stream.
Матрица типов макетов
| Платформенный тип | Состояние codec-а | Допустимое действие до fixture proof |
|---|---|---|
| Табличный документ | частичный MOXCEL decoder | read-only structure/evidence |
| Текстовый документ | типизированное текстовое исследование | read-only до round-trip fixture |
| Двоичные данные | opaque | hash/size only |
| Active document | opaque | hash/size only |
| HTML документ | частичное текстовое/HTML evidence | read-only до round-trip fixture |
| Географическая схема | opaque typed candidate | read-only |
| Графическая схема | opaque typed candidate | read-only |
| Схема компоновки данных | XML decoder + scalar byte-preserving patch | write only after public route and saved-state codec proof |
| Макет оформления компоновки данных | отдельный XML family | read-only до own fixture proof |
| Внешняя компонента | opaque archive | hash/size only |
Источник taxonomy: 1C:Enterprise Template wizard.
Protocol gates
- Создать либо выбрать отдельную live fixture для одного вида макета.
- Снять SQL before snapshot всех связанных payload-ов и их SHA-1.
- Выполнить ровно одно контролируемое изменение через Configurator.
- Снять after snapshot и доказать точное соответствие object → manifest → payload → saved-state overlay.
- Реализовать lossless decoder и обратный encoder только для изменённого участка; неизвестные байты сохраняются дословно.
- Выполнить
apply_and_rollbackвupo_test, проверить SQL readback и очистку adapter-created rows. - Отдельно получить человеческое подтверждение видимости в Configurator.
Для СКД XML-семантика включает datasets, links, calculated fields, resources,
parameters, layouts, nested schemas и settings. Макет оформления — другой XML
контракт: регионы, шрифты, цвета, границы и правила оформления; его нельзя
обрабатывать методом scd.patch.
Ближайшая реализация
Первый кодовый результат — resolver, который умеет различать форму и макет,
а затем находит MainDataCompositionSchema по подтверждённой template identity
в extension active/saved layer. При отсутствии доказанного template payload он
возвращает unresolved, а не fallback на форму или stream .0.