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