Files
cc-1c-skills/docs/1c-xml-format-spec.md
T
Nick Shirokov b3dac25729 Add epf-add-help skill and help specification
New skill /epf-add-help creates built-in help files (Help.xml + HTML page)
for external data processors. Also adds IncludeHelpInContents to form
metadata if missing.

New spec docs/1c-help-spec.md documents the help file format, HTML
template, and help button integration on forms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 22:13:47 +03:00

29 KiB
Raw Blame History

Спецификация XML-формата выгрузки внешней обработки 1С

Формат: XML-выгрузка внешней обработки (ExternalDataProcessor) из конфигуратора 1С:Предприятие 8.3. Версия формата: 2.17.

1. Структура каталогов

<ИмяОбработки>.xml                          # Корневой файл метаданных
<ИмяОбработки>/
    Ext/
        ObjectModule.bsl                     # Модуль объекта (опционально)
        Help.xml                             # Метаданные справки (опционально)
        Help/
            ru.html                          # HTML-страница справки
    Forms/
        <ИмяФормы>.xml                       # Метаданные формы
        <ИмяФормы>/
            Ext/
                Form.xml                     # Описание формы (элементы, реквизиты, команды)
                Form/
                    Module.bsl               # Модуль формы
    Templates/
        <ИмяМакета>.xml                      # Метаданные макета
        <ИмяМакета>/
            Ext/
                Template.<расш>              # Тело макета: .html, .xml (mxl) и др.

Обработка может содержать:

  • 0..N форм (каталог Forms/)
  • 0..N макетов (каталог Templates/)
  • 0..1 модуль объекта (Ext/ObjectModule.bsl)
  • 0..1 встроенная справка (Ext/Help.xml + Ext/Help/<язык>.html), см. 1c-help-spec.md
  • 0..N табличных частей (описаны в корневом XML)

2. Пространства имён XML

2.1. Файлы метаданных (корневой XML, формы, макеты)

Корневой элемент — <MetaDataObject>, пространство имён:

xmlns="http://v8.1c.ru/8.3/MDClasses"

Полный набор деклараций (можно копировать как есть):

<MetaDataObject
    xmlns="http://v8.1c.ru/8.3/MDClasses"
    xmlns:app="http://v8.1c.ru/8.2/managed-application/core"
    xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config"
    xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi"
    xmlns:ent="http://v8.1c.ru/8.1/data/enterprise"
    xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform"
    xmlns:style="http://v8.1c.ru/8.1/data/ui/style"
    xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system"
    xmlns:v8="http://v8.1c.ru/8.1/data/core"
    xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
    xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web"
    xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows"
    xmlns:xen="http://v8.1c.ru/8.3/xcf/enums"
    xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef"
    xmlns:xr="http://v8.1c.ru/8.3/xcf/readable"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="2.17">

2.2. Описание формы (Form.xml)

Корневой элемент — <Form>, пространство имён:

xmlns="http://v8.1c.ru/8.3/xcf/logform"

Полный набор деклараций:

<Form
    xmlns="http://v8.1c.ru/8.3/xcf/logform"
    xmlns:app="http://v8.1c.ru/8.2/managed-application/core"
    xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config"
    xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core"
    xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings"
    xmlns:ent="http://v8.1c.ru/8.1/data/enterprise"
    xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform"
    xmlns:style="http://v8.1c.ru/8.1/data/ui/style"
    xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system"
    xmlns:v8="http://v8.1c.ru/8.1/data/core"
    xmlns:v8ui="http://v8.1c.ru/8.1/data/ui"
    xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web"
    xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows"
    xmlns:xr="http://v8.1c.ru/8.3/xcf/readable"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    version="2.17">

Ключевое отличие: файлы метаданных используют http://v8.1c.ru/8.3/MDClasses, описание формы — http://v8.1c.ru/8.3/xcf/logform.

3. Корневой файл обработки (<Имя>.xml)

Определяет имя обработки, синоним, форму по умолчанию и список дочерних объектов.

