Top.Mail.Ru
Меню
Каталог Программы 1С Опыт и отзывы Услуги Компания Статьи Контакты

Формат файла сообщения обмена данными

Основатель и генеральный директор компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, Генеральный директор MoscowSoft  31.03.2018 Актуальность проверена: 27.04.2025   11 мин.
Содержание

В документации БСП релиза 3.1.11 есть Приложение 1. Оно называется «Формат файла сообщения обмена данными». Для знакомства с этим материалом на портале 1С: ИТС пользователям потребуется регистрация. Возможно, не для каждого человека это удобно, хотя в документе содержится полезная для работы информация.

Являясь официальным партнером со статусом «1С: Франчайзи», команда MoscowSoft бесплатно знакомит посетителей сайта с важными документами фирмы . Попутно разъясняя суть сложных терминов и определений. Демонстрируя конкретные примеры практического применения.

Приложение 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"?>

Далее приводится описание узлов файла сообщения обмена:

  • ФайлОбмена
    • ДанныеПоОбмену
    • Объект
      • Ссылка
      • Свойство
      • ЗначениеПараметра
      • ТабличнаяЧасть
      • НаборЗаписей
    • НаборЗаписейРегистра
      • Отбор
      • СтрокиНабораЗаписей
    • ИнформацияОРегистрацииОбъекта
    • КорректировкаИнформацииОРегистрацииОбъекта
    • УдалениеОбъекта
    • ЗначениеПараметра
    • АлгоритмПослеЗагрузкиПараметров
    • ПравилаОбмена
      • ПравилаКонвертацииОбъектов
      • Параметры
      • Алгоритмы
      • Запросы

Файл Обмена

Узел ФайлОбмена (обязательный). Использование: однократно.

Описание: 

Корневой узел сообщения обмена. Сообщение обмена должно начинаться с этого узла. Содержит дочерние узлы, которые условно подразделяются на узлы заголовка сообщения, узлы данных сопоставления и узлы с данными сообщения.

Узлы заголовка сообщения содержат вспомогательную информацию о данных сообщения и включаются однократно в файл.

Узлы с данными сопоставления содержат данные о сопоставлении объектов и включаются многократно в файл.

Узлы с данными сообщения содержат сами данные и включаются многократно в файл.

Последовательность расположения дочерних узлов регламентирована:

  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</Значение>    </Свойство>  </Объект>

Ссылка

Узел Ссылка (необязательный). Использование: однократно; в самом начале родительского узла Объект.

Описание: 

Содержит значения свойств и параметров для идентификации (поиска) объекта загрузки в базе-приемнике. Узел может содержать служебные свойства.

Для элементов иерархических справочников свойство ЭтоГруппа должно находиться в узле Ссылка.

Свойства, расположенные в этом узле принято называть свойствами поиска.

Атрибуты: 

Нпп (необязательный) – Число. Номер выгружаемой ссылки (объекта) в файле в порядке выгрузки. Используется при отладке процесса обмена и для кэширования выгружаемых данных. Пример использования атрибута для кэширования выгружаемых данных приведен в разделе описания узла Нпп.

РегистрироватьОбъектН

На этом мы с Вами не прощаемся. Пользователи, не сумевшие найти ответы на все вопросы самостоятельно, всегда могут рассчитывать на помощь наших экспертов. Для этого достаточно нажать на команду «Задать вопрос».

MoscowSoft логотип

Нужна помощь?

Если не получается разобраться с вопросом самостоятельно, обратитесь к нам. Получите бесплатную консультацию эксперта!

Основатель и генеральный директор компании MoscowSoft, Сорокин Сергей
Сорокин Сергей, Генеральный директор MoscowSoft

Возврат к списку