В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат 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", пишите в комментариях. Будем обмениваться опытом.

Комментарии   

+1 #4 Максим Донецкий 16.04.2016 15:34
Цитирую Олег:
Максим, в одном из своих сообщений Вы упомянули, что когда-то выполняли добавление документа ЗаказПоставщику в обмен УТ 11.2 -> БП 3.0.
Не могли бы Вы поподробнее описать весь процесс такой технологии: какие объекты УТ и как нужно изменить или добавить, что выполнить в КД ?

Изменить нужно следующее: И в УТ, и в БП нужно добавить в формат EnterpriseData новый объект – ЗаказПоставщику и прописать его свойства, в том числе ключевые. После этого выгрузить структуру формата и всё остальное, что нужно, в КД 3.0. Там настроить правила конвертации данных, объектов, свойств. После настройки перенести тексты модуля менеджера обмена для УТ и БП в конфигурации.

Ещё нужно добавить ЗаказПоставщику в правила регистрации в УТ. Это делается в КД 2.0.
Цитировать
0 #3 Олег 16.04.2016 15:26
Максим, в одном из своих сообщений Вы упомянули, что когда-то выполняли добавление документа ЗаказПоставщику в обмен УТ 11.2 -> БП 3.0.
Не могли бы Вы поподробнее описать весь процесс такой технологии: какие объекты УТ и как нужно изменить или добавить, что выполнить в КД ?
Цитировать
0 #2 Павел Гирин 01.04.2016 16:32
Цитирую Степанов:
Мы тоже перешли на универсальный формат. При синхронизации перезаписываются все изменения, сделанные в базе-приёмнике. Написали в 1С. Оттуда ответили, что у них проблема не проявляется :-)

Да, проблема есть. По крайней мере в "Бухгалтерия предприятия 3.0.43.155". Пришлось изменить два общих модуля: ОбменДаннымиXDTOСервер и ОбменДаннымиСобытия
Цитировать
0 #1 Степанов 30.03.2016 08:37
Мы тоже перешли на универсальный формат. При синхронизации перезаписываются все изменения, сделанные в базе-приёмнике. Написали в 1С. Оттуда ответили, что у них проблема не проявляется :-)
Цитировать

Комментарии

  • pavlo 18.09.2018 13:59
    У меня по второму варианту не получилось. При такой настройке появилась колонка построчно со словами названия колонки ресурса.

    Подробнее...

     
  • Altavista- 17.09.2018 20:51
    Не бесспорное решение: 1. В регистр логичнее добавить 2й ресурс ("вТрансфертныхЦенах"); 2. РС "Наценки"? Однозначно, нет. Это реквизит справочника; 3. Реквизита "Контрагент" в условии задачи тоже нет и ...

    Подробнее...

     
  • Андрей 02.08.2018 09:55
    Большое спасибо! По "Варианту 2": в выбранных полях группировки колонок (у меня их несколько) кроме поля самой колонки пришлось добавить и ресурс.

    Подробнее...