From 03fed309c6efb32048283b91f86e477556c98cac Mon Sep 17 00:00:00 2001 From: Mikhail Date: Fri, 14 Aug 2026 11:57:30 +0300 Subject: [PATCH] Add report template codec roadmap --- .../research/report-template-codec-program.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/docs/1c-sql-protocol/research/report-template-codec-program.md b/docs/1c-sql-protocol/research/report-template-codec-program.md index 8778648..638420f 100644 --- a/docs/1c-sql-protocol/research/report-template-codec-program.md +++ b/docs/1c-sql-protocol/research/report-template-codec-program.md @@ -61,6 +61,21 @@ parameters, layouts, nested schemas и settings. Макет оформления контракт: регионы, шрифты, цвета, границы и правила оформления; его нельзя обрабатывать методом `scd.patch`. +## Долгосрочный план и критерии готовности + +| Этап | Результат | Критерий перехода | +| --- | --- | --- | +| 1. Инвентарь | Реестр `Report → Template` с identity, container, SHA-1 и состоянием active/saved | У каждого fixture есть подтверждённая цепочка owner → template → payload, без имени формы в качестве подстановки. | +| 2. СКД read | Lossless контейнерный decoder с XML-путями для datasets, links, calculated fields, resources, parameters, layouts, nested schemas и settings | XML корректно читается на нескольких живых схемах; неизвестные XML узлы сохраняются в raw-carrier и не теряются. | +| 3. СКД write | Минимальный scalar writer (`dataset.query`, expression) и resolver `Report + Template` | `plan`, точная проверка SHA-1 и `apply_and_rollback` проходят на выделенной fixture; активность подтверждает человек в Configurator. | +| 4. Оформление СКД | Отдельный decoder/encoder XML оформления: regions, style rules, fonts, colors, borders, indents | Не используется путь `scd.patch`; один контролируемый before/after fixture доказывает carrier и round-trip. | +| 5. Прочие типы | Отдельная карточка codec-а на каждый из десяти platform types | Для Spreadsheet/Text/HTML/Geo/Graphical доказан собственный round-trip или выставлен explicit `unsupported`; Binary/Active/AddIn остаются opaque до отдельного доказательства. | +| 6. Report aggregate | API `report.inspect` возвращает identity, modules/forms/templates, main-SCD relation, overlay state и capability по каждому компоненту | Отчёт без подтверждённой СКД возвращает `unresolved`, а не выбирает форму или первый поток. | +| 7. Регрессия и выпуск | Fixture manifest, hash-baselines, unit tests, live SQL smoke и документация публичного контракта | Каждый write codec проходит план → rollback → SQL readback; ни один результат не заявляет применение в Configurator без ручного подтверждения. | + +Работа выполняется последовательно по этому реестру: новый тип не получает +write endpoint до собственной fixture и доказанного обратного carrier codec-а. + ## Ближайшая реализация Первый кодовый результат — resolver, который умеет различать форму и макет,