Наша публикация рассматривает вариант обмена с использованием универсального формата EnterpriseData. С технологией можно ознакомиться в «Библиотеке стандартных подсистем». Версия 2.3.1.62 от 2016 года. Сегодня используется последняя редакция БСП 2.3, релиз 2.3.6.17.
В Библиотеку стандартных подсистем включено четыре способа обмена между разными ИБ:
- Через РИБ (распределенные информационные базы).
- Универсальный формат.
- Через создание Правил обмена. Для этого задействуется программное решение «Конвертация данных, ред. 2.1».
- Обмен данными, когда Правила обмена не создаются.
Наша публикация рассматривает вариант обмена с использованием универсального формата EnterpriseData. С технологией можно ознакомиться в «Библиотеке стандартных подсистем». Версия 2.3.1.62 от 2016 года. Сегодня используется последняя редакция БСП 2.3, релиз 2.3.6.17.
Что именно предлагает 1С: Библиотека стандартных подсистем, редакция 2. Общая информация о конфигурации. Сервис публикации ошибок. Последние релизы БСП с датами выхода.

В текстовом файле под названием «Версии библиотек» дается описание версии, на базе которой разработано то или иное приложение.
Общие представления о формате EnterpriseData
Универсальный формат EnterpriseData создан компанией-разработчиком для синхронизации программ 1С: Предприятие. Он помогает предпринимателям, крупному бизнесу использовать всю широту возможностей обмена информационных баз для поддержания актуальности в документообороте, отчетности. Как и способствует увеличению скорости производственных процессов.
В формате, базирующемся на файлах XML, содержится описание структуры данных документов, элементов справочников. Обмениваться актуальной информацией в формате EnterpriseData могут ключевые типовые конфигурации платформы 1С:
- Управление торговлей, ред. 11.
- 1С: ERP Управление предприятием 2.
- 1С: УНФ.
- 1С: Зарплата и Управление персоналом, ред.3.
- Бухгалтерия предприятия, редакция 3.0.
EnterpriseData используется в конкретной линейке программных продуктов «Управление автотранспортом» для различных конфигураций. Этот формат удобно использовать для корректировки существующих обменов данными, когда следует решить небольшой объем задач.
Рассматриваемый формат обладает неоспоримыми преимуществами:
- не создает затруднений в освоении пользователям любого уровня подготовки;
- не имеет ограничений по требованиям к структуре программных продуктов, участвующих в обмене данными.
Хотя изначально он создавался для удобной интеграции программ 1С в логике платформы, его можно использовать в обмене информацией с любыми системами, поддерживающими структуру данного формата. Такая технология способствует стандартизации бизнес-объектов, которые применяются в системе бухгалтерского, налогового и других видов учета.
Какие бывают версии формата
EnterpriseData (ED) имеет четко заданную структуру данных, которые выгружаются в файл обмена. Текстовый вид ED — это XML схема. В дереве конфигурации описание надо искать в ветке XDTO пакеты.
Перед бизнесом постоянно возникают новые задачи. Чтобы их оперативно решать, разработчики 1С регулярно меняют описание универсального формата ED. Различные XDTO пакеты — это разные версии EnterpriseData. Каждой версии соответствуют свои цифры.

Как мы видим на рисунке 2, после названия EnterpriseData сразу располагаются значимые цифры (или Major версия). Их меняют, когда формат проходит значительную реструктуризацию описания. Если они изменяются, то с предыдущими версиями не будет совместимости.
Последняя цифра (Minor версия) изменяется, когда производятся несущественные доработки:
- исправляются ошибки;
- добавляются дополнительные, но не обязательные свойства.
Совместимость с предыдущими версиями при последнем способе не утрачивается.
Для типовых программных решений фирма-разработчик дает годовую гарантированную поддержку версии формата с момента ее выхода в публичный доступ.
В версии ED абсолютно ясно даются названия типов объектов. Вначале стоит префикс: Документ или Справочник. Дальше идет элемент: Акт Выполненных Работ (в первом случае) либо Контрагенты (во втором случае).
Важное замечание: пакет формата данных ED используют в тандеме с пакетом Exchange Message, когда создают Правила конвертации. В последнем пакете среди Типов объектов есть Additionalinfo. Он позволяет адаптировать, настраивать Правила обмена. При этом изменения данных формата ED не требуется в XDTO пакетах.