<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="..." version="2.17">
    <ExternalDataProcessor uuid="<UUID>">
        <InternalInfo>
            <xr:ContainedObject>
                <xr:ClassId>c3831ec8-d8d5-4f93-8a22-f9bfae07327f</xr:ClassId>
                <xr:ObjectId><UUID></xr:ObjectId>
            </xr:ContainedObject>
            <xr:GeneratedType name="ExternalDataProcessorObject.<Имя>" category="Object">
                <xr:TypeId><UUID></xr:TypeId>
                <xr:ValueId><UUID></xr:ValueId>
            </xr:GeneratedType>
        </InternalInfo>
        <Properties>
            <Name><Имя></Name>
            <Synonym>
                <v8:item>
                    <v8:lang>ru</v8:lang>
                    <v8:content><Представление></v8:content>
                </v8:item>
            </Synonym>
            <Comment/>
            <DefaultForm>ExternalDataProcessor.<Имя>.Form.<ИмяФормы></DefaultForm>
            <AuxiliaryForm/>
        </Properties>
        <ChildObjects>
            <!-- Табличные части (опционально) -->
            <TabularSection uuid="<UUID>">...</TabularSection>
            <!-- Формы -->
            <Form><ИмяФормы></Form>
            <!-- Макеты -->
            <Template><ИмяМакета></Template>
        </ChildObjects>
    </ExternalDataProcessor>
</MetaDataObject>

Правила

Элемент Описание
ClassId Всегда c3831ec8-d8d5-4f93-8a22-f9bfae07327f (идентификатор класса ExternalDataProcessor)
ObjectId, TypeId, ValueId Уникальные UUID, генерируются при создании
DefaultForm Полный путь: ExternalDataProcessor.<Имя>.Form.<ИмяФормы>
<Form>, <Template> Только имена (без путей), соответствуют именам подкаталогов в Forms/ и Templates/
<TabularSection> Полное описание табличных частей объекта (включая реквизиты ТЧ с типами)

Табличные части объекта

Если обработка имеет табличные части, они описываются в <ChildObjects> корневого файла:

<TabularSection uuid="<UUID>">
    <InternalInfo>
        <xr:GeneratedType name="DataProcessorTabularSection.<ИмяОбработки>.<ИмяТЧ>" category="TabularSection">
            <xr:TypeId><UUID></xr:TypeId>
            <xr:ValueId><UUID></xr:ValueId>
        </xr:GeneratedType>
        <xr:GeneratedType name="DataProcessorTabularSectionRow.<ИмяОбработки>.<ИмяТЧ>" category="TabularSectionRow">
            <xr:TypeId><UUID></xr:TypeId>
            <xr:ValueId><UUID></xr:ValueId>
        </xr:GeneratedType>
    </InternalInfo>
    <Properties>
        <Name><ИмяТЧ></Name>
        <Synonym>...</Synonym>
        <Comment/>
        <ToolTip/>
        <FillChecking>DontCheck</FillChecking>
        <StandardAttributes>
            <xr:StandardAttribute name="LineNumber">
                <!-- Стандартные свойства реквизита -->
            </xr:StandardAttribute>
        </StandardAttributes>
    </Properties>
    <ChildObjects>
        <Attribute uuid="<UUID>">
            <Properties>
                <Name><ИмяРеквизита></Name>
                <Type>...</Type>
                <!-- Остальные свойства -->
            </Properties>
        </Attribute>
    </ChildObjects>
</TabularSection>

4. Метаданные формы (Forms/<Имя>.xml)

<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="..." version="2.17">
    <Form uuid="<UUID>">
        <Properties>
            <Name><ИмяФормы></Name>
            <Synonym>
                <v8:item>
                    <v8:lang>ru</v8:lang>
                    <v8:content><Представление></v8:content>
                </v8:item>
            </Synonym>
            <Comment/>
            <FormType>Managed</FormType>
            <IncludeHelpInContents>false</IncludeHelpInContents>
            <UsePurposes>
                <v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
            </UsePurposes>
            <ExtendedPresentation/>
        </Properties>
    </Form>
</MetaDataObject>

FormType — всегда Managed для управляемых форм.

