Автоматизация обмена данными с использованием обработки "Универсальный обмен данными в формате XML". Пример реализации

Есть правила обмена, которые отлажены и хорошо работают в обработке «Универсальный обмен данными в формате XML». И тут появляется желание, чтобы обмен этот работал сам, запускаясь автоматически, по расписанию. Изучив этот вопрос по различным источникам, получился следующий пример реализации.

В нашей организации сосуществуют четыре конфигурации: Бухгалтерия 2.0, УТ, ЗУП, Аренда. Некоторые из них с доработками, поэтому воспользоваться стандартными средствами обмена между типовыми конфигурациями оказалось невозможно. Правила были созданы в «Конвертации данных». И хотя обработкой «Универсальный обмен данными в формате XML» пользоваться просто и удобно, но с таким количеством конфигураций становится обременительным ежедневно выполнять монотонные действия.

Итак, правила есть, обработка, которая их запускает – тоже. Осталось найти способ запустить «Универсальный обмен …» из командной строки, по расписанию. Вот что получилось:

Это сама команда, которую записываем в cmd-файл и ставим в планировщик заданий ОС «ПускВсе программыСтандартныеСлужебныеПланировцик заданий»:

 

  

После ключа EXECUTE указываем внешнюю обработку, в которой подробно описано с какими настройками запустить на выполнение, в данном случае, «Универсальный обмен данными в формате XML», а можно и любую другую (например, групповое перепроведение).

 Пример обработки:

 Обработка «ИсточникТорговля.epf» без формы, код в модуле объекта.

 

 

Аналогичным образом выгружаю документы из Аренды в БП.

 

После всех обменов, запускаю типовую обработку «Групповое перепроведение документов». Перепровожу документы текущего, не закрытого для изменений, месяца, чтобы восстановить последовательность, нарушение которой может произойти как в результате проведения документов при обмене, так и в результате ошибок в работе пользователей. Таким образом, все описанные действия, т.е. два обмена и перепроведение, помещаем в cmd-файл, называем его, например, «Ночь» и ставим в планировщик заданий.

 

Командный файл Ночь:

 

Где Перепроведение.epf – внешняя обработка без формы, с кодом в модуле объекта:   

 

 

 

Остается только, приходя на работу, заглянуть в протокол, в командной строке он указан после параметра «OUT».

В управляемом приложении все еще проще.

Во вложении находится обработка, которая, в качестве примера, выполняет обмен между БП3 и ЗУП3.

Откройте обработку в конфигураторе, измените на реальные такие данные как: расположение своих баз, пользователь и пароль, пути к файлам с правилами обмена и протокола. Задайте свое наименование и описание в функции "СведенияОВнешнейОбработке".

Обработка без формы, весь код в модуле объекта.

В пользовательском режиме добавьте обработку как дополнительную:

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

 

Использованные материалы:          

http://kb.mista.ru/article.php?id=340

http://kb.mista.ru/article.php?id=338

//infostart.ru/public/86109/

 

 

 