Как происходит обмен данными в формате ED
Существенное отличие рассматриваемого в публикации обмена от универсального в формате XML по правилам КД 2.0 заключается в следующих фактах:
- В случае с ED обменивается данными конфигурация с универсальным форматом, а не различные конфигурации друг с другом.
- Технология XDTO – пакетов используется для реализации обмена в формате EnterpriseData.
Путь, по которому проходит интеграция:
- Внешнее приложение передает файл в конфигурацию.
- Конфигурация обрабатывает полученный файл, формируя XML-файл.
- Новый XML-файл поступает в качестве ответа в стороннее приложение.
Таков алгоритм двусторонней синхронизации. Для такого обмена нужен канал – файловый либо FTP-каталог.
Если в двусторонней миграции нет нужды (к примеру, для передачи информации о продажах online-магазина в 1С: БП), тогда используют веб-сервис. В этом случае файл передается как параметр веб-методов.
Суть процесса такова:
- Когда выгружается ИБ из базы-источника, объекты преобразуются в типы, описанные в EnterpriseData.
- Во время загрузки данные в формате ED преобразуются к типам объектов базы-приёмника.
Алгоритм выгрузки-загрузки может нуждаться в корректировке, только если у одного из участников обмена перестала поддерживаться версия формата ED, используемая при обмене. Как напоминание: у версий формата ED ограниченный срок поддержки (разработчик гарантирует 12 месяцев со времени появления в доступе).
Когда синхронизация проходит впервые, из базы конфигурации выгружаются все объекты в формате ED в XML-файл. Приложение обрабатывает его. Во время следующей синхронизации в секции <Confirmation> появится номер сообщения-квитанции. Таким способом конфигурация уведомит об успешной обработке сторонним приложением полученной информации.
Внутри XML-файла от внешнего приложения может вкладываться не только квитанция, но также данные для синхронизации (посмотреть секцию <Body>).

Программа 1С, получив квитанцию, зафиксирует все изменения в виде успешно синхронизированных объектов. Когда в следующий раз включится очередной обмен, во внешнее приложение будут передаваться только несинхронизированные ранее (новые, измененные или удаленные) объекты.
На следующем рисунке показан обратный процесс трансформации. Приложением заполняется <Confirmation>. В <Body> размещаются объекты в ED, которые подлежат синхронизации.


Менеджер обмена через универсальный формат
Как вы понимаете, при употреблении слова «менеджер» речь не идет о каком-то человеке, исполняющем должностные обязанности по этой уважаемой профессии. Мы говорим об общем модуле МенеджерОбменаЧерезУниверсальныйФормат. Это наименование, принятое в 1С стандарте. Название места расположения правил конвертации и не только. Ведь, как и в старой технологии «Конвертация данных» редакции 2.0/2.1, правила по-прежнему необходимы. Без них не обойдется описание процесса выгрузки данных из ИБ в формат обмена и загрузки в обратную сторону.

