# Программа доказательного 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](https://kb.1ci.com/1C_Enterprise_Platform/Guides/Developer_Guides/1C_Enterprise_8.3.23_Developer_Guide/Chapter_31._Development_tools/31.14._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`. ## Среда Configurator и текущий блокер fixture-изменений На рабочей станции подтверждены локальные исполняемые файлы Configurator: `C:\\Program Files\\1cv8\\8.3.24.1548\\bin\\1cv8.exe` и `C:\\Program Files\\1cv8\\8.5.1.1236\\bin\\1cv8.exe`. В списке информационных баз зарегистрирован `upo_test` с соединением `Srvr="wsr";Ref="upo_test"`. 14.08.2026 выполнена только read-only попытка `DESIGNER /DumpConfigToFiles` в отдельный каталог отчётов. Сервер вернул `Пользователь ИБ не идентифицирован`; выгрузка не началась и база не изменялась. Поэтому автоматизированные before/after изменения в Configurator пока не запускаются: требуется штатная учётная запись ИБ или интерактивный вход человека. Это не ослабляет SQL-only правило runtime адаптера и не является разрешением подбирать либо сохранять пароли.