Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
32 KiB
Спецификация XML-формата выгрузки внешнего отчёта 1С
Формат: XML-выгрузка внешнего отчёта (ExternalReport) из конфигуратора 1С:Предприятие 8.3.
Версия формата: 2.17.
Связь с другими спецификациями:
- Структура каталогов, пространства имён, формат форм и макетов — идентичны спецификации внешней обработки (EPF).
- Формат СКД-макетов — см. спецификацию СКД.
- Формат форм — см. спецификацию форм.
- Формат MXL-макетов — см. спецификацию табличного документа.
Данный документ описывает только отличия внешнего отчёта от внешней обработки.
1. Структура каталогов
<ИмяОтчёта>.xml # Корневой файл метаданных
<ИмяОтчёта>/
Ext/
ObjectModule.bsl # Модуль объекта (опционально)
Help.xml # Метаданные справки (опционально)
Help/
ru.html # HTML-страница справки
Forms/
<ИмяФормы>.xml # Метаданные формы
<ИмяФормы>/
Ext/
Form.xml # Описание формы
Form/
Module.bsl # Модуль формы
Templates/
<ИмяМакета>.xml # Метаданные макета
<ИмяМакета>/
Ext/
Template.<расш> # Тело макета
Структура полностью совпадает с EPF. Отчёт может содержать:
- 0..N реквизитов объекта (описаны в корневом XML)
- 0..N табличных частей (описаны в корневом XML)
- 0..N форм (каталог
Forms/) - 0..N макетов (каталог
Templates/) — включая СКД и MXL-макеты печатных форм - 0..1 модуль объекта (
Ext/ObjectModule.bsl) - 0..1 встроенная справка (
Ext/Help.xml+Ext/Help/<язык>.html)
2. Корневой файл отчёта (<Имя>.xml)
2.1. Общая структура
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="..." version="2.17">
<ExternalReport uuid="<UUID>">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>e41aff26-25cf-4bb6-b6c1-3f478a75f374</xr:ClassId>
<xr:ObjectId><UUID></xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalReportObject.<Имя>" category="Object">
<xr:TypeId><UUID></xr:TypeId>
<xr:ValueId><UUID></xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name><Имя></Name>
<Synonym>...</Synonym>
<Comment/>
<DefaultForm/>
<AuxiliaryForm/>
<MainDataCompositionSchema/>
<DefaultSettingsForm/>
<AuxiliarySettingsForm/>
<DefaultVariantForm/>
<VariantsStorage/>
<SettingsStorage/>
</Properties>
<ChildObjects>
<!-- Реквизиты объекта (опционально) -->
<Attribute uuid="<UUID>">...</Attribute>
<!-- Табличные части (опционально) -->
<TabularSection uuid="<UUID>">...</TabularSection>
<!-- Формы -->
<Form><ИмяФормы></Form>
<!-- Макеты -->
<Template><ИмяМакета></Template>
</ChildObjects>
</ExternalReport>
</MetaDataObject>
2.2. Отличия от EPF
| Элемент | EPF | ERF |
|---|---|---|
| Корневой элемент | <ExternalDataProcessor> |
<ExternalReport> |
| ClassId | c3831ec8-d8d5-4f93-8a22-f9bfae07327f |
e41aff26-25cf-4bb6-b6c1-3f478a75f374 |
| GeneratedType (Object) | ExternalDataProcessorObject.<Имя> |
ExternalReportObject.<Имя> |
| GeneratedType (ТЧ) | DataProcessorTabularSection.<Имя>.<ТЧ> |
ReportTabularSection.<Имя>.<ТЧ> |
| GeneratedType (строка ТЧ) | DataProcessorTabularSectionRow.<Имя>.<ТЧ> |
ReportTabularSectionRow.<Имя>.<ТЧ> |
| Путь к форме | ExternalDataProcessor.<Имя>.Form.<Форма> |
ExternalReport.<Имя>.Form.<Форма> |
| Путь к макету | ExternalDataProcessor.<Имя>.Template.<Макет> |
ExternalReport.<Имя>.Template.<Макет> |
| Тип реквизита формы | cfg:ExternalDataProcessorObject.<Имя> |
cfg:ExternalReportObject.<Имя> |
2.3. Свойства (Properties)
Свойства EPF (Name, Synonym, Comment, DefaultForm, AuxiliaryForm) сохраняются. Добавляются 6 свойств, специфичных для отчёта:
| Свойство | Описание | Пример значения |
|---|---|---|
MainDataCompositionSchema |
Основная СКД отчёта. Полный путь к макету-СКД | ExternalReport.<Имя>.Template.ОсновнаяСхемаКомпоновкиДанных |
DefaultSettingsForm |
Форма настроек отчёта | ExternalReport.<Имя>.Form.ФормаНастроек |
AuxiliarySettingsForm |
Дополнительная форма настроек | (обычно пустой) |
DefaultVariantForm |
Форма вариантов отчёта | ExternalReport.<Имя>.Form.ФормаВарианта |
VariantsStorage |
Хранилище вариантов отчёта | SettingsStorage.ХранилищеВариантовОтчетов |
SettingsStorage |
Хранилище настроек | (обычно пустой) |
Порядок свойств фиксирован: Name → Synonym → Comment → DefaultForm → AuxiliaryForm → MainDataCompositionSchema → DefaultSettingsForm → AuxiliarySettingsForm → DefaultVariantForm → VariantsStorage → SettingsStorage.
Если значение отсутствует, элемент остаётся пустым (самозакрывающимся):
<DefaultForm/>
<MainDataCompositionSchema>ExternalReport.МойОтчёт.Template.ОсновнаяСхемаКомпоновкиДанных</MainDataCompositionSchema>
<VariantsStorage/>
3. Реквизиты объекта (Attribute)
В отличие от EPF (где реквизиты не документированы), внешний отчёт часто имеет реквизиты объекта. Они размещаются в <ChildObjects> корневого файла перед <TabularSection>, <Form> и <Template>:
<Attribute uuid="<UUID>">
<Properties>
<Name>Реквизит1</Name>
<Synonym/>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>10</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
Типы реквизитов
Типы реквизитов объекта аналогичны типам реквизитов форм:
| v8:Type | Описание | Квалификаторы |
|---|---|---|
xs:string |
Строка | v8:StringQualifiers: Length, AllowedLength |
xs:boolean |
Булево | — |
xs:decimal |
Число | v8:NumberQualifiers: Digits, FractionDigits, AllowedSign |
xs:dateTime |
Дата | v8:DateQualifiers: DateFractions |
cfg:CatalogRef.<Имя> |
Ссылка на справочник | — |
cfg:DocumentRef.<Имя> |
Ссылка на документ | — |
cfg:EnumRef.<Имя> |
Ссылка на перечисление | — |
Примечание: Ссылочные типы (
cfg:CatalogRef.*и т.д.) в контексте внешнего отчёта работают только при наличии в информационной базе конфигурации с соответствующими объектами.
Свойства реквизита объекта (полный перечень)
Порядок фиксирован:
| Свойство | Тип | Описание |
|---|---|---|
Name |
string | Имя реквизита |
Synonym |
LocalString | Синоним (отображаемое имя) |
Comment |
string | Комментарий |
Type |
TypeDescription | Тип данных (см. таблицу типов выше) |
PasswordMode |
boolean | Режим пароля (false) |
Format |
string | Формат вывода |
EditFormat |
string | Формат редактирования |
ToolTip |
LocalString | Подсказка |
MarkNegatives |
boolean | Выделять отрицательные (false) |
Mask |
string | Маска ввода |
MultiLine |
boolean | Многострочный (false) |
ExtendedEdit |
boolean | Расширенное редактирование (false) |
MinValue |
any | Минимальное значение (xsi:nil="true") |
MaxValue |
any | Максимальное значение (xsi:nil="true") |
FillChecking |
enum | Проверка заполнения (DontCheck) |
ChoiceFoldersAndItems |
enum | Выбор групп и элементов (Items) |
ChoiceParameterLinks |
list | Связи параметров выбора |
ChoiceParameters |
list | Параметры выбора |
QuickChoice |
enum | Быстрый выбор (Auto) |
CreateOnInput |
enum | Создание при вводе (Auto) |
ChoiceForm |
string | Форма выбора |
LinkByType |
ref | Связь по типу |
ChoiceHistoryOnInput |
enum | История выбора при вводе (Auto) |
4. Табличные части (TabularSection)
Структура полностью аналогична EPF, отличаются только имена GeneratedType:
<TabularSection uuid="<UUID>">
<InternalInfo>
<xr:GeneratedType name="ReportTabularSection.<ИмяОтчёта>.<ИмяТЧ>" category="TabularSection">
<xr:TypeId><UUID></xr:TypeId>
<xr:ValueId><UUID></xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="ReportTabularSectionRow.<ИмяОтчёта>.<ИмяТЧ>" category="TabularSectionRow">
<xr:TypeId><UUID></xr:TypeId>
<xr:ValueId><UUID></xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<Name><ИмяТЧ></Name>
<Synonym/>
<Comment/>
<ToolTip/>
<FillChecking>DontCheck</FillChecking>
</Properties>
<ChildObjects>
<Attribute uuid="<UUID>">
<Properties>
<!-- Те же свойства, что у реквизитов объекта, -->
<!-- плюс два дополнительных: -->
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<!-- ... остальные совпадают -->
</Properties>
</Attribute>
</ChildObjects>
</TabularSection>
Важно: Реквизиты табличной части имеют 2 дополнительных свойства по сравнению с реквизитами объекта:
FillFromFillingValue— заполнять из значения заполнения (false)FillValue— значение заполнения (xsi:nil="true"илиxsi:type="xs:string"и т.д.)
Эти свойства вставляются между MaxValue и FillChecking.
5. Порядок элементов в ChildObjects
Порядок дочерних объектов фиксирован:
<Attribute>— реквизиты объекта (0..N)<TabularSection>— табличные части (0..N)<Form>— формы (0..N)<Template>— макеты (0..N)
6. Формы отчёта
6.1. Метаданные формы (Forms/<Имя>.xml)
Формат метаданных формы полностью совпадает с EPF — см. спецификацию EPF, раздел 4.
6.2. Специфика Form.xml для отчётов
Формы отчёта имеют дополнительные свойства в <Form>, которых нет у форм обработки:
| Свойство | Описание | Допустимые значения |
|---|---|---|
ReportFormType |
Тип формы отчёта | Main, Settings, Variant |
ReportResult |
Имя реквизита-результата | Имя реквизита типа SpreadsheetDocument |
DetailsData |
Имя реквизита данных расшифровки | Имя строкового реквизита |
CustomSettingsFolder |
Группа пользовательских настроек | Имя элемента UsualGroup на форме |
Эти свойства размещаются в начале <Form>, после <CommandBarLocation> и до <AutoCommandBar>.
6.3. Основная форма отчёта (ReportFormType = Main)
Форма для отображения результата отчёта.
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" ... version="2.17">
<CommandBarLocation>None</CommandBarLocation>
<ReportResult>Результат</ReportResult>
<DetailsData>ДанныеРасшифровки</DetailsData>
<ReportFormType>Main</ReportFormType>
<CustomSettingsFolder>КомпоновщикНастроекПользовательскиеНастройки</CustomSettingsFolder>
<AutoCommandBar name="" id="-1">
<Autofill>false</Autofill>
</AutoCommandBar>
<ChildItems>
<CommandBar name="ОсновнаяКоманднаяПанель" id="1">
<Title>...</Title>
<CommandSource>Form</CommandSource>
<ExtendedTooltip name="ОсновнаяКоманднаяПанельРасширеннаяПодсказка" id="2"/>
</CommandBar>
<UsualGroup name="КомпоновщикНастроекПользовательскиеНастройки" id="3">
<Title>...</Title>
<VerticalStretch>false</VerticalStretch>
<Group>Vertical</Group>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="КомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка" id="4"/>
</UsualGroup>
<SpreadSheetDocumentField name="Результат" id="5">
<DataPath>Результат</DataPath>
<DefaultItem>true</DefaultItem>
<TitleLocation>None</TitleLocation>
<Width>100</Width>
<ContextMenu name="РезультатКонтекстноеМеню" id="6"/>
<ExtendedTooltip name="РезультатРасширеннаяПодсказка" id="7"/>
</SpreadSheetDocumentField>
</ChildItems>
<Attributes>
<Attribute name="Отчет" id="1">
<Type>
<v8:Type>cfg:ExternalReportObject.<ИмяОтчёта></v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
<Attribute name="Результат" id="2">
<Title>...</Title>
<Type>
<v8:Type xmlns:mxl="http://v8.1c.ru/8.2/data/spreadsheet">mxl:SpreadsheetDocument</v8:Type>
</Type>
</Attribute>
<Attribute name="ДанныеРасшифровки" id="3">
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
</Attribute>
</Attributes>
</Form>
Ключевые элементы основной формы отчёта:
| Элемент | Описание |
|---|---|
SpreadSheetDocumentField |
Поле табличного документа для вывода результата. Привязано к реквизиту типа mxl:SpreadsheetDocument |
Реквизит Отчет |
Основной реквизит (MainAttribute=true), тип cfg:ExternalReportObject.<Имя> |
Реквизит Результат |
Табличный документ. Тип mxl:SpreadsheetDocument (требует дополнительный namespace xmlns:mxl) |
Реквизит ДанныеРасшифровки |
Строка неограниченной длины для данных расшифровки |
Группа КомпоновщикНастроекПользовательскиеНастройки |
Контейнер для пользовательских настроек СКД |
6.4. Форма настроек (ReportFormType = Settings)
Форма настроек отчёта для пользователя.
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" ... version="2.17">
<CommandBarLocation>Bottom</CommandBarLocation>
<VerticalScroll>useIfNecessary</VerticalScroll>
<ReportFormType>Settings</ReportFormType>
<CustomSettingsFolder>КомпоновщикНастроекПользовательскиеНастройки</CustomSettingsFolder>
<AutoCommandBar name="" id="-1">
<HorizontalAlign>Right</HorizontalAlign>
</AutoCommandBar>
<ChildItems>
<UsualGroup name="КомпоновщикНастроекПользовательскиеНастройки" id="1">
<Title>...</Title>
<Group>Vertical</Group>
<Representation>None</Representation>
<ShowTitle>false</ShowTitle>
<ExtendedTooltip name="КомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка" id="2"/>
</UsualGroup>
</ChildItems>
<Attributes>
<Attribute name="Отчет" id="1">
<Type>
<v8:Type>cfg:ExternalReportObject.<ИмяОтчёта></v8:Type>
</Type>
<MainAttribute>true</MainAttribute>
</Attribute>
</Attributes>
</Form>
6.5. Форма варианта (ReportFormType = Variant)
Форма для настройки варианта отчёта (структуры, группировок, фильтров).
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" ... version="2.17">
<CommandBarLocation>Bottom</CommandBarLocation>
<CollapseItemsByImportanceVariant>DontUse</CollapseItemsByImportanceVariant>
<ReportFormType>Variant</ReportFormType>
<AutoCommandBar name="" id="-1">
<HorizontalAlign>Right</HorizontalAlign>
</AutoCommandBar>
<ChildItems>
<Table name="КомпоновщикНастроекНастройки" id="1">
<Representation>Tree</Representation>
<DataPath>Отчет.SettingsComposer.Settings</DataPath>
<!-- ... элементы управления деревом настроек -->
</Table>
<!-- Страницы настроек (параметры, поля, фильтры и т.д.) -->
</ChildItems>
<!-- ... -->
</Form>
Форма варианта обычно содержит сложную структуру с деревом настроек (Table с Representation=Tree и DataPath=Отчет.SettingsComposer.Settings) и множеством страниц для редактирования параметров, полей, фильтров, сортировки и условного оформления.
6.6. Элемент SpreadSheetDocumentField
Специфичный для отчётов элемент формы — поле табличного документа. Используется для отображения результата отчёта.
<SpreadSheetDocumentField name="Результат" id="5">
<DataPath>Результат</DataPath>
<DefaultItem>true</DefaultItem>
<TitleLocation>None</TitleLocation>
<Width>100</Width>
<ContextMenu name="РезультатКонтекстноеМеню" id="6"/>
<ExtendedTooltip name="РезультатРасширеннаяПодсказка" id="7"/>
</SpreadSheetDocumentField>
| Свойство | Описание |
|---|---|
DataPath |
Путь к реквизиту типа SpreadsheetDocument |
DefaultItem |
Элемент по умолчанию (true) |
TitleLocation |
Расположение заголовка (None) |
Width |
Ширина в символах |
7. Модуль объекта
7.1. Событие ПриКомпоновкеРезультата
Основное событие модуля объекта отчёта. Вызывается платформой при формировании результата. Позволяет перехватить стандартную обработку СКД.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// СтандартнаяОбработка = Ложь; // отключить стандартное формирование по СКД
// Собственная логика формирования отчёта
КонецПроцедуры
Параметры:
ДокументРезультат— табличный документ для вывода результатаДанныеРасшифровки— данные расшифровкиСтандартнаяОбработка— если установитьЛожь, платформа не будет сама формировать отчёт по СКД
7.2. Директива условной компиляции
В ERP-отчётах модуль объекта часто обёрнут в директиву условной компиляции:
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
// ... весь код модуля ...
#КонецЕсли
7.3. Типичные процедуры модуля объекта отчёта
| Процедура | Описание |
|---|---|
ПриКомпоновкеРезультата |
Событие формирования результата |
ИнициализироватьОтчет |
Инициализация отчёта (экспорт, для БСП) |
ОпределитьНастройкиФормы |
Определение настроек формы (экспорт, для БСП) |
ПередЗагрузкойНастроекВКомпоновщик |
Предобработка настроек (экспорт, для БСП) |
8. Макеты (Templates)
8.1. СКД-макет (DataCompositionSchema)
Основной макет отчёта. Обязателен, если указан MainDataCompositionSchema.
<!-- Метаданные: Templates/ОсновнаяСхемаКомпоновкиДанных.xml -->
<Template uuid="<UUID>">
<Properties>
<Name>ОсновнаяСхемаКомпоновкиДанных</Name>
<Synonym>...</Synonym>
<Comment/>
<TemplateType>DataCompositionSchema</TemplateType>
</Properties>
</Template>
Тело СКД: Templates/ОсновнаяСхемаКомпоновкиДанных/Ext/Template.xml — формат описан в спецификации СКД.
8.2. MXL-макеты печатных форм (SpreadsheetDocument)
Отчёты часто содержат MXL-макеты для вывода печатных форм.
<!-- Метаданные: Templates/ПФ_MXL_КарточкаУчета.xml -->
<Template uuid="<UUID>">
<Properties>
<Name>ПФ_MXL_КарточкаУчета</Name>
<Synonym>...</Synonym>
<Comment/>
<TemplateType>SpreadsheetDocument</TemplateType>
</Properties>
</Template>
Тело макета: Templates/ПФ_MXL_КарточкаУчета/Ext/Template.xml — формат MXL.
Конвенция именования MXL-макетов: ПФ_MXL_<НазваниеПечатнойФормы>.
9. Сравнение с отчётом конфигурации (Report)
| Аспект | ExternalReport (ERF) | Report (в конфигурации) |
|---|---|---|
| Корневой элемент | <ExternalReport> |
<Report> |
| ClassId | e41aff26-25cf-4bb6-b6c1-3f478a75f374 |
(нет ContainedObject) |
| GeneratedType (Object) | ExternalReportObject.<Имя> |
ReportObject.<Имя> |
| GeneratedType (Manager) | — | ReportManager.<Имя> |
| Тип реквизита формы | cfg:ExternalReportObject.<Имя> |
cfg:ReportObject.<Имя> |
| Дополнительные свойства | — | UseStandardCommands, IncludeHelpInContents, ExtendedPresentation, Explanation |
| Формы по умолчанию | Могут ссылаться на свои формы | Могут ссылаться на CommonForm.* |
| Хранение | Файл .erf |
В составе конфигурации |
10. Минимальный пример
Пустой отчёт (без СКД, форм, модулей)
<?xml version="1.0" encoding="UTF-8"?>
<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">
<ExternalReport uuid="b38bc179-9b8a-4eb3-9422-96c6eded1ac3">
<InternalInfo>
<xr:ContainedObject>
<xr:ClassId>e41aff26-25cf-4bb6-b6c1-3f478a75f374</xr:ClassId>
<xr:ObjectId>38f084a4-47ce-4e67-ab4b-ac6323b9da08</xr:ObjectId>
</xr:ContainedObject>
<xr:GeneratedType name="ExternalReportObject.МойОтчёт" category="Object">
<xr:TypeId>1fd37c7e-ade2-47ac-8dae-3fafeec96943</xr:TypeId>
<xr:ValueId>b85e1756-f044-4907-b4bd-75a57649c486</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/>
<AuxiliaryForm/>
<MainDataCompositionSchema/>
<DefaultSettingsForm/>
<AuxiliarySettingsForm/>
<DefaultVariantForm/>
<VariantsStorage/>
<SettingsStorage/>
</Properties>
<ChildObjects/>
</ExternalReport>
</MetaDataObject>
Отчёт с СКД
Добавляется ссылка на СКД в MainDataCompositionSchema и макет-СКД в ChildObjects:
<Properties>
...
<MainDataCompositionSchema>ExternalReport.МойОтчёт.Template.ОсновнаяСхемаКомпоновкиДанных</MainDataCompositionSchema>
...
</Properties>
<ChildObjects>
<Template>ОсновнаяСхемаКомпоновкиДанных</Template>
</ChildObjects>
Плюс файлы:
Templates/ОсновнаяСхемаКомпоновкиДанных.xml(метаданные,TemplateType=DataCompositionSchema)Templates/ОсновнаяСхемаКомпоновкиДанных/Ext/Template.xml(тело СКД)
11. Чеклист для создания внешнего отчёта
- Сгенерировать UUID для каждого объекта (отчёт, реквизиты, ТЧ, формы, макеты)
- Создать структуру каталогов (раздел 1)
- Создать корневой XML (раздел 2) с:
ClassId = e41aff26-25cf-4bb6-b6c1-3f478a75f374GeneratedType name="ExternalReportObject.<Имя>"- Корректными путями в
MainDataCompositionSchema,DefaultFormи др. - Правильным порядком элементов в
ChildObjects
- Создать СКД-макет (раздел 8.1):
- Метаданные с
TemplateType=DataCompositionSchema - Тело СКД по спецификации СКД
- Метаданные с
- При необходимости создать формы (раздел 6):
- Указать
ReportFormType(Main/Settings/Variant) - Основная форма:
ReportResult,DetailsData,SpreadSheetDocumentField - Основной реквизит:
cfg:ExternalReportObject.<Имя>
- Указать
- При необходимости создать
ObjectModule.bsl(раздел 7) - При необходимости создать MXL-макеты печатных форм (раздел 8.2)
- Проверить:
- Все пути используют префикс
ExternalReport.<Имя>(неExternalDataProcessor) - Тип основного реквизита формы:
cfg:ExternalReportObject.<Имя> MainDataCompositionSchemaсоответствует реальному макету вChildObjects- Порядок в
ChildObjects: Attribute → TabularSection → Form → Template - Все UUID уникальны
- Все пути используют префикс