mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-28 13:05:53 +03:00
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:
co-authored by
Sergei Pleshanov
Claude Opus 5.5
parent
9142341720
commit
f421ce3d85
@@ -770,12 +770,12 @@ Ext/ # Расширение конфигураци
|
|||||||
<Name>ФормаЭлемента</Name>
|
<Name>ФормаЭлемента</Name>
|
||||||
<Synonym>...</Synonym>
|
<Synonym>...</Synonym>
|
||||||
<Comment/>
|
<Comment/>
|
||||||
<FormType>Ordinary</FormType> <!-- Ordinary = управляемая форма -->
|
<FormType>Managed</FormType> <!-- Managed = управляемая форма, Ordinary = обычная (толстый клиент) -->
|
||||||
</Properties>
|
</Properties>
|
||||||
</Form>
|
</Form>
|
||||||
```
|
```
|
||||||
|
|
||||||
Содержимое формы хранится в отдельных файлах: `Forms/<Имя>/<Имя>.xml` и `Forms/<Имя>/Ext/Form.xml`.
|
Форма хранится двумя файлами: дескриптор `Forms/<Имя>.xml` и тело `Forms/<Имя>/Ext/Form.xml` — оба в одной версии формата (см. 1c-configuration-spec.md, §7.1).
|
||||||
|
|
||||||
### 6.4. Макет (Template)
|
### 6.4. Макет (Template)
|
||||||
|
|
||||||
@@ -785,7 +785,7 @@ Ext/ # Расширение конфигураци
|
|||||||
<Name>ОсновнаяСхемаКомпоновкиДанных</Name>
|
<Name>ОсновнаяСхемаКомпоновкиДанных</Name>
|
||||||
<Synonym>...</Synonym>
|
<Synonym>...</Synonym>
|
||||||
<Comment/>
|
<Comment/>
|
||||||
<TemplateType>DataCompositionSchema</TemplateType> <!-- DataCompositionSchema | SpreadsheetDocument | HTMLDocument | TextDocument | BinaryData | ActiveDocument -->
|
<TemplateType>DataCompositionSchema</TemplateType> <!-- SpreadsheetDocument | BinaryData | HTMLDocument | TextDocument | ActiveDocument | DataCompositionSchema | DataCompositionAppearanceTemplate | GraphicalSchema | AddIn — см. 1c-configuration-spec.md, «Template» -->
|
||||||
</Properties>
|
</Properties>
|
||||||
</Template>
|
</Template>
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1033,6 +1033,18 @@ ChildObjects содержат `IntegrationServiceChannel` (каналы) — inl
|
|||||||
|
|
||||||
**Проверенный диапазон навыков — `2.17`–`2.21`.** Ниже 2.17 навыки работать не запрещают, но и не обещают: `*-init` выпустят скаффолд с предупреждением, валидаторы отметят версию как непроверенную. Дельты форматов 2.13–2.16 не изучались.
|
**Проверенный диапазон навыков — `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
|
```xml
|
||||||
<MetaDataObject ... version="2.17">
|
<MetaDataObject ... version="2.17">
|
||||||
<MetaDataObject ... version="2.21">
|
<MetaDataObject ... version="2.21">
|
||||||
|
|||||||
Reference in New Issue
Block a user