Приложение 1. Формат файла сообщения обмена данными
Данный документ описывает формат файла сообщения обмена данными, который используется подсистемой «Обмен данными» конфигурации «Библиотека стандартных подсистем, редакция. 1.1». Версия формата: 3.1.
С помощью сообщений обмена выполняется обмен данными между информационными базами различных конфигураций, а также со сторонними базами данных. Возможна передача данных как ссылочных типов, так и наборов записей регистров. Помимо самих данных, сообщение обмена содержит в себе также правила для загрузки этих данных.
Сообщение обмена представляет из себя xml-файл в кодировке UTF-8.
Термины
- Сообщение обмена – xml-файл, в котором содержаться структурированные в соответствии с форматом данные, выгруженные из информационной базы-источника для загрузки в базу-приемник.
- База-источник – информационная база данных, которая служит источником для выгрузки данных в сообщение обмена.
- База-приемник – информационная база данных, в которую выполняется загрузка данных сообщения обмена.
- Узел-отправитель – предопределенный элемент плана обмена базы-источника, от имени которого выполняется формирование сообщения обмена.
- Узел-получатель – элемент плана обмена базы-приемника, для которого предназначено сообщение обмена.
- Интерактивная загрузка – процесс загрузки данных с использованием сервиса интерактивной загрузки подсистемы "Обмен данными". При интерактивной загрузке данных можно выполнять предварительный просмотр загружаемых данных и выполнять сопоставление объектов информационных баз.
- Коллизия изменений – событие, которое возникает при загрузке данных, заключающееся в том, что один и тот же объект изменен в базе-источнике и базе-приемнике. Для автоматического решения коллизий изменений в правилах обмена настраиваются приоритеты объектов при загрузке.
- Фильтр ограничения миграции данных - вспомогательный сервис подсистемы «Обмен данными», который позволяет настраивать ограничения миграции данных между парами обменивающихся конфигураций.
- Информация сопоставления объектов – информация сопоставления объектов базы-источника объектам базы-приемника. Эта информация используется для задания соответствия одного и того же с прикладной точки зрения объекта, разным объектам ссылочного типа. Если информацию сопоставления объектов не использовать, то это приведет к появлению дублей объектов в обменивающихся базах.
- Обработчик события – произвольный текст на встроенном языке 1С:Предприятия, который выполняется в процессе обмена данными. Подробнее об обработчиках событий см. справку к конфигурации "Конвертация данных", меню "Справка" – "Информация об обработчиках".
Аббревиатуры
- ПКО – правило конвертации объектов
- ПКС – правило конвертации свойств объекта
- ПКЗ – правило конвертации значений объекта
- ПКГС – правило конвертации группы свойств
Примечание: Подробнее см. справку к конфигурации "Конвертация данных", меню "Справка" – "Быстрое освоение".
Типы данных
Для чтения значений, которые хранятся в файле сообщения обмена, используется метод глобального контекста платформы 1С:Предприятие XMLЗначение(), для записи – применяетсяXMLСтрока(). Представление значения в файле определяется типом самого значения:
- Строка – представляется в виде строки
- Булево – значение Истина имеет представление "true", а значение Ложь - "false"
- Дата – в виде представления типа dateTime схемы XML (см. http://www.w3.org/TR/xmlschema-2/#dateTime)
- Число – в виде представления типа decimal схемы XML (см. http://www.w3.org/TR/xmlschema-2/#decimal)
- Значение системного перечисления – хранится строковое представление имени значения перечисления
- УникальныйИдентификатор – хранится строковое представление уникального идентификатора
- Ссылки – в виде строкового представления уникального идентификатора
- ХранилищеЗначения и ДвоичныеДанные – в виде строки в формате base64
Значения по умолчанию
Если атрибут узла является необязательным, то его можно не указывать. В случае, если атрибут узла не указан, то используется его значение по умолчанию. Значение по умолчанию зависит от типа значения атрибута, если не указано иное:
- Строка – пустая строка
- Булево – Ложь
- Дата – пустая дата
- Число – ноль
Заголовок файла
Заголовок файла сообщения обмена должен содержать описание кодировки файла в формате UTF-8:
<?xml version="1.0" encoding="UTF-8"?>
Далее приводится описание узлов файла сообщения обмена:
- ФайлОбмена
- ДанныеПоОбмену
- Объект
- Ссылка
- Свойство
- ЗначениеПараметра
- ТабличнаяЧасть
- НаборЗаписей
- НаборЗаписейРегистра
- Отбор
- СтрокиНабораЗаписей
- ИнформацияОРегистрацииОбъекта
- КорректировкаИнформацииОРегистрацииОбъекта
- УдалениеОбъекта
- ЗначениеПараметра
- АлгоритмПослеЗагрузкиПараметров
- ПравилаОбмена
- ПравилаКонвертацииОбъектов
- Параметры
- Алгоритмы
- Запросы
Файл Обмена
Узел ФайлОбмена (обязательный). Использование: однократно.
Описание:
Корневой узел сообщения обмена. Сообщение обмена должно начинаться с этого узла. Содержит дочерние узлы, которые условно подразделяются на узлы заголовка сообщения, узлы данных сопоставления и узлы с данными сообщения.
Узлы заголовка сообщения содержат вспомогательную информацию о данных сообщения и включаются однократно в файл. Узлы с данными сопоставления содержат данные о сопоставлении объектов и включаются многократно в файл. Узлы с данными сообщения содержат сами данные и включаются многократно в файл.
Последовательность расположения дочерних узлов регламентирована:
1) Заголовок (обязательный)
2) Данные сопоставления (необязательный)
3) Данные (необязательный).
Последовательность узлов заголовка регламентировано:
1) ПравилаОбмена
2) ДанныеПоОбмену
3) Алгоритм
4) ЗначениеПараметра
5) АлгоритмПослеЗагрузкиПараметров
Атрибуты:
ВерсияФормата (обязательный) – Строка. Версия формата сообщения обмена.
ДатаВыгрузки (необязательный) – Дата. Дата формирования сообщения обмена.
ИмяКонфигурацииИсточника (необязательный) – Строка. Наименование конфигурации базы-источника.
ИмяКонфигурацииПриемника (необязательный) – Строка. Наименование конфигурации базы-приемника.
ИдПравилКонвертации (необязательный) – УникальныйИдентификатор. Уникальный идентификатор правил конвертации в конфигурации "Конвертация данных". Используется при обновлении правил обмена.
Комментарий (необязательный) – Строка. Произвольный комментарий к выгружаемым данным.
Формат:
<?xml version="1.0" encoding="UTF-8"?>
<ФайлОбмена>
{ ЗАГОЛОВОК
<ПравилаОбмена>…</ПравилаОбмена>
<ДанныеПоОбмену>…</ДанныеПоОбмену>
<ЗначениеПараметра>…</ЗначениеПараметра>
<АлгоритмПослеЗагрузкиПараметров>…</АлгоритмПослеЗагрузкиПараметров>
ЗАГОЛОВОК }
{ДАННЫЕ СОПОСТАВЛЕНИЯ
<ИнформацияОРегистрацииОбъекта>…</ИнформацияОРегистрацииОбъекта>
<КорректировкаИнформацииОРегистрацииОбъекта>…</КорректировкаИнформацииОРегистрацииОбъекта>
ДАННЫЕ СОПОСТАВЛЕНИЯ}
{ДАННЫЕ
<Объект>…</Объект>
<НаборЗаписейРегистра>…</НаборЗаписейРегистра>
<УдалениеОбъекта>…</УдалениеОбъекта>
ДАННЫЕ }
</ФайлОбмена>
Пример:
<?xml version="1.0" encoding="UTF-8"?> <ФайлОбмена ВерсияФормата="3.0" ДатаВыгрузки="2010-07-30T17:09:02" ИмяКонфигурацииИсточника="УправлениеТорговлей" ИмяКонфигурацииПриемника="БухгалтерияПредприятия" ИдПравилКонвертации="24451442-943d-4182-bc1b-42e04d1fdf33" Комментарий=""> </ФайлОбмена>
ДанныеПоОбмену
Узел ДанныеПоОбмену (обязательный). Использование: однократно.
Описание:
Содержит информацию о плане обмена для загрузки данных и информацию механизма квитирования сообщений обмена.
Атрибуты:
ПланОбмена (обязательный) – Строка. Имя плана обмена, как объекта метаданных конфигурации, для которого предназначено сообщение обмена.
Кому (обязательный) – Строка. Код узла плана обмена базы-приемника, для которого предназначено сообщение.
ОтКого (обязательный) – Строка. Код предопределенного узла плана обмена базы-источника, от имени которого отправлено сообщение.
НомерИсходящегоСообщения (обязательный) – Число. Номер исходящего сообщения узла-отправителя.
НомерВходящегоСообщения (обязательный) – Число. Номер последнего успешно-принятого сообщения от узла-получателя в узле-отправителе.
УдалитьРегистрациюИзменений (обязательный) – Булево. Признак необходимости удаления регистрации изменений на узле-получателе при получении сообщения.
Формат:
не содержит дочерних узлов.
Пример:
<ДанныеПоОбмену ПланОбмена="ОбменУправлениеТорговлейБухгалтерияПредприятия" Кому="001" ОтКого="000" НомерИсходящегоСообщения="32" НомерВходящегоСообщения="31" УдалитьРегистрациюИзменений="true"/>
Объект
Узел Объект (необязательный). Использование: многократно.
Описание:
Узел содержит один объект загрузки. В качестве объекта загрузки может выступать любой объект ссылочного типа: документ, элемент справочника и пр. Узел содержит дочерние узлы, в которых содержатся значения свойств, значения параметров, табличные части и таблицы движений (для документов) объекта загрузки.
Узел формируется на основании правил описанных в ПКО.
Атрибуты:
Тип (обязательный) – Строка. Строковое представление типа объекта. Используется для получения типа объекта функцией Тип().
ИмяПравила (обязательный) – Строка. Имя правила конвертации объекта. Используется для идентификации загружаемого объекта с правилом конвертации (см. узел Код для узлаПравило).
Нпп (необязательный) – Число. Номер выгружаемого объекта в файле в порядке выгрузки. Используется при отладке процесса обмена и для кэширования выгружаемых данных. Пример использования атрибута для кэширования выгружаемых данных приведен в разделе описания узла Нпп.
Источник (необязательный) – Строка. Произвольное описание объекта для вывода в протокол обмена данными.
ПриоритетОбъектаОбмена (необязательный) – Строка. Приоритет объекта загрузки в случае возникновения коллизии изменений. Возможные значения: "Выше", "Ниже", "Совпадает". Значение по умолчанию – "Выше". Соответствует значению параметра ПКО "Приоритет объекта загрузки".
РежимЗаписи (необязательный) – Строка. Режим записи документа. Актуален только для типа объекта Документ. Возможные значения: "Запись" (документ будет записан), "Проведение" (документ будет записан в режиме проведения), "ОтменаПроведения" (документ будет записан в режиме отмены проведения). Значение по умолчанию – "Запись". Соответствует значению параметра РежимЗаписи обработчика события ПКО "Перед выгрузкой".
РежимПроведения (необязательный) – Строка. Режим проведения документа. Актуален только для типа объекта Документ. Возможные значения: "Неоперативный", "Оперативный". Значение по умолчанию – "Неоперативный". Соответствует значению параметра РежимПроведения обработчика события ПКО "Перед выгрузкой".
Формат:
<Ссылка>…</Ссылка>
<Свойство>…</Свойство>
<ЗначениеПараметра>…</ЗначениеПараметра>
<ТабличнаяЧасть>…</ТабличнаяЧасть>
<НаборЗаписей>…</НаборЗаписей>
</Объект>
Пример:
<Объект Нпп="24" Тип="СправочникСсылка.Номенклатура" ИмяПравила="Номенклатура"> <Ссылка> <Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="СправочникСсылка.Номенклатура" ТипПриемника="СправочникСсылка.Номенклатура"> <Значение>bd72d927-55bc-11d9-848a-00112f43529a</Значение> </Свойство> <Свойство Имя="ЭтоГруппа" Тип="Булево"> <Значение>false</Значение> </Свойство> </Ссылка> <Свойство Имя="Код" Тип="Строка"> <Значение>00000000057</Значение> </Свойство> <Свойство Имя="Наименование" Тип="Строка"> <Значение>Комбайн кухонный BINATONE FP 67</Значение> </Свойство> <Свойство Имя="Родитель" Тип="СправочникСсылка.Номенклатура"> <Ссылка> <Свойство Имя="{УникальныйИдентификатор}" Тип="Строка" ТипИсточника="СправочникСсылка.Номенклатура" ТипПриемника="СправочникСсылка.Номенклатура"> <Значение>bd72d925-55bc-11d9-848a-00112f43529a</Значение> </Свойство> <Свойство Имя="ЭтоГруппа" Тип="Булево"> <Значение>true</Значение> </Свойство> </Ссылка> </Свойство> <Свойство Имя="НаименованиеПолное" Тип="Строка"> <Значение>Комбайн кухонный BINATONE FP 67</Значение> </Свойство> <Свойство Имя="СтавкаНДС" Тип="ПеречислениеСсылка.СтавкиНДС"> <Значение>НДС18</Значение> </Свойство> <Свойство Имя="Услуга" Тип="Булево"> <Значение>false</Значение> </Свойство> </Объект>
Ссылка
Узел Ссылка (необязательный). Использование: однократно; в самом начале родительского узла Объект.
Описание:
Содержит значения свойств и параметров для идентификации (поиска) объекта загрузки в базе-приемнике. Узел может содержать служебные свойства.
Для элементов иерархических справочников свойство ЭтоГруппа должно находиться в узле Ссылка.
Свойства, расположенные в этом узле принято называть свойствами поиска.
Атрибуты:
Нпп (необязательный) – Число. Номер выгружаемой ссылки (объекта) в файле в порядке выгрузки. Используется при отладке процесса обмена и для кэширования выгружаемых данных. Пример использования атрибута для кэширования выгружаемых данных приведен в разделе описания узла Нпп.
РегистрироватьОбъектН