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

49 lines
3.5 KiB
Markdown

# Контролируемые 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 и не заменяют
эти условия.