Написание обработок для выгрузки и загрузки данных, используя методы обработки «Универсальный обмен данными в формате xml»
Принцип работы:
При изменении даты в форме, табличное поле заполняется документами за выбранную дату. Сами правила обмена были вставлены в обработку как макет с типом «Двоичные данные».
При ВЫГРУЗКЕ используется код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
Процедура ДействияФормыВыгрузка(Кнопка) ДиалогФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); ДиалогФайла.Фильтр = "Файл данных (*.xml)|*.xml"; ДиалогФайла.ПолноеИмяФайла = "Retail_"+СтрЗаменить(Формат(Дата,"ДФ=dd.MM.yyyy"),".","-"); Если ДиалогФайла.Выбрать() Тогда ИмяФайла = ДиалогФайла.ПолноеИмяФайла; Попытка ВыгрузитьДанные(ИмяФайла); ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла); ДвоичныеДанные.Записать(ИмяФайла); Исключение Предупреждение("Внешний файл не сохранен |"+ОписаниеОшибки()); КонецПопытки; КонецЕсли; КонецПроцедуры // процедура выгрузки Процедура ВыгрузитьДанные(ИмяФайлаОбмена) Обработка=Обработки.УниверсальныйОбменДаннымиXML.Создать(); Обработка.РежимОбмена="Выгрузка"; ВремФайл = ПолучитьИмяВременногоФайла("xml"); МакетПравилОбмена = ПолучитьМакет("ПравилаВыгрузки"); МакетПравилОбмена.Записать(ВремФайл); Обработка.ИмяФайлаПравилОбмена = ВремФайл;//ФайлПравилОбмена; Обработка.ЗагружатьДанныеВРежимеОбмена = Истина; Обработка.ЗаписыватьРегистрыНаборамиЗаписей = Истина; Обработка.ЗапоминатьЗагруженныеОбъекты = Истина; Обработка.ИспользоватьОтборПоДатеДляВсехОбъектов = Истина; СписокДок = Новый Массив; Для каждого Стр Из Документы Цикл Если НЕ Стр.Флаг Тогда Продолжить; КонецЕсли; СписокДок.Добавить(Стр.Реализация); КонецЦикла; Обработка.ДатаНачала = Дата; Обработка.ДатаОкончания = КонецДня(Дата); Обработка.ВыгружатьТолькоРазрешенные = Истина; Обработка.ИмяФайлаОбмена = ИмяФайлаОбмена; Обработка.ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки = 0; // 0 - не снимать регистрацию, 1 - снимать регистрацию Обработка.ЗагрузитьПравилаОбмена(); Обработка.Параметры.Вставить("Документы",СписокДок); Обработка.ВыполнитьВыгрузку(); КонецПроцедуры |
Отбор по документам осуществляется с помощью параметра «Документы», описанного в правилах обмена.
При ЗАГРУЗКЕ используем следующий код:
1 2 3 4 5 6 7 |
ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать(); ОбработкаОбмена.ИмяФайлаОбмена = ФайлЗагрузки; ОбработкаОбмена.РежимОбмена = "Загрузка"; ОбработкаОбмена.ОткрытьФайлЗагрузки(Истина); ОбработкаОбмена.АрхивироватьФайл = Ложь;; ОбработкаОбмена.ВыполнитьЗагрузку(); ОбработкаОбмена = Неопределено; |