Категория: Инструкции
Инструкция создания одностороннего обмена данными между конфигурациями "Источник" и "Приемник" с нуля:
Итак, главное правило. MD**Exp.epf и V8Exchan**.epf должны быть из одного комплекта, прилагающегося к версии Конвертация данных. Причем той же версии, в которой создавались правила обмена. И никаких встроенных обработок для универсального обмена в формате XML, только V8Exchan**.epf.
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).
Вступайте в мою группу ВКонтакте . Одноклассниках . Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы. но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
КД2.0 - конфигурация Конвертация данных, редакция 2.0 .
КД3.0 - конфигурация Конвертация данных, редакция 3.0 .
БСП - Библиотека стандартных подсистем.
ПОД - правило обработки данных.
ПКО - правило конвертации объекта.
ПКПД - правило конвертации предопределенных данных.
ПКС - правило конвертации свойства.
Конвертация данных, редакция 3.0 (далее КД3.0 ) - это инструмент для разработки обменов, предполагающих наличие посредника передачи данных между конфигурациями в виде универсального формата данных EnterpriseData. В этом качестве КД3.0 является одним из компонентов технологии обмена данными через формат EnterpriseData .
КД3.0 не является заменой конфигурации Конвертация данных, редакция 2.0 (далее КД2.0 ), но аналогична ей по характеру решаемых задач, общий смысл которых сводится к упрощению разработки логики конвертации данных за счет представления ее объектной модели.
Главной особенностью КД3.0 является концепция конвертации данных (см. рисунок):
Следуя из этого список отличий КД3.0 от КД2.0 можно свести к нескольким пунктам:
В основе реализованной в БСП механики конвертации данных через формат данных EnterpriseData. лежит модель, включающая в себя следующие элементы (далее - функциональные компоненты конвертации):
В совокупности все эти компоненты реализуют функциональность, связанную с обработкой данных в процессе их получения, либо отправки:
Общий порядок выполнения правил конвертации при выполнении процедур отправки и получения данных представлен на схеме:
Заполнение свойств с помощью алгоритмаЧасто возникают ситуации, когда нет возможности заполнить свойство получателя на основании определенного свойства источника. Например, свойство заполняется по совокупности нескольких свойств, либо свойству присваивается некоторое предопределенное значение.
В этом случае в правиле конвертации свойства:
свойство-источник оставляется пустым
устанавливается признак Используется алгоритм конвертации
Установленный признак Используется алгоритм конвертации дает понять алгоритмам выгрузки и загрузки данных, что заполнение данного свойства предусмотрено обработчиками:
Для конвертации свойств, которые представляют собой ссылку на другой объект, необходимо указывать Правило конвертации свойства. в соответствии с которым будет выполнена конвертация.
Вариант №1. Правило конвертации свойства можно указать однозначно.Простая ситуация, когда нет зависимости от данных конвертируемого объекта. В этом случае Правило конвертации свойства указывается явно - в ПКС.
Пример: свойство Организация в большинстве типовых конфигураций.
Вариант №2. Правило конвертации зависит от данных конвертируемого объекта.Например, свойство ДокументРеализации. который может быть ссылкой на документ различного типа.
В этой ситуации
Правило конвертации свойства вычисляется по типу значения свойства в алгоритме ПриОтправкеДанных либо ПриКонвертацииДанныхXDTO (в зависимости от области применения правила).
Для свойства необходимо установить признак Используется алгоритм конвертации, а также не заполнять свойство источник
Значение свойства должно представлять собой структуру из двух элементов
Ключ "ИмяПКО", значение - строка с именем правила конвертации свойства, вычисленное в алгоритме
Ключ "Значение", значение - собственно значение свойства
Полученное значение свойства помещается
в структуру ДанныеXDTO. если правило конвертации используется для отправки
в структуру ПолученныеДанные.ДополнительныеСвойства. если правило конвертации используется для получения
Пример кода для отправки:
Если ДокументРеализации <> Неопределено Тогда
ИмяПКО = "Документ_РеализацияТоваровУслуг_Отправка";
Если ТипЗнч(ДокументРеализации) = Тип("ДокументСсылка.ОтчетОРозничныхПродажах") Тогда
ИмяПКО = "Документ_ОтчетОРозничныхПродажах_Отправка";
КонецЕсли;
ДанныеXDTO.Вставить("ДокументРеализации", Новый Структура("Значение, ИмяПКО", ДокументРеализации, ИмяПКО));
КонецЕсли;
Пример кода для получения:
Если ДокументРеализации <> Неопределено Тогда
ИмяПКО = "Документ_РеализацияТоваровУслуг_Получение";
Если Найти(ДокументРеализации .ТипЗначения, "ОтчетОРозничныхПродажах") > 0 Тогда
ИмяПКО = "Документ_ОтчетОРозничныхПродажах_Получение";
КонецЕсли;
ПолученныеДанные.ДополнительныеСвойства.Вставить("ДокументРеализации", Новый Структура("Значение, ИмяПКО", ДокументРеализации, ИмяПКО));
КонецЕсли;
Свойства табличных частей всегда заполняются с помощью алгоритмов конвертации. Сопоставление свойств табличных частей только с помощью ПКС не поддерживается.
Методика конвертации в правилах конвертации объектов для отправки:
Заполнение данных табличной части производится в алгоритме ПриОтправкеДанных .
Источник данных для заполнения строк табличной части - выгружаемый объект ДанныеИБ .
Данные табличной части помещаются в таблицу значений. Имена колонок таблицы значений должны соответствовать наименованиям свойств формата.
Заполнение таблицы значений можно выполнять любым подходящим способом (например, запросом к табличной части объекта конфигурации).
Подготовленную таблицу необходимо вставить в структуру ДанныеXDTO. при этом ключ соответствует имени табличной части в формате обмена.
Пример кода для отправки табличной части РасшифровкаПлатежа :
ТабРП = Новый ТаблицаЗначений;
ТабРП.Колонки.Добавить("СтатьяДДС");
ТабРП.Колонки.Добавить("Заказ");
ТабРП.Колонки.Добавить("Сумма");
ТабРП.Колонки.Добавить("СуммаНДС");
ТабРП.Колонки.Добавить("СтавкаНДС");
Для Каждого СтрокаРП_ИБИз ДанныеИБ.РасшифровкаПлатежа Цикл
НоваяСтрокаРП = ТабРП.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрокаРП, СтрокаРП_ИБ, "СтатьяДДС,Сумма,СуммаНДС,СтавкаНДС");
Если ЗначениеЗаполнено(СтрокаРП_ИБ.Заказ) Тогда
ТипСсылки = ТипЗнч(СтрокаРП_ИБ.Заказ);
ИмяПКО = "";
Если ТипСсылки = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
ИмяПКО = "Документ_ПоступлениеТоваровУслуг_Отправка";
ИначеЕсли ТипСсылки = Тип("ДокументСсылка.ПоступлениеУслугПрочихАктивов") Тогда
ИмяПКО = "Документ_ПоступлениеУслугПрочихАктивов_Отправка";
ИначеЕсли ТипСсылки = Тип("ДокументСсылка.ТаможеннаяДекларацияИмпорт") Тогда
ИмяПКО = "Документ_ТаможеннаяДекларация_Отправка";
ИначеЕсли ТипСсылки = Тип("ДокументСсылка.ОтчетКомиссионера") Тогда
ИмяПКО = "Документ_ОтчетКомиссионера_Отправка";
ИначеЕсли ТипСсылки = Тип("ДокументСсылка.ЗаказКлиента") Тогда
ИмяПКО = "Документ_ЗаказКлиента_Отправка";
КонецЕсли;
Если ИмяПКО <> "" Тогда
НоваяСтрокаРП.Заказ = Новый Структура("Значение, ИмяПКО", СтрокаРП_ИБ.Заказ, ИмяПКО);
Методика конвертации в правилах конвертации объектов для получения:
Заполнение данных табличной части производится в алгоритме ПриКонвертацииДанныхXDTO .
Строки табличной части помещаются в массив, каждый элемент массива представляет собой структуру (ключ - имя свойства объекта конфигурации, значение - значение свойства).
Подготовленный массив вставляется в структуру ПолученныеДанные.ДополнительныеСвойства. при этом ключ соответствует имени табличной части объекта конфигурации.
Пример кода для получения табличной части РасшифровкаПлатежа :
МассивСтрокРасшифровка = Новый Массив;
Для Каждого Строка Из ДанныеXDTO.РасшифровкаПлатежа Цикл
СтруктураДанныхСтроки = Новый Структура;
СтруктураДанныхСтроки.Вставить("Сумма", Строка.Сумма);
СтруктураДанныхСтроки.Вставить("СуммаВзаиморасчетов", Строка.СуммаВзаиморасчетов);
СтруктураДанныхСтроки.Вставить("СтатьяДДС", Строка.СтатьяДвиженияДенежныхСредств);
Процесс разработки конвертации в КД3.0 осуществляется по принципу компоновки элементов конвертации. Для упрощения параллельной разработки нескольких обменов данными в КД3.0 предусмотрена возможность использования общих элементов конвертации: ПОД, ПКО, ПКПД, алгоритмов (см. рисунок):
Состав конвертаций определяется набором элементов справочника Элементы конвертации. устанавливающими связи между конвертациями и множеством функциональных компонентов конвертации (ПОД, ПКО, ПКПД и алгоритмов).
Управлять составом конвертаций можно с помощью команд Добавить элемент в состав конвертации и Выделить элемент из состава конвертаций доступными из форм функциональных компонентов.
Команда Добавить элемент в состав конвертации создает в КД3.0 связь между текущим элементом и конвертацией, указанной в форме выбора.
С помощью команды Выделить элемент из состава конвертаций выполняется операция "отпочкования": создается вторая версия текущего элемента и привязывается к тем конвертациям, с которых был снят флаг в форме редактирования состава конвертаций, использующих текущий элемент.
Ниже приведены примеры использования общих элементов конвертации.
В двух конфигурациях, назовем их Конфигурация 1 и Конфигурация 2. справочник Контрагенты имеет одинаковую структуру. Реализовав логику загрузки контрагентов из формата EnterpriseData для Конфигурации 1 будет логично использовать ее и в Конфигурации 2. КД3.0 позволяет это сделать путем включения ПКО для справочника Контрагенты в состав одновременно двух конвертаций: и для Конфигурации 1. и для Конфигурации 2.
Выполняется параллельная разработка двух версий одной конфигурации, назовем их Версия 1 и Версия 2. Версия 2 отличается от Версии 1 только названиями реквизитов справочника Контрагенты. Соответственно конвертация для Версии 2 будет отличаться от конвертации Версии 1 только ПКО для справочника Контрагенты. поэтому в каждой конвертации свой вариант этого ПКО. Все остальные элементы конвертации должны быть общими для Версии 1 и Версии 2. чтобы избежать необходимости дублирования изменений, например, при исправлении ошибок в правилах либо алгоритмах конвертации.
В КД3.0 поддерживается операция копирования состава конвертаций (раздел Конвертации. команда Копирование состава конвертации ).
При копировании состава конвертации не происходит создание новых правил - вместо этого существующие правила конвертации-источника включаются в состав указанной конвертации.
В этой статье опишу свой, пока небольшой, опыт организации обмена данными через универсальный формат EnterpriseData.
В моём случае обмен настраивается между конфигурациями "Управление торговлей 11.2" (далее УТ) и "Бухгалтерия предприятия 3.0.43" (далее БП). Обмен односторонний, из УТ в БП. До обновления "Управление торговлей 11.1" на версию "11.2" обмен данными был настроен с помощью конфигурации "Конвертация данных 2.0". Однако после перехода на "11.2" в "Управление торговлей" появились ошибки при работе пользователей. Процедура обновления правил обмена была проведена, но результата это не дало. Отладчик показывал, что проблема в обмене данными. Было решено удалить настройку обмена данными в обеих конфигурациях и настроить заново.
И "Управление торговлей", и "Бухгалтерия предприятия" у нас работают в клиент-серверном варианте. Настройку синхронизации я начал с УТ. Выполнил её таким образом, чтобы данные выгружались из УТ в файл. То есть синхронизация через сетевой каталог. В БП настроил обмен таким образом, чтобы из БП никакие данные не выгружались.
Далее запустил синхронизацию на стороне УТ. Выгрузка данных не произошла. В журнале регистрации появились ошибки:
Ошибка при вызове метода контекста (Проверить): Ошибка проверки данных XDTO:Для анализа ошибки нажал на пиктограмму "Состав отправляемых данных" и в списке зарегистрированных к отправке договоров контрагентов нашёл договор, по которому появилась ошибка. Открыл договор, запомнил банковский счёт контрагента, указанный в договоре. Затем перешёл к зарегистрированным к отправке банковским счетам. Оказалось, что нужного счёта нет в списке зарегистрированных. Я перепровёл проблемный банковский счёт и договор. После этого зарегистрировал вручную нужный банковский счёт.
Повторил попытку синхронизировать данные из УТ. На этот раз данные успешно выгрузились. В сетевой папке сформировался XML файл, содержащий данные для переноса из УТ в БП.
Следующий этап - загрузить данные из файла в Бухгалтерию предприятия. В конфигурации "Бухгалтерия предприятия" я нажал кнопку "Синхронизировать", открылась форма обработки с сообщением "Выполняется анализ данных". Чуть позже сообщение сменилось на "Выполняется выгрузка данных". При этом индикатор и счётчик показывали, что из БП выгружается более 80-ти тысяч объектов. Это меня смутило, ведь я указывал в настройках, что из БП ничего не должно выгружаться. Обработка выполнялась довольно долго и завершилась ошибкой:
Событие: Обмен данными
<ОбщийМодуль.ДлительныеОперации.Модуль(371)>: Аварийно завершился рабочий процесс фонового задания
ВызватьИсключение(ТекстОшибки);
Чтобы локализовать ошибку, попробовал изменять настройки синхронизации и вараанты работы базы БП. В итоге, когда я перевёл базу в файловый вариант, система отработала адекватно: открылась форма сопоставления двух баз. После сопоставления объектов начальная синхронизация прошла успешно. Затем я снова перевёл базу в клиент-серверный вариант.
При дальнейшей "обкатке" синхронизации, потребовалось внести кое-какие изменения в правила конвертации объектов. Настало время воспользоваться конфигурацией "Конвертация данных 3.0". Во встроенной справке конфигурации описан порядок работы. Также помогли статьи на сайте ИТС.
В итоге я загрузил в "Конвертация данных 3.0" следующие данные:
После загрузки открыл в "Конвертация данных 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.
Максим, в одном из своих сообщений Вы упомянули, что когда-то выполняли добавление документа ЗаказПоставщику в обмен УТ 11.2 -> БП 3.0.
Не могли бы Вы поподробнее описать весь процесс такой технологии: какие объекты УТ и как нужно изменить или добавить, что выполнить в КД ?
Мы тоже перешли на универсальный формат. При синхронизации перезаписываются все изменения, сделанные в базе-приёмнике. Написали в 1С. Оттуда ответили, что у них проблема не проявляется
Да, проблема есть. По крайней мере в "Бухгалтерия предприятия 3.0.43.155". Пришлось изменить два общих модуля: ОбменДаннымиXDTOСервер и ОбменДаннымиСобытия
Мы тоже перешли на универсальный формат. При синхронизации перезаписываются все изменения, сделанные в базе-приёмнике. Написали в 1С. Оттуда ответили, что у них проблема не проявляется
В настоящее время вышла конфигурация «Конвертация данных 3.0». Важно понимать, что редакция 2.1 не утратила своей актуальности и по-прежнему является инструментом для реализации однократных обменов, перегрузок данных. Также только в редакции 2.1 возможна разработка правил регистрации объектов (ПРО), используемых в обмене, реализованном с помощью КД 3.0. В настоящее время специалист, занимающийся обменом данными, должен владеть как КД 2.1, так и КД 3.0.
Цель курса: ознакомиться с возможностями организации обмена между конфигурациями «1С:Предприятие» (как «типовыми», так и разработанными самостоятельно) с помощью технологии «Конвертация данных 3.0» (обмен с использованием формата «EnterpriseData»).
Конфигурация Конвертация данных 2.1 и 3.0 имеют принципиальные отличия. Мы подготовили видеоролик, в котором описаны отличия этих конфигураций.
В рамках курса будут рассмотрены
Курс рассчитан на специалистов, имеющих базовые навыки программирования на платформе «1С:Предприятие 8». Для полного усвоения материала желательны навыки работы (конфигурирования и программирования) в управляемом приложении «1С:Предприятие 8». Данные возможности рассматриваются в курсе "Управляемое приложение" .
Обращаем Ваше внимание, в данном курсе рассматриваются вопросы настройки конвертации данных из (в) систем на базе технологической платформы «1С:Предприятие» в универсальный формат и из него. Вопросы, связанные с обменом с произвольными системами (по технологиям, отличным от обмена через универсальный формат), рассматриваются в курсе "Интеграция и обмен данными" .
В стоимость очного дневного курса включено:
В стоимость WEB-курса включено:
В стоимость очного курса-погружения включено:
В стоимость он-лайн трансляции включено:
Что это за формат: Занятия проходят в оборудованном учебном классе в дневное время, курс проводит преподаватель. Чередуются теория и практические занятия. Преимущества – интенсивное обучение в краткие сроки, живое общение с преподавателем.
Для кого этот формат: Для тех, кто может пройти обучение с отрывом от работы и предпочитает классическое очное обучение.
Продолжительность: 16 академических часов
Что это за формат: Предлагаемый формат сочетает многие преимущества дистанционного обучения с очной составляющей, представленной видеоматериалами и онлайн-консультациями.
WEB-курс состоит из видеороликов, практических задач и вебинаров с преподавателям. Ко всем материалам курса предоставляется круглосуточный доступ через Интернет – можно заниматься в удобное время. Курс разделен на занятия. В течение занятия изучаются материалы по текущей теме, выполняются практикумы, задаются вопросы преподавателю. В конце каждого занятия проводится вебинар, на котором преподаватель разбирает все поступившие вопросы, типовые ошибки, объясняет правильное решение. Запись вебинаров доступна в портале. Таким образом проходят несколько занятий одно за другим. В конце проводится итоговая самостоятельная работа и итоговый вебинар.
Для кого этот формат: Для региональных слушателей курсов, а также для тех, кто не готов проходить очное обучение в учебном центре, любит и может учиться самостоятельно.
Продолжительность: 5 недель
Что это за формат: Очный курс-погружение - формат, сочетающий в себе все плюсы очного обучения, дистанционных технологий и индивидуального обучения. Занятия проходят в оборудованном учебном классе, Вы самостоятельно изучаете материалы курса (пошаговые видеоролики) и выполняете практикумы. При этом в аудитории находится преподаватель, который готов в любой момент ответить на вопрос и помочь с решением практических задач, а также проверить правильность их выполнения.
Преимущества – индивидуальные консультации преподавателя по Вашим вопросам, подходящий лично для Вас темп прохождения материала.
Все это дает более глубокую проработку материала курса.
Этот курс возможно пройти со своего рабочего места с полным эффектом присутствия преподавателя там, где ученик! Если эта возможность Вас заинтересовала – позвоните нам!
Для кого этот формат: Для тех, кто предпочитает изучение материала в удобном для себя темпе с возможностью повторения непонятных тем нужное количества раз, консультации с преподавателем здесь и сейчас.
Продолжительность: 40 академических часов
Что это за формат: Онлайн-трансляция – это обучение в форме он-лайн вебинара, которые стремительно набирают популярность в нашей стране. Вместо специальных видеопособий, вы получаете «живую» лекцию, транслируемую через Интернет. Тем самым достигается максимальная естественность подачи материала, аналогичная обычному очному обучению – но исчезает проблема необходимости личного присутствия в учебном центре. Отличие от очного обучения состоит только в отсутствии прямого взаимодействия с аудиторией и преподавателем.
Для кого этот формат: Для тех, кому воспринимать трансляцию традиционной лекции проще и удобнее, чем учебные видеопособия. Для людей, которые хотят получить ощущение личного присутствия в учебном центре, находясь в любой точке мира.
Продолжительность: 16 академических часов
Программа курсаЧитать всю программу