18 Comments

  1. crazyber

    Интересно, но гораздо проще план обмена использовать, меньше кодить 😀

    Reply
  2. Anna_A

    Опыта нет. Разбиралась параллельно и с тем и с этим. Данный вариант получился быстрее, но попытки настроить план обмена не оставлены.

    Reply
  3. spa07

    План обмена вряд чем то может помочь….Разве что через план обмена можно отследить измененные данные и выгружать только их…

    А автоматизировать обмен, чтобы не заморачиваться с планировщиком, через можно через Регламентные Задания…

    Reply
  4. bomba

    (1) Полноценно и с условием «меньше кодить» можно реализовать в 8.2, точнее в конфигурациях на базе стандартных подсистем, туда можно уже правила обмена свои полноценно подгружать. В конфигурациях 8.1 и портированных с 8.1 кодить однозначно больше.

    ЗЫ: Автор — молодец. Голова варит — успех в карьере обеспечен )

    Reply
  5. crazyber

    в 8.1 в типовых конфигурациях все уже сделано для этого, нужно только написать правила обмена, и создать два плана обмена с одинаковым именем в разных конфигурациях, ну и поставить регистрацию для объектов которые надо грузить. Механизм проверенный работает больше года в автоматическом режиме выгрузка из БП в Комплекную автоматизацию.

    Reply
  6. spa07

    Разобрался с механизмом обмена который есть в типовых конфигурациях с использованием своих загруженных правил обмена…В принципе довольно не сложно, функций много, вплоть до обмена через http://ftp... Пока обнаружены следующие (в моем случае серьезные) недостатки по сравнению с использованием обработки «Универсальный обмен данными в формате XML»:

    — нет возможности использования параметров даты начала выгрузки и даты конца, а также других параметров, которые есть в обработке на закладке «параметры выгрузки». Из за этого, в моем случае, прийдется серьезно переписывать существующие правила обмена, которые до этого долгое время успешно работали с помощью ручного использования этой обработки…

    — нет возможности обмениваться всеми данными (т.е. отключить план обмена), обмениваются только зарегистрированные данные

    Т.е. в моем случае автоматизация изложенная здесь более приемлимый вариант …

    Reply
  7. soba

    Давно искал такое. Думал уже так же5 лезть ковырять обмен. Молодца!

    Reply
  8. FaKer1980

    Настроил 3 Отмена с УТ и БСО , и один с УТ с Бух 7.7. Спасибо очень помогла ваша обработка.

    Reply
  9. OrsoBear

    Отличное решение! Спасибо, то, что надо!

    Reply
  10. Denis_Viktorovich

    Обработка авто вызовы «Универсальный обмен данными в формате XML» для бухгалтерии 3.0 управляемая форма.

    Reply
  11. trancelover

    Спасибо за идею, начну отлаживать обмен по данной схеме БП2.0 — ЕРП 2.0, посмотрим что получится.

    Reply
  12. mbfg@tut.by

    Механизм обмена который есть в типовых конфигурациях с использованием своих загруженных правил обмена имеет ограничения. Например правила обмена не должно быть правилом со способом выборки «произвольный запрос», а бывает что надо! Так что описанный выше вариант вполне толковый!!!

    Reply
  13. mbfg@tut.by

    Анна, приходилось использовать такой подход как Вы предлагаете. А вот тоже очень достойный https://infostart.ru/public/151693/. Только я вызываю в правиле сразу «УниверсальныйОбменДаннымиXML», т.е. без вызова промежуточной внешней обработки.

    Reply
  14. Anna_A

    Это был самый первый опыт общения с 1с, еще на платформе 8.1

    Сейчас уже можно сделать все иначе.

    Планировщиков ОС не нужно, дополнительные обработки сами запускаются по расписанию.

    Уже давно для обменов пишу доп. обработки без формы, с кодом в модуле объекта, и подключаю к конфигурации в пользовательском режиме с настройкой расписания.

    С момента публикации прошло уже семь лет. Как время бежит!

    Reply
  15. razmochaev

    (15) Добрый день, Анна.

    При попытке открыть эту обработку из БП (3.0.64.54), открывается пустая форма и ничего не происходит. В чем может быть причина?

    Reply
  16. Anna_A

    _

    Reply
  17. Anna_A

    (16) В том, что это не управляемая форма.

    Обработку надо оформить как дополнительную, и запускать ее по расписанию внутри конфигурации. Планировщик операционной системы уже не нужен. С 2011 года, когда была написана эта статья, многое изменилось.

    Попробуете?

    Если нужна помощь, спрашивайте.

    Reply
  18. bmk74

    (13)

    Например правила обмена не должно быть правилом со способом выборки «произвольный запрос», а бывает что надо!

    С какого перепугу не должно быть ?

    С БСП обменивайся не хочу…так как там уже в конфигурации есть обработка по типу универсального обмена, с доработками

    Reply

Leave a Comment

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