5. Метаданные макета (Templates/<Имя>.xml)

<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="..." version="2.17">
    <Template uuid="<UUID>">
        <Properties>
            <Name><ИмяМакета></Name>
            <Synonym>
                <v8:item>
                    <v8:lang>ru</v8:lang>
                    <v8:content><Представление></v8:content>
                </v8:item>
            </Synonym>
            <Comment/>
            <TemplateType><ТипМакета></TemplateType>
        </Properties>
    </Template>
</MetaDataObject>

Типы макетов

Значение TemplateType Расширение файла тела Описание
SpreadsheetDocument .xml Табличный документ (MXL в XML)
HTMLDocument .html HTML-документ
TextDocument .txt Текстовый документ
BinaryData .bin Двоичные данные
ActiveDocument .xml Активный документ

6. Описание формы (Form.xml)

Самый сложный файл. Содержит три корневых секции:

  • <ChildItems> — дерево элементов формы (визуальная структура)
  • <Attributes> — реквизиты формы (данные)
  • <Commands> — команды формы

6.1. Общая структура

<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" ... version="2.17">
    <Title>...</Title>
    <AutoTitle>false</AutoTitle>
    <AutoCommandBar name="ФормаКоманднаяПанель" id="-1">
        <Autofill>false</Autofill>
    </AutoCommandBar>
    <Events>
        <Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
    </Events>
    <ChildItems>
        <!-- Элементы формы -->
    </ChildItems>
    <Attributes>
        <!-- Реквизиты формы -->
    </Attributes>
    <Commands>
        <!-- Команды формы -->
    </Commands>
</Form>

6.2. Идентификаторы (id)

  • Каждый элемент, реквизит и команда имеет уникальный id (целое число).
  • id уникален в пределах своей секции: элементы, реквизиты и команды нумеруются независимо.
  • id="-1" зарезервирован для AutoCommandBar формы.
  • id колонок (Column) — уникальны в пределах своего реквизита.

6.3. Элементы формы (<ChildItems>)

Типы элементов

XML-тег Описание Ключевые свойства
UsualGroup Обычная группа Group (Vertical/Horizontal), Representation, ShowTitle
Button Кнопка Type (UsualButton/CommandBarButton), CommandName
InputField Поле ввода DataPath, MinValue, MaxValue
CheckBoxField Флажок DataPath, CheckBoxType, ThreeState, ReadOnly
LabelField Поле надписи DataPath (только отображение)
LabelDecoration Декорация-надпись Title (статический текст)
FormTree Дерево формы DataPath, Header, RowPictureDataPath
Table Таблица формы DataPath, Representation (List/Tree), ChangeRowSet
HTMLDocumentField Поле HTML-документа DataPath
CommandBar Командная панель (внутри элемента) Autofill
Popup Подменю на командной панели Title, Picture

Правила DataPath

  • Простые реквизиты: DataPath = имя реквизита формы. Пример: <DataPath>СтрокаПоиска</DataPath>
  • Колонки таблицы/дерева (реквизит формы): <ИмяРеквизита>.<ИмяКолонки>. Пример: <DataPath>ТаблицаРеквизитов.Пометка</DataPath>
  • Табличные части объекта: Объект.<ИмяТЧ>.<ИмяРеквизита>. Пример: <DataPath>Объект.ТЧМетаданные.Флаг</DataPath>

ExtendedTooltip

Каждый элемент формы должен иметь дочерний <ExtendedTooltip>. Минимальная форма:

<ExtendedTooltip name="<ИмяЭлемента>ExtendedTooltip" id="<ID>"/>

Имя: <ИмяРодительскогоЭлемента>ExtendedTooltip. Может содержать <Title> с текстом подсказки.

ContextMenu

Элементы, поддерживающие контекстное меню (InputField, CheckBoxField, LabelField, FormTree, Table, HTMLDocumentField), должны иметь:

<ContextMenu name="<ИмяЭлемента>КонтекстноеМеню" id="<ID>"/>

Пример: группа с кнопками

