Files
llm/docs/1c-sql-protocol/research/report-template-codec-program.md
T

4.8 KiB
Raw Blame History

Программа доказательного 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 и .0 stream;
  • 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

  1. Создать либо выбрать отдельную live fixture для одного вида макета.
  2. Снять SQL before snapshot всех связанных payload-ов и их SHA-1.
  3. Выполнить ровно одно контролируемое изменение через Configurator.
  4. Снять after snapshot и доказать точное соответствие object → manifest → payload → saved-state overlay.
  5. Реализовать lossless decoder и обратный encoder только для изменённого участка; неизвестные байты сохраняются дословно.
  6. Выполнить apply_and_rollback в upo_test, проверить SQL readback и очистку adapter-created rows.
  7. Отдельно получить человеческое подтверждение видимости в 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.