Files
llm/docs/1c-sql-protocol/research/template-descriptor-fixture-protocol.md

3.5 KiB

Контролируемые fixtures: типы макетов 1С

Цель

Зафиксировать platform-dependent таблицу Template descriptor type code -> TemplateType для конкретной сборки 1С. До выполнения каждого опыта код не является именем типа, а carrier payload не является источником типа.

Условия опыта

  • База: upo_test; изменения допускаются только в отдельном расширении codex_TemplateCodecFixtures.
  • Для каждого типа создаётся ровно один пустой макет с именем CodecFixture_<EnglishType> и один минимальный, но непустой вариант.
  • До создания, после создания и после сохранения конфигурации снимаются 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 документ <p>X</p> .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 и не заменяют эти условия.