<UsualGroup name="ГруппаКоманд" id="1">
    <Title><v8:item><v8:lang>ru</v8:lang><v8:content>Команды</v8:content></v8:item></Title>
    <Representation>None</Representation>
    <ShowTitle>false</ShowTitle>
    <ExtendedTooltip name="ГруппаКомандExtendedTooltip" id="100"/>
    <ChildItems>
        <Button name="КнопкаПостроить" id="2">
            <Type>UsualButton</Type>
            <Title>...</Title>
            <CommandName>Form.Command.Построить</CommandName>
            <ExtendedTooltip name="КнопкаПостроитьExtendedTooltip" id="101"/>
        </Button>
    </ChildItems>
</UsualGroup>

Пример: FormTree (дерево)

<FormTree name="ДеревоМетаданных" id="11">
    <DataPath>ДеревоМетаданных</DataPath>
    <TitleLocation>None</TitleLocation>
    <ContextMenu name="ДеревоМетаданныхКонтекстноеМеню" id="12"/>
    <ExtendedTooltip name="ДеревоМетаданныхExtendedTooltip" id="108"/>
    <CommandBar name="ДеревоМетаданныхКоманднаяПанель" id="13">
        <Autofill>false</Autofill>
        <ExtendedTooltip name="ДеревоМетаданныхКоманднаяПанельExtendedTooltip" id="109"/>
    </CommandBar>
    <Header>false</Header>
    <RowPictureDataPath>ДеревоМетаданных.ИндексКартинки</RowPictureDataPath>
    <Events>
        <Event name="OnActivateRow">ДеревоМетаданныхПриАктивизацииСтроки</Event>
    </Events>
    <ChildItems>
        <!-- Колонки как дочерние элементы -->
        <CheckBoxField name="ДеревоМетаданныхПометка" id="14">
            <DataPath>ДеревоМетаданных.Пометка</DataPath>
            ...
        </CheckBoxField>
    </ChildItems>
</FormTree>

Пример: Table (таблица, привязанная к реквизиту формы типа ValueTable)

<Table name="ТаблицаРеквизитов" id="26">
    <DataPath>ТаблицаРеквизитов</DataPath>
    <TitleLocation>None</TitleLocation>
    <ContextMenu name="ТаблицаРеквизитовКонтекстноеМеню" id="27"/>
    <ExtendedTooltip name="ТаблицаРеквизитовExtendedTooltip" id="119"/>
    <CommandBar name="ТаблицаРеквизитовКоманднаяПанель" id="28">
        <Autofill>false</Autofill>
        <ExtendedTooltip name="ТаблицаРеквизитовКоманднаяПанельExtendedTooltip" id="120"/>
    </CommandBar>
    <ChangeRowSet>false</ChangeRowSet>
    <ChangeRowOrder>false</ChangeRowOrder>
    <ChildItems>
        <CheckBoxField name="ТаблицаРеквизитовПометка" id="29">
            <DataPath>ТаблицаРеквизитов.Пометка</DataPath>
            ...
        </CheckBoxField>
    </ChildItems>
</Table>

Table: режим дерева

Элемент Table может отображать данные как дерево через <Representation>Tree</Representation>. В этом случае реквизит формы должен иметь тип v8:ValueTree.

<Table name="ДеревоМетаданных" id="238">
    <Representation>Tree</Representation>
    <DataPath>ДеревоМетаданных</DataPath>
    ...
</Table>

Примечание: Элемент FormTree — альтернативный способ отобразить дерево. FormTree не требует явного указания <Representation>, дерево подразумевается. Table с <Representation>Tree</Representation> — более полный элемент с дополнительными возможностями (SearchStringAddition, ViewStatusAddition и др.).

Table: привязка к ТЧ объекта vs реквизит формы

Источник данных DataPath таблицы DataPath колонки Тип реквизита
Табличная часть объекта Объект.<ИмяТЧ> Объект.<ИмяТЧ>.<ИмяРеквизита> (определён в корневом XML)
Реквизит формы (ValueTable) <ИмяРеквизита> <ИмяРеквизита>.<ИмяКолонки> v8:ValueTable
Реквизит формы (ValueTree) <ИмяРеквизита> <ИмяРеквизита>.<ИмяКолонки> v8:ValueTree

