From f421ce3d850d2c3c1f3f691fa7c08eaf70aef027 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 26 Sep 2026 22:37:14 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B0=20=D1=81=D0=BE=D0=B3?= =?UTF-8?q?=D0=BB=D0=B0=D1=81=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=B2=D0=BD?= =?UTF-8?q?=D1=83=D1=82=D1=80=D0=B8=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82?= =?UTF-8?q?=D0=B0;=20FormType=20Managed=20=E2=80=94=20=D1=83=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D0=BC=D0=B0=D1=8F,=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D1=8B=D0=B9=20TemplateType?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- docs/1c-config-objects-spec.md | 6 +++--- docs/1c-configuration-spec.md | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/1c-config-objects-spec.md b/docs/1c-config-objects-spec.md index 94614c3f8..0154f1ba5 100644 --- a/docs/1c-config-objects-spec.md +++ b/docs/1c-config-objects-spec.md @@ -770,12 +770,12 @@ Ext/ # Расширение конфигураци ФормаЭлемента ... - Ordinary + Managed ``` -Содержимое формы хранится в отдельных файлах: `Forms/<Имя>/<Имя>.xml` и `Forms/<Имя>/Ext/Form.xml`. +Форма хранится двумя файлами: дескриптор `Forms/<Имя>.xml` и тело `Forms/<Имя>/Ext/Form.xml` — оба в одной версии формата (см. 1c-configuration-spec.md, §7.1). ### 6.4. Макет (Template) @@ -785,7 +785,7 @@ Ext/ # Расширение конфигураци ОсновнаяСхемаКомпоновкиДанных ... - DataCompositionSchema + DataCompositionSchema ``` diff --git a/docs/1c-configuration-spec.md b/docs/1c-configuration-spec.md index 4b827d7f6..8ea0b2089 100644 --- a/docs/1c-configuration-spec.md +++ b/docs/1c-configuration-spec.md @@ -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` и отвергает объект, чьи части в разных версиях: «Версия формата загружаемого файла … отличается от версии формата ранее загруженных файлов». У заимствованной формы расширения сверяется и вложенный ``. Форма и макет — отдельные объекты (`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` | отказ | +| `` заимствованной формы ≠ дескриптор формы | отказ | +| Объект со всеми своими частями в `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