From 6b3e865f8f0c41fd9d7df857be98bab18e1fc55f Mon Sep 17 00:00:00 2001 From: Mikhail Date: Fri, 14 Aug 2026 21:01:43 +0300 Subject: [PATCH] docs(1c): add controlled template descriptor fixture protocol --- .../template-descriptor-fixture-protocol.md | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 docs/1c-sql-protocol/research/template-descriptor-fixture-protocol.md diff --git a/docs/1c-sql-protocol/research/template-descriptor-fixture-protocol.md b/docs/1c-sql-protocol/research/template-descriptor-fixture-protocol.md new file mode 100644 index 0000000..32d8791 --- /dev/null +++ b/docs/1c-sql-protocol/research/template-descriptor-fixture-protocol.md @@ -0,0 +1,48 @@ +# Контролируемые fixtures: типы макетов 1С + +## Цель + +Зафиксировать platform-dependent таблицу `Template descriptor type code -> +TemplateType` для конкретной сборки 1С. До выполнения каждого опыта код не +является именем типа, а carrier payload не является источником типа. + +## Условия опыта + +- База: `upo_test`; изменения допускаются только в отдельном расширении + `codex_TemplateCodecFixtures`. +- Для каждого типа создаётся ровно один пустой макет с именем + `CodecFixture_` и один минимальный, но непустой вариант. +- До создания, после создания и после сохранения конфигурации снимаются + descriptor `{GUID}` и все части `{GUID}.*` из SQL saved state. +- Для каждого снимка сохраняются SHA-1, размер, compression, descriptor tree, + descriptor type code, XML root/сигнатура carrier и экспорт Конфигуратора. +- Обратная запись запрещена, пока для того же типа не доказан byte-preserving + round trip и не подтверждён результат человеком в Конфигураторе. + +## Матрица + +| Fixture suffix | Тип из мастера | Минимальное содержимое | Нужный артефакт | +| --- | --- | --- | --- | +| `Spreadsheet` | Табличный документ | Одна ячейка `X` | `.mxl` + SQL carrier | +| `Text` | Текстовый документ | `X` | `.txt` + SQL carrier | +| `Binary` | Двоичные данные | 3 байта `01 02 03` | `.bin` + SQL carrier | +| `Active` | Active document | минимальный выбранный Active object | SQL carrier, тип OLE | +| `Html` | HTML документ | `

X

` | `.htm` + SQL carrier | +| `Geo` | Географическая схема | пустая схема | `.geo` + SQL carrier | +| `Graphical` | Графическая схема | один прямоугольник | `.grs` + SQL carrier | +| `Dcs` | Схема компоновки данных | параметр `P` и пустой dataset | XML + SQL carrier | +| `DcsAppearance` | Макет оформления компоновки данных | одно правило оформления | XML + SQL carrier | +| `AddIn` | Внешняя компонента | тестовый ZIP с манифестом | ZIP + SQL carrier | + +## Критерий принятия одной строки таблицы + +Строка считается `proven` только когда одновременно совпали: + +1. тип, выбранный в мастере Конфигуратора; +2. descriptor type code из сохранённого объекта; +3. снимок carrier `{GUID}.0` и export соответствующего редактора; +4. повторное открытие и сохранение fixture в Конфигураторе без ошибки. + +Любое отсутствие пункта оставляет строку `unresolved_mapping`. Имена макетов, +XML root и архивная сигнатура являются вспомогательными evidence и не заменяют +эти условия.