6.4. Реквизиты формы (<Attributes>)

Примитивные типы

<Attribute name="СтрокаПоиска" id="18">
    <Title><v8:item><v8:lang>ru</v8:lang><v8:content>Строка поиска</v8:content></v8:item></Title>
    <Type>
        <v8:Type>xs:string</v8:Type>
        <v8:StringQualifiers>
            <v8:Length>200</v8:Length>
            <v8:AllowedLength>Variable</v8:AllowedLength>
        </v8:StringQualifiers>
    </Type>
</Attribute>

Таблица типов

v8:Type Описание Квалификаторы
xs:string Строка v8:StringQualifiers: Length (0 = неограниченная), AllowedLength (Variable/Fixed)
xs:boolean Булево
xs:decimal Число v8:NumberQualifiers: Digits, FractionDigits, AllowedSign (Any/Nonnegative)
xs:dateTime Дата v8:DateQualifiers: DateFractions (Date/Time/DateTime)
v8:ValueTable Таблица значений Должен содержать <Columns>
v8:ValueTree Дерево значений Должен содержать <Columns>
v8:UUID Уникальный идентификатор
cfg:ExternalDataProcessorObject.<Имя> Объект обработки (основной реквизит) <MainAttribute>true</MainAttribute>
cfg:CatalogRef.<Имя> Ссылка на справочник
xmlns:mxl="http://v8.1c.ru/8.2/data/spreadsheet" mxl:SpreadsheetDocument Табличный документ Требует дополнительное объявление namespace mxl

ВАЖНО: Для коллекций (ValueTable, ValueTree) тип обязателен. Пустой <Type/> приведёт к ошибке «Неверный путь к данным» при обращении к колонкам через DataPath.

Коллекции: ValueTable и ValueTree

<Attribute name="ТаблицаРеквизитов" id="8">
    <Title>...</Title>
    <Type>
        <v8:Type>v8:ValueTable</v8:Type>
    </Type>
    <Columns>
        <Column name="Пометка" id="1">
            <Title>...</Title>
            <Type>
                <v8:Type>xs:boolean</v8:Type>
            </Type>
        </Column>
        <Column name="ИмяРеквизита" id="2">
            <Title>...</Title>
            <Type>
                <v8:Type>xs:string</v8:Type>
                <v8:StringQualifiers>
                    <v8:Length>150</v8:Length>
                    <v8:AllowedLength>Variable</v8:AllowedLength>
                </v8:StringQualifiers>
            </Type>
        </Column>
    </Columns>
</Attribute>

Для дерева — v8:ValueTree, структура аналогична.

Основной реквизит (Объект)

Связывает форму с объектом обработки. Обязателен для доступа к табличным частям и модулю объекта.

<Attribute name="Объект" id="20">
    <Type>
        <v8:Type>cfg:ExternalDataProcessorObject.<ИмяОбработки></v8:Type>
    </Type>
    <MainAttribute>true</MainAttribute>
</Attribute>

6.5. Команды формы (<Commands>)

<Command name="Построить" id="1">
    <Title>
        <v8:item>
            <v8:lang>ru</v8:lang>
            <v8:content>Построить</v8:content>
        </v8:item>
    </Title>
    <ToolTip>
        <v8:item>
            <v8:lang>ru</v8:lang>
            <v8:content>Построить ER-диаграмму</v8:content>
        </v8:item>
    </ToolTip>
    <Action>КомандаПостроить</Action>
    <CurrentRowUse>DontUse</CurrentRowUse>
</Command>

Команда привязывается к кнопке через CommandName:

<Button ...>
    <CommandName>Form.Command.Построить</CommandName>
</Button>

6.6. События формы и элементов

События формы

<Events>
    <Event name="OnCreateAtServer">ПриСозданииНаСервере</Event>
    <Event name="OnOpen">ПриОткрытии</Event>
</Events>

События элементов (внутри элемента)

<Events>
    <Event name="OnChange">ДеревоМетаданныхПометкаПриИзменении</Event>
    <Event name="OnActivateRow">ДеревоМетаданныхПриАктивизацииСтроки</Event>
</Events>
Имя события Описание
OnCreateAtServer При создании на сервере (форма)
OnOpen При открытии (форма)
OnChange При изменении (элементы ввода, флажки)
OnActivateRow При активизации строки (дерево, таблица)
OnEditEnd При окончании редактирования (таблица)

7. Модули BSL

7.1. Модуль объекта (ObjectModule.bsl)

Серверная логика без контекста формы. Доступен через РеквизитФормыВЗначение("Объект").

// Экспортные функции — API объекта
Функция ПолучитьДанные() Экспорт
    // ...
КонецФункции

7.2. Модуль формы (Module.bsl)

Обработчики событий формы, элементов и команд.

Директивы компиляции:

  • &НаСервере — выполняется на сервере, есть доступ к реквизитам формы
  • &НаКлиенте — выполняется на клиенте
  • &НаСервереБезКонтекста — на сервере без контекста формы
#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ОбъектОбработки = РеквизитФормыВЗначение("Объект");
    // ... вызовы функций модуля объекта
КонецПроцедуры

#КонецОбласти

8. Генерация UUID

Все UUID в XML-файлах должны быть валидными UUID v4. Формат: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

При генерации нового проекта каждый UUID должен быть уникальным. UUID используются для:

  • Идентификации объекта обработки (ExternalDataProcessor uuid)
  • Внутренних типов (ContainedObject, GeneratedType)
  • Форм (Form uuid)
  • Макетов (Template uuid)
  • Табличных частей и их реквизитов

9. Известные ошибки и подводные камни

«Неверный путь к данным» для колонок таблицы

Проблема: При загрузке формы конфигуратор выдаёт ошибку «Неверный путь к данным: <Реквизит>.<Колонка>» для всех колонок таблицы.

Причина: Реквизит формы с колонками (<Columns>) не имеет правильного типа. Для коллекций тип обязателен:

  • v8:ValueTable для таблиц
  • v8:ValueTree для деревьев

Неправильно:

<Attribute name="МояТаблица" id="1">
    <Type/>                              <!-- ОШИБКА: тип пустой -->
    <Columns>...</Columns>
</Attribute>

Правильно:

<Attribute name="МояТаблица" id="1">
    <Type>
        <v8:Type>v8:ValueTable</v8:Type>  <!-- Тип обязателен -->
    </Type>
    <Columns>...</Columns>
</Attribute>

BOM в файлах метаданных

Файлы метаданных (корневой XML, формы, макеты), выгруженные конфигуратором, содержат BOM (Byte Order Mark, \xEF\xBB\xBF) в начале. Файл Form.xml (описание формы) и .bsl-модули — без BOM. При ручном создании файлов рекомендуется следовать этому же правилу, хотя конфигуратор принимает файлы и без BOM.

Кодировка

Все файлы — UTF-8. XML-файлы имеют заголовок <?xml version="1.0" encoding="UTF-8"?>.

10. Чеклист для создания новой обработки

  1. Сгенерировать UUID для каждого объекта (обработка, формы, макеты, ТЧ)
  2. Создать структуру каталогов (раздел 1)
  3. Создать корневой XML (раздел 3) с правильными ChildObjects
  4. Для каждой формы:
    • Создать <Имя>.xml (раздел 4)
    • Создать Form.xml (раздел 6) — проверить пространство имён!
    • Создать Module.bsl (раздел 7.2)
  5. Для каждого макета:
    • Создать <Имя>.xml (раздел 5) с правильным TemplateType
    • Создать тело макета (Template.<расш>)
  6. При необходимости создать ObjectModule.bsl (раздел 7.1)
  7. Проверить:
    • Все <Type> для коллекций содержат v8:ValueTable / v8:ValueTree
    • Все DataPath корректны (особенно для колонок таблиц)
    • Все элементы имеют ExtendedTooltip
    • Все ID уникальны в пределах своих секций
    • DefaultForm в корневом файле соответствует реальному имени формы