Обработка запуска универсального обмена данными

Доброго времени суток, уважаемые коллеги! В прошлой статье приводился пример обработки, которая отправляет SMS сообщения, используя HTTP запросы к серверу. Сегодняшняя обработка связана с конвертацией с помощью правил обмена, которую можно запускать в одно нажатие. На самом деле, речь идёт о двух обработках. Первая для базы источника, вторая для базы приёмника и они могут открываться в управляемом или обычном режиме. Также, все будет работать, если режимы работы источника и приемника разные. Будет работать на всех конфигурациях со встроенной обработкой «УниверсальныйОбменДаннымиXML».

Обработка для запуска универсального обмена в базе источнике в обычном приложении имеет следующий вид:

Форма запуска универсального обмена данных в базе источнике в обычном приложении

Подготовка обработки к работе

Обработка запускает универсальный обмен данным в формате xml, основываясь на правилах, которые нужно загрузить в конфигураторе. Кроме того, нужно загрузить вторую обработку, которая запустит универсальный обмен данными для загрузки файла данных в базу приёмник. Для этого нужно:

  • Скачать эти обработки по ссылке в конце статьи.
  • Подготовить правила обмена данными для конфигураций источника и приёмника.
  • Открыть обработку ОбработкаИсточника.epf в конфигураторе, смотрите иллюстрацию ниже.
  • Сделать двойной щелчок мыши на разделе макеты «ПравилаВыгрузки».
  • В появившемся диалоге нажать на кнопку «Загрузить из файла» и выбрать файл с правилами обмена в формате xml.
  • Затем сделать двойной щелчок мыши на разделе макеты «ОбработкаВыгрузки».
  • В появившемся диалоге нажать на кнопку «Загрузить из файла» и выбрать файл ОбработкаПриемника.epf.
  • Сохранить обработку.

Описание работы обработки запуска универсального обмена

  • Откройте обработку ОбработкаИсточника.epf в режиме 1С:Предприятие 8.
  • Перейдите к пункту меню «Файл» | «Открыть…» (Ctrl+O).
  • Когда обработка в источнике открывается первый раз, то предлагается заполнить и записать данные для доступа к базе приемника, как показано на иллюстрации ниже.
  • Заполните настройки доступа к базе приёмника и запишите их.
  • Чтобы запустить обработку выбирете период выгрузки и нажмите на кнопку «Выполнить загрузку».
Обычная форма для запуска на стороне источника на закладке настройки

Сначала произойдет выгрузка данных из базы источника по правилам, которые ранее были загружены в конфигураторе. Дальше откроется база приемник, данные которой были записаны в настройках. И в конце произойдет запуск обработки, которая загрузит данные в базу приёмник из файла xml с данными базы источника.

Часть программного кода обработки на встроенном языке 1С

Когда вы нажимаете на кнопку «Выполнить загрузку», то срабатывает процедура ВыполнитьЗагрузку и выполняется следующий код:

Функция ЗапуститьНаСервере(ДатаНачала, ДатаОкончания, ОбъектОбработки) Экспорт
	
	Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать();
	
	ИмяФайлаПравил = ПолучитьИмяВременногоФайла("xml");
	ИмяФайлаОбмена = ПолучитьИмяВременногоФайла("xml");
	ИмяОбработки   = ПолучитьИмяВременногоФайла("epf"); 
	
	МакетПравилОбмена = ОбъектОбработки.ПолучитьМакет("ПравилаВыгрузки");
	МакетПравилОбмена.Записать(ИмяФайлаПравил);
	       
	МакетОбработки = ОбъектОбработки.ПолучитьМакет("ОбработкаВыгрузки");
	МакетОбработки.Записать(ИмяОбработки);

	Обработка.ЗагрузитьПравилаОбмена(ИмяФайлаПравил);
	Обработка.ИмяФайлаПравилОбмена = ИмяФайлаПравил;
		
	Обработка.ЗагружатьДанныеВРежимеОбмена = Истина;
	Обработка.ЗаписыватьВИнформационнуюБазуТолькоИзмененныеОбъекты = Истина;
	Обработка.ОбъектыПоСсылкеЗагружатьБезПометкиУдаления = Истина;
	Обработка.ОптимизированнаяЗаписьОбъектов = Истина;
	Обработка.ЗаписыватьРегистрыНаборамиЗаписей = Истина;
	Обработка.ЗапоминатьЗагруженныеОбъекты = Истина;
	Обработка.ИспользоватьОтборПоДатеДляВсехОбъектов = Истина;
	
	Обработка.ДатаНачала = ?(ЗначениеЗаполнено(ДатаНачала), НачалоДня(ДатаНачала), Дата('2017.01.01 00:00:00'));
	Обработка.ДатаОкончания = ?(ЗначениеЗаполнено(ДатаОкончания), КонецДня(ДатаОкончания), КонецДня(ТекущаяДата()));
	Обработка.ВыгружатьТолькоРазрешенные = Истина;
	Обработка.ИмяФайлаОбмена = ИмяФайлаОбмена;
	Обработка.ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки = 0; // 0 - не снимать регистрацию, 1 - снимать регистрацию
	Обработка.ВыполнитьВыгрузку();
	
	ДвоичныйФайлОбмена 	  = Новый ДвоичныеДанные(ИмяФайлаОбмена);
	ДвоичныйФайлОбработки = Новый ДвоичныеДанные(ИмяОбработки);
    	
	Возврат Новый Структура("АдресФайлаОбмена, АдресФайлаОбработки", ПоместитьВоВременноеХранилище(ДвоичныйФайлОбмена), ПоместитьВоВременноеХранилище(ДвоичныйФайлОбработки));
			
КонецФункции

Здесь опубликован не весь программный код обработки для запуска универсального обмена данными. Но его можно увидеть, да и опробовать саму эту обработку, если скачать по ссылке. Эта обработка загружает данные, используя правила обмена. Может быть вам также подойдёт другая обработка, которая загружает документы Операция, используя mxl таблицы. Если у вас другие данные или другая конфигурация, то мы можем помочь изменить обработку под ваши нужды, обращайтесь.

Демонстрация работы обработки 1С для запуска универсального обмена

ПОДПИСКА