На рисунке, отображающем настройку правил обмена в Конфигураторе – Управление торговлей, ред.11, в поле «Конфигурация» в левой колонке выделяется строка «МенеджерОбменаЧерезУниверсальныйФормат». В правой колонке раскрывается содержание общего модуля для конвертации УП 2.2.3 в конкретную дату:
- ПроцедурыКонвертации;
- ПОД;
- ПКО;
- ПКПД;
- Алгоритмы;
- Параметры.
Заканчивается перечень процедурами общего назначения для правил и алгоритмов.
У хранения правил в общем модуле каждой конфигурации, задействованной в процессе обмена, есть как преимущества, так и недостатки.
Для современных типовых программ 1С: Предприятие разработчики фирмы уже предусмотрели механизмы обмена. Конвертация данных 3.0 позволяет в автоматическом режиме отлаживать выгрузку и загрузку.
Иногда небольшие изменения в правила и объекты удобнее вносить вручную, не используя КД 3.0. Ручной корректировкой модуля менеджера обмена создаются незначительные доработки.
На тот момент, когда внесенных изменений становится много (модуль — это десятки тысяч строк), перед программистом возникает трудно разрешимая задача по их отслеживанию, установке обновлений и дальнейшей модификации правил.
К недостаткам можно отнести необходимость создания отдельных правил конвертации для этапов выгрузки и загрузки данных, поскольку они не связаны между собой.
Ограничение в сроке поддержки версий тоже не улучшают работу с этим форматом. Так же, как и необходимость серьезной донастройки передачи нестандартных данных между конфигурациями и системами.
Описание разделов общего модуля
Итак, в процессе обмена с помощью Enterprise Data участвуют база-источник и база-приёмник. В каждой из них содержится только код для преобразования объектов из ИБ в универсальный формат ED и назад, в обратную сторону. При изменении конфигурации базы меняется код только в ней. Он хранится в общем модуле – менеджере обмена. Там же содержатся все обработчики событий, механизм преобразования объектов, параметры. Описав один раз логику преобразования объектов, при помощи параметров производят обмен с разными базами. Большой плюс в том, что отдельные правила для каждой пары баз, когда происходит обмен в рамках от трёх и выше баз, создавать не требуется.
Ниже предлагаем краткое описание разделов модуля с поставленными перед ними задачами. Как видно на рисунке со структурой модуля, сверху указывается название Конвертации и дата, время. Эта информация из Комментария поможет идентифицировать модуль в «Конвертации данных 3.0» при загрузке обработчиков.
- В разделеПроцедуры Конвертации представлены некие манипуляции. Их необходимо произвести на трех важных ступенях обмена: перед началом, после завершения, а если заполнение отложено, то перед ним.
- ПОД — правила обработки данных со всеми необходимыми процедурами, описанием функционала. В экспортной процедуре ЗаполнитьПравилаОбработкиДанных содержатся команды для вызова других процедур. Их добавляют в таблицу правил обработки определенного объекта:
- ДобавитьПОД_<ИмяПОД> — число процедур равняется числу ПОД, созданных для этой конвертации.
- ПОД_<ИмяПОД>_ПриОбработке с текстом обработчика для ПОД с обозначенным именем.
- ПОД_<ИмяПОД>_ВыборкаДанных с текстом обработчика ПриВыгрузке. Здесь могут быть ссылки на объекты информационной базы, структура с данными для выгрузки.
- ПКО — правила конвертации объектов. Задаются объекты (источник и приёмник) и свойства этих объектов. Раскрываются способы поиска объектов:
- автоматическая генерация номера или кода, если он не задан;
- поля поиска, иногда с возможностью нескольких комбинаций;
- выгрузка полностью объекта при наличии ссылки;
- табличные части заполняются с использованием алгоритмов;
- прочие процедуры и функции.
В экспортной процедуре ЗаполнитьПравилаКонвертацииОбъектов содержится логика. Следуя ей, заполняются правила конвертации объектов. В ней включены команды для вызова других процедур. Их добавляют в таблицу значений правил конвертации конкретного объекта: НаправлениеОбмена, ПравилаКонвертации. Добавляется такое же количество процедур, сколько предусмотрено ПКО в конкретной конвертации.
Процедура ПКО_<ИмяПКО>_ПриОтправкеДанных с текстом обработчика ПриОтправке для конкретного ПКО. Реализуется логика конвертации данных, содержащихся в объекте информационной базы, в описание объекта XDTO.
Процедура ПКО_<ИмяПКО>_ПриКонвертацииДанныхXDTO с текстом обработчика ПриКонвертацииДанныхXDTO для конкретного ПКО при загрузке данных. Реализуется произвольная логика конвертации данных XDTO.
Процедура ПКО_<ИмяПКО>_ПередЗаписьюПолученныхДанных с текст омобработчика ПередЗаписьюПолученныхДанных для конкретного ПКО при загрузке данных. Реализуется дополнительная логика, которую необходимо выполнить перед записью объекта в информационную базу.
-
ПКПД — правила конвертации предопределенных данных находятся в справочнике с одноимённым названием. Задаются объекты конфигурации и формата, область применения правил. Включают действия, с помощью которых настраиваются правила для перечислений, справочников с предопределёнными элементами и прочими объектами, у которых значения предопределены. Для них настраивается соответствие.
В экспортной процедуре ЗаполнитьПравилаКонвертацииПредопределенныхДанных расположена логика заполнения правил конвертации предопределенных данных. Параметры: НаправлениеОбмена, ПравилаКонвертации в таблице значений.
- Раздел «Алгоритмы» включает произвольные алгоритмы. Их можно вызывать так же, как любую процедуру или функцию, в обработчиках ПОД или ПКПД. Нужно прописать имя и параметры алгоритма.
- В разделе Параметры прописывается, как следует заполнять параметры конвертации для экспорта данных. Например, на вкладке ПараметрыКонвертации (тип Структура) прописываем параметр «ЗаполнятьКонтрагентаПриЗагрузке». Значение этого параметра в плане обмена устанавливаем в Плане обмена в настройках соответствующего узла.
- РазделОбщего назначения включает процедуры и функции, предназначенные:
- Для вызова неэкспортной процедуры модуля, если ее имя и параметры получены на вход. При этом можно не использовать способ «Выполнить». Параметры: в строке ИмяПроцедуры, Параметры — структура. Записывается «ВыполнитьПроцедуруМодуляМенеджера».
- Для вызова функции и возврата ее значения предназначается функция. Записывается «ВыполнитьФункциюМодуляМенеджера». Параметры: в строке записывается ИмяПроцедуры, Параметры — структура.
Описание параметров процедур и функций
Как уже рассказывалось выше, каждый из разделов модуля «Менеджер обмена через универсальный формат» имеет определенные параметры, свой функционал. Рассмотрим некоторые из них.
КомпонентыОбмена по своему типу являются структурой. В ней помещается весь объем информации о текущем сеансе синхронизации. Затем передается во все обработчики в качестве параметров, как при выгрузке, так и при загрузке данных. Составляющие элементы структуры: ПравилаКонвертации, ПараметрыКонвертации и т. д.
НаправленияОбмена — строка, являющаяся элементом структуры «КомпонентыОбмена». Может быть представлена в одном из двух значений: Отправка или Получение.
Данные ИБ — это тип СправочникОбъект, который нужен для чтения, изменения, добавления и удаления элементов справочника. Либо другой тип Документооборот, который открывает доступ к объекту базы данных, одновременно предоставляя возможность записи изменений. Он требуется для чтения, удаления, добавления, внесения изменений в документ.
Предопределенные процедуры конвертации
Таких процедур, непосредственно связанных с событиями, задействованными в обмене, существует три. Ключевой механизм обработчиков событий в конвертации программ 1С практически осуществляется с помощью:
- Во-первых, обработчика «ПередКонвертацией». Как понятно из названия, его надо вызвать до начала обмена для программного определения значений свойств, параметров КомпонентыОбмена.
- Во-вторых, в параметрах КомпонентыОбмена вызывается процедура ПослеКонвертации. Делается это после синхронизации, до отложенного заполнения.
- В-третьих, также в параметрах КомпонентыОбмена есть процедура ПередОтложеннымЗаполнением. Ее включают, когда необходима корректировка значений в таблицах, сортировка объектов. То есть, механизм отложенного заполнения данных используют, когда конвертация завершилась, но требуется еще что-то дозаполнить. Для этого в «Алгоритмах» надо создать процедуру «ОтложеннаяОбработка_ЗаказКлиента», установив один параметр «Объект». Вернувшись в ПКО, на вкладке обработчика «После загрузки всех данных» выбирается Алгоритм «Отложенная обработка_ЗаказКлиента».
Для пяти самых популярных задач по доработке обмена в универсальном формате EnterpriseData были разработаны подробные инструкции. Эти инструкции помогут пользователям решать наиболее часто встречающиеся проблемы и оптимизировать процессы обмена данными. Изучить инструкции можно по следующим ссылкам:
- Объединение исправлений обмена в XDTO / КД 3 при обновлении релиза 1С
- Модификация менеджера обмена XDTO (КД 3) без использования расширений
- Добавление поля примитивного типа в обмен XDTO (КД 3 / EnterpriseData)
- Расширение формата обмена XDTO. Добавление своих типов объектов в формат обмена
- Конвертация данных 1С