Универсальный обмен данными XML (с гибкими отборами и сохранением вариантов настроек)








Обработка предназначена для загрузки и выгрузки данных по правилам обмена в любых конфигурациях, реализованных на платформе 1С:Предприятие 8.3. Преимуществом перед типовой обработкой является добавленный функционал:
#1. Установка произвольных фильтров на выгружаемые объекты при помощи механизма системы компоновки данных
#2. Сохранение различных вариантов настроек (сохраняются правила обмена, фильтры выгрузки, параметры, настройки обработки)
— что позволяет гибко настроить в базе-источнике фильтры для выгрузки объектов по различным правилам обмена для различных баз-приемников, сохранить выполненные настройки и в будущем уже пользоваться этими вариантами настроек.
Проверялась на 1С:ERP Управление предприятием 2.4.7.141.

Выгрузка данных

  • Для осуществления выгрузки данных необходимо выбрать файл правил обмена. Примечание: Правила обмена разрабатываются в специализированной конфигурации "1С: Конвертация данных, редакция 2"
  • Для выгрузки документов и записей независимых периодических регистров сведений необходимо указать [Период выгрузки].
  • На закладке "Правила выгрузки данных"
  1. флажками отметьте типы объектов, которые должны выгружаться,
  2. настройте фильтры для выгрузки объектов, либо укажите узел обмена данными, для которого нужно выгружать данные.
  • На закладке "Параметры выгрузки" можно указать дополнительные параметры выгрузки данных.
  • На закладке "Комментарий" можно написать произвольный текст-комментарий, включаемый в файл обмена.
  • В командной панели обработки можно сохранить и восстановить ранее настроенные правила обмена и фильтры. Ниже на рисунках для примера показаны 3 сохраненные настройки: "Движения по кассе", "Оплата по гостинницам" — выгрузки из ERP в специальную базу Казначейства и "Выгрузка выработки в ЗУП" — выгрузка из ERP в ЗУП (Корп).

Загрузка данных

Для осуществления загрузки данных необходимо указать имя файла, из которого будет осуществляться загрузка данных.

