{jcomments on}

В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат EnterpriseData.

В моём случае обмен настраивается между конфигурациями "Управление торговлей 11.2" (далее УТ) и "Бухгалтерия предприятия 3.0.43" (далее БП). Обмен односторонний, из УТ в БП. До обновления "Управление торговлей 11.1" на версию "11.2" обмен данными был настроен с помощью конфигурации "Конвертация данных 2.0". Однако после перехода на "11.2" в "Управление торговлей" появились ошибки при работе пользователей. Процедура обновления правил обмена была проведена, но результата это не дало. Отладчик показывал, что проблема в обмене данными. Было решено удалить настройку обмена данными в обеих конфигурациях и настроить заново.

И "Управление торговлей", и "Бухгалтерия предприятия" у нас работают в клиент-серверном варианте. Настройку синхронизации я начал с УТ. Выполнил её таким образом, чтобы данные выгружались из УТ в файл. То есть синхронизация через сетевой каталог. В БП настроил обмен таким образом, чтобы из БП никакие данные не выгружались.

Далее запустил синхронизацию на стороне УТ. Выгрузка данных не произошла. В журнале регистрации появились ошибки:

Ошибка при вызове метода контекста (Проверить): Ошибка проверки данных XDTO:
Структура объекта '/БанковскийСчетКонтрагента/Банк' не соответствует типу: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.1}КлючевыеСвойстваБанк
Проверка свойства 'БИК':
форма: Элемент
имя: {http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.1}БИК
тип:
Отсутствует обязательное свойство
Объект: ДоговорСКонтрагентом № ...

Для анализа ошибки нажал на пиктограмму "Состав отправляемых данных" и в списке зарегистрированных к отправке договоров контрагентов нашёл договор, по которому появилась ошибка. Открыл договор, запомнил банковский счёт контрагента, указанный в договоре. Затем перешёл к зарегистрированным к отправке банковским счетам. Оказалось, что нужного счёта нет в списке зарегистрированных. Я перепровёл проблемный банковский счёт и договор. После этого зарегистрировал вручную нужный банковский счёт.

Повторил попытку синхронизировать данные из УТ. На этот раз данные успешно выгрузились. В сетевой папке сформировался XML файл, содержащий данные для переноса из УТ в БП.

Следующий этап - загрузить данные из файла в Бухгалтерию предприятия. В конфигурации "Бухгалтерия предприятия" я нажал кнопку "Синхронизировать", открылась форма обработки с сообщением "Выполняется анализ данных". Чуть позже сообщение сменилось на "Выполняется выгрузка данных". При этом индикатор и счётчик показывали, что из БП выгружается более 80-ти тысяч объектов. Это меня смутило, ведь я указывал в настройках, что из БП ничего не должно выгружаться. Обработка выполнялась довольно долго и завершилась ошибкой:

Событие: Обмен данными
{ОбщийМодуль.ДлительныеОперации.Модуль(371)}: Аварийно завершился рабочий процесс фонового задания
   ВызватьИсключение(ТекстОшибки);

Чтобы локализовать ошибку, попробовал изменять настройки синхронизации и вараанты работы базы БП. В итоге, когда я перевёл базу в файловый вариант, система отработала адекватно: открылась форма сопоставления двух баз. После сопоставления объектов начальная синхронизация прошла успешно. Затем я снова перевёл базу в клиент-серверный вариант.

При дальнейшей "обкатке" синхронизации, потребовалось внести кое-какие изменения в правила конвертации объектов. Настало время воспользоваться конфигурацией "Конвертация данных 3.0". Во встроенной справке конфигурации описан порядок работы. Также помогли статьи на сайте ИТС.

В итоге я загрузил в "Конвертация данных 3.0" следующие данные:

  • Тексты общего модуля "МенеджерОбменаДаннымиЧерезУниверсальныйФормат" из двух баз
  • Схема обеих баз
  • Описание формата EnterpriseData (из одной любой базы)
  • Правила конвертации

После загрузки открыл в "Конвертация данных 3.0" правила конвертации данных, объектов, свойств. Внёс необходимые мне правки. Затем воспользовался кнопкой "Выгрузить модуль менеджера обмена". Текст модуля скопировался в буфер обмена. Осталось только вставить его в конфигурацию.

Поэксперементировав с настройкой правил в "Конвертация данных 3.0", я для себя заключил, что в случае, когда вносимые правки незначительны,  проще настраивать правила непосредственно в конфигурациях УТ и БП, в общем модуле "МенеджерОбменаДаннымиЧерезУниверсальныйФормат". Если же правки серъёзные, такие как, например, добавление нового объекта в обмен, тогда стоит воспользоваться конфигурацией "Конвертация данных 3.0". 

Задачу по добавлению документа "Заказ поставщику" в план обмена я выполнял с помощью "Конвертация данных 3.0".  В стандартном варианте УТ - БП этого документа в плане обмена нет.

Будем помнить, что правила регистрации объектов для выгрузки попрежнему настраиваются в конфигурации "Конвертация данных 2.0".

Вот такие первые впечатления о синхронизации данных через универсальный формат EnterpriseData.

P.S. Если есть вопросы и собственные наблюдения по обмену данными через Универсальный формат и конфигурации "Конвертация данных 3.0", пишите в комментариях. Будем обмениваться опытом.