docs: версия формата согласована внутри объекта; FormType Managed — управляемая, полный TemplateType

1c-configuration-spec §7.1 — правило, по которому платформа принимает или отвергает выгрузку с
разными версиями формата (измерено на 8.3.27.1859: конфигурация, расширение, внешняя обработка),
и какие проверки валидаторов на нём стоят. 1c-config-objects-spec §6.3/6.4: Ordinary был подписан
управляемой формой (наоборот: Managed — управляемая), список TemplateType приведён к девяти
значениям, путь к дескриптору формы исправлен (Forms/<Имя>.xml).

Co-Authored-By: Sergei Pleshanov <2357qwr@gmail.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-26 22:37:14 +03:00
co-authored by Sergei Pleshanov Claude Opus 5.5
parent 9142341720
commit f421ce3d85
2 changed files with 15 additions and 3 deletions
+12
View File
@@ -1033,6 +1033,18 @@ ChildObjects содержат `IntegrationServiceChannel` (каналы) — inl
**Проверенный диапазон навыков — `2.17`–`2.21`.** Ниже 2.17 навыки работать не запрещают, но и не обещают: `*-init` выпустят скаффолд с предупреждением, валидаторы отметят версию как непроверенную. Дельты форматов 2.13–2.16 не изучались.
**Версия согласована внутри объекта, а не во всей выгрузке.** Штамп `version` стоит в корне каждого XML выгрузки, кроме тел макетов табличного документа и СКД, `WSDefinition.xml` и `ClientApplicationInterface.xml`. Платформа при загрузке сверяет штамп тела `X/Ext/*.xml` с его дескриптором `X.xml` и отвергает объект, чьи части в разных версиях: «Версия формата загружаемого файла … отличается от версии формата ранее загруженных файлов». У заимствованной формы расширения сверяется и вложенный `<BaseForm version=…>`. Форма и макет — отдельные объекты (`Forms/F.xml` + `Forms/F/Ext/Form.xml`), от владельца не зависят. Конфигурация — такой же объект: `Configuration.xml` + `Ext/*.xml` (`CommandInterface`, `MainSectionCommandInterface`, `HomePageWorkArea`, `Splash`, `MainSectionPicture`, `Logo`). Объекты разных версий между собой платформа грузит, если ни один не новее её самой («Неизвестная версия формата N загружаемого файла»); обратная выгрузка перештамповывает всё версией платформы. Измерено на 8.3.27.1859, Full и Partial, конфигурация, расширение и внешняя обработка:
| Расхождение | Загрузка |
|---|---|
| Тело `X/Ext/*.xml` ≠ дескриптор `X.xml` (Form, Rights, Help, Predefined, ExchangePlanContent, JobSchedule, Style, ExtPicture, CommandInterface, тела макетов GraphicalSchema и HTML) — в любую сторону | отказ |
| `Ext/*.xml` конфигурации ≠ `Configuration.xml` | отказ |
| `<BaseForm version>` заимствованной формы ≠ дескриптор формы | отказ |
| Объект со всеми своими частями в `2.18` в выгрузке `2.20` (типично после мержа веток, выгруженных разными платформами) | грузится |
| `Configuration.xml` со своими `Ext/*.xml` в `2.18`, объекты в `2.20` | грузится |
Отсюда уровни в валидаторах: расхождение части со своим дескриптором — ошибка (`meta-validate` 24 обходит объект с формами и макетами, `cf-validate` 10, `cfe-validate` 17, `epf-validate` 11, `form-validate` 14, `interface-validate` 14, `subsystem-validate` 14, `role-validate`); расхождение с якорем выгрузки (`Configuration.xml` или корень EPF/ERF) — предупреждение о неоднородной выгрузке. Генераторы тела берут версию из дескриптора объекта, если он есть (`template-add`, `help-add`).
```xml
<MetaDataObject ... version="2.17">
<MetaDataObject ... version="2.21">