16 Comments

  1. e.kogan

    А прикрутите до кучи вызов как внешней печатной формы — когда надо сохранить какой-то объект конкретный. Иногда ужасно этого не хватает, а у самой руки не доходят дописать )

    Reply
  2. user705522_constantin_h

    (1)Попробуйте это поместить в модуль объекта:

    Функция СведенияОВнешнейОбработке() Экспорт
    ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = «1.0»;
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр(«ru = ‘Универсальный обмен данными XML (с отборами)'»);
    НоваяКоманда.Идентификатор = «УниверсальныйОбменДаннымиXMLСОтборами»;
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    Возврат ПараметрыРегистрации;
    КонецФункции
    

    Показать

    Reply
  3. e.kogan

    (2) Я не про «открыть обработку». Это-то элементарно. А вот чтобы отбор по объекту сразу ставился, потому что искать его в дереве метаданных и ставить отбор…

    Reply
  4. StAsya_1C

    Ну и сведения о внешней обработке хорошо бы в публикацию зашить. Добавила сведения из кода выше, если открывать через доп.обработки, то форма открывается и сразу закрывается. Нужно еще в свойствах формы устанавливать параметр РежимОткрытияОкна = Независимый , спасибо волшебному форуму за это )

    (2)

    Reply
  5. Anton_81

    Почему-то не работает восстановить параметры

    Reply
  6. sapervodichka

    (5) о какой кнопке идет речь:

    1) [Восстановить настройки] в верхней панели

    или

    2) кнопка [Восстановить] на закладке Параметры выгрузки?

    Reply
  7. Anton_81

    восстановить настройки

    Reply
  8. sapervodichka

    (7) загрузил правила, добавил настройку банк, сохранил как настройку 123, затем восстановил => дерево правил и фильтр восстановились. Прямо сейчас я на ЕРП пробую 1С:ERP Управление предприятием 2 (2.4.7.141) 1С:Предприятие 8.3 (8.3.13.1690)

    Reply
  9. Anton_81

    Вообще странно. у меня платформа 8.3.13.1644 может конечно в этом дело

    Reply
  10. Anton_81

    (8) конфикурация УТ 11.4.7.114

    Reply
  11. sapervodichka

    (10) сейчас правила сделаю простенькие и на УТ 11.4.8.84 (у меня такое) попробую, напишу

    Reply
  12. Anton_81

    (11) ок, буду ждать

    Reply
  13. Anton_81

    (11)я сделал минимальный план обмена, попробовал не взлетело

    Reply
  14. Anton_81

    Понял в чем дело, работает только в режиме на клиенте

    Reply
  15. sapervodichka

    (14) В УТ попробовал нормально сохраняет. У меня все базы в клиент-серверном варианте развернуты. Потом попробовал в файловой базе — в файловых базах не сохраняет варианты настроек, т.к. не получает адрес временного хранилища. Т.е. база должна быть развернута на сервере.

    Reply
  16. Altez

    Для отладки обработчиков на сервере

    добавил в обработку реквизит

    ФайлНаКлиенте

    Правки в форме настройки:

    &НаКлиенте
    Процедура ПоказатьОбработчикиСобытийВОкне()
    //+
    Если Объект.ФайлНаКлиенте Тогда
    //-
    ФайлОбработчиков = Новый Файл(Объект.ИмяВременногоФайлаОбработчиковСобытий);
    Если ФайлОбработчиков.Существует() И ФайлОбработчиков.Размер() <> 0 Тогда
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.Прочитать(Объект.ИмяВременногоФайлаОбработчиковСобытий);
    ТекстовыйДокумент.Показать(Нстр(«ru = ‘Модуль отладки обработчиков'»));
    КонецЕсли;
    
    ФайлОшибок = Новый Файл(Объект.ИмяВременногоФайлаПротоколаОбмена);
    Если ФайлОшибок.Существует() И ФайлОшибок.Размер() <> 0 Тогда
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.Прочитать(Объект.ИмяВременногоФайлаОбработчиковСобытий);
    ТекстовыйДокумент.Показать(Нстр(«ru = ‘Ошибки выгрузки модуля обработчиков'»));
    КонецЕсли;
    //+
    Иначе
    ТекстовыйДокумент = ПолучитьИзВременногоХранилища(ПрочитатьФайлОбработчиковСобытий());
    ТекстовыйДокумент.Показать(Нстр(«ru = ‘Модуль отладки обработчиков'»));
    
    КонецЕсли;
    //-
    КонецПроцедуры
    //+
    &НаСервере
    Функция ПрочитатьФайлОбработчиковСобытий()
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ФайлОбработчиков = Новый Файл(Объект.ИмяВременногоФайлаОбработчиковСобытий);
    Если ФайлОбработчиков.Существует() И ФайлОбработчиков.Размер() <> 0 Тогда
    ТекстовыйДокумент.Прочитать(Объект.ИмяВременногоФайлаОбработчиковСобытий);
    КонецЕсли;
    Адрес=ПоместитьВоВременноеХранилище(ТекстовыйДокумент);
    Возврат Адрес
    КонецФункции
    //-
    

    Показать

    Правки в основной форме:

    &НаКлиенте
    Процедура ИзменитьРасположениеФайла()
    
    Элементы.ИмяФайлаПравил.Видимость = Не ЭтоКлиент;
    Элементы.ИмяФайлаДанных.Видимость = Не ЭтоКлиент;
    Элементы.ИмяФайлаОбмена.Видимость = Не ЭтоКлиент;
    
    УстановитьПризнакЗагрузкиПравил(Ложь);
    //+
    Объект.ФайлНаКлиенте = ЭтоКлиент;
    //-
    КонецПроцедуры
    

    Показать

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *