В документации БСП релиза 3.1.11 есть Приложение 1. Оно называется «Формат файла сообщения обмена данными». Для знакомства с этим материалом на портале 1С: ИТС пользователям потребуется регистрация. Возможно, не для каждого человека это удобно, хотя в документе содержится полезная для работы информация.
Являясь официальным партнером со статусом «1С: Франчайзи», команда MoscowSoft бесплатно знакомит посетителей сайта с важными документами фирмы 1С. Попутно разъясняя суть сложных терминов и определений. Демонстрируя конкретные примеры практического применения.
Приложение 1. Формат файла сообщения обмена данными
Простая формулировка понятия «формат файла сообщения обмена данными» подразумевает, что это некий файл. Если быть точнее, XML- файл. Его наполнение — структурированные данные, которые выгрузили из ИБ Источника с целью последующей загрузки в ИБ Приемник.
В механизмах обмена данными на платформе «1С: Предприятие» такой формат задействован в подсистеме Обмен данными. Она, в свою очередь, является составной частью конфигурации БСП (Библиотека стандартных подсистем) в ред. 1.1. Используется версия формата 3.1.
Сообщение обмена содержит не только структурированные данные, но также Правила загрузки. По ним, собственно говоря, их загружают в информационную базу приемника.
Важное уточнение: для XML- файла используется кодировка UTF-8.
Термины
Сообщение обмена — как уже отмечалось выше, является 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"?>
Далее приводится описание узлов файла сообщения обмена:
- ФайлОбмена
- ДанныеПоОбмену
- Объект
- Ссылка
- Свойство
- ЗначениеПараметра
- ТабличнаяЧасть
- НаборЗаписей
- НаборЗаписейРегистра
- Отбор
- СтрокиНабораЗаписей
- ИнформацияОРегистрацииОбъекта
- КорректировкаИнформацииОРегистрацииОбъекта
- УдалениеОбъекта
- ЗначениеПараметра
- АлгоритмПослеЗагрузкиПараметров
- ПравилаОбмена
- ПравилаКонвертацииОбъектов
- Параметры
- Алгоритмы
- Запросы
Файл Обмена
Узел ФайлОбмена (обязательный). Использование: однократно.
Описание:
Корневой узел сообщения обмена. Сообщение обмена должно начинаться с этого узла. Содержит дочерние узлы, которые условно подразделяются на узлы заголовка сообщения, узлы данных сопоставления и узлы с данными сообщения.
Узлы заголовка сообщения содержат вспомогательную информацию о данных сообщения и включаются однократно в файл.
Узлы с данными сопоставления содержат данные о сопоставлении объектов и включаются многократно в файл.
Узлы с данными сообщения содержат сами данные и включаются многократно в файл.
Последовательность расположения дочерних узлов регламентирована:
- Заголовок (обязательный)
- Данные сопоставления (необязательный)
- Данные (необязательный).
Последовательность узлов заголовка регламентировано:
- ПравилаОбмена
- ДанныеПоОбмену
- Алгоритм
- ЗначениеПараметра
- АлгоритмПослеЗагрузкиПараметров
Атрибуты:
ВерсияФормата (обязательный) – Строка. Версия формата, в котором формируется сообщение обмена.
ДатаВыгрузки (необязательный) – Дата. (Фиксирует, когда сформировано сообщение обмена).
ИмяКонфигурацииИсточника (необязательный) – Строка. Наименование конфигурации базы-источника.
ИмяКонфигурацииПриемника (необязательный) – Строка. Наименование конфигурации базы-приемника.
ИдПравилКонвертации (необязательный) – УникальныйИдентификатор. Уникальный идентификатор правил конвертации в конфигурации "Конвертация данных". Используется при обновлении правил обмена.
Комментарий, который создавать необязательно — Строка. Произвольный комментарий к выгружаемым данным.
Формат:
<?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</Значение> </Свойство> </Объект>
Ссылка
Узел Ссылка (необязательный). Использование: однократно; в самом начале родительского узла Объект.
Описание:
Содержит значения свойств и параметров для идентификации (поиска) объекта загрузки в базе-приемнике. Узел может содержать служебные свойства.
Для элементов иерархических справочников свойство ЭтоГруппа должно находиться в узле Ссылка.
Свойства, расположенные в этом узле принято называть свойствами поиска.
Атрибуты:
Нпп (необязательный) – Число. Номер выгружаемой ссылки (объекта) в файле в порядке выгрузки. Используется при отладке процесса обмена и для кэширования выгружаемых данных. Пример использования атрибута для кэширования выгружаемых данных приведен в разделе описания узла Нпп.
РегистрироватьОбъектН
На этом мы с Вами не прощаемся. Пользователи, не сумевшие найти ответы на все вопросы самостоятельно, всегда могут рассчитывать на помощь наших экспертов. Для этого достаточно нажать на команду «Задать вопрос».