Когда правила выгрузки и загрузки данных успешно созданы в конфигурации «Конвертация данных 2.1» и протестированы вручную через обработку УниверсальныйОбменДаннымиXML, встает задача полной автоматизации этого процесса. Выполнять обмен вручную неудобно, поэтому разберем, какие штатные и программные механизмы платформы «1С:Предприятие» позволяют запускать перенос данных по расписанию без участия пользователя.
Проанализируем технические особенности двух взаимодействующих систем. «Управление торговлей 11.1» (УТ 11) базируется на Библиотеке стандартных подсистем (БСП) и управляемом интерфейсе, в то время как «Комплексная автоматизация 1.1» (КА 1.1) построена на классической архитектуре обычных форм толстого клиента. Из-за этого подходы к настройке регламентных процедур в них различаются.
Самый надежный способ автоматизации — использование встроенных планов обмена. Сама по себе обработка УниверсальныйОбменДаннымиXML не умеет регистрировать изменения (дельту). Если автоматизировать только её, при каждом запуске придется выгружать либо всю базу, либо передавать параметры периода, что серьезно нагружает систему. Штатные планы обмена отслеживают только измененные объекты и содержат встроенное расписание.
Рассмотрим по шагам, как настроить автоматический обмен через типовые механизмы:
Если по каким-то причинам использовать планы обмена невозможно (например, конфигурации полностью сняты с поддержки или не регистрируют нужные типы данных), автоматизацию можно выстроить вокруг вызова самой обработки УниверсальныйОбменДаннымиXML.
Разберем создание управляющей внешней обработки, которую можно поместить в справочник ДополнительныеОтчетыИОбработки (в УТ 11) и привязать к ней регламентное задание. В модуле объекта внешней обработки опишем алгоритм программного заполнения реквизитов и запуска выгрузки:
Функция ВыполнитьВыгрузкуПоПравилам(ПутьКФайлуПравил, ПутьКФайлуДанных) Экспорт
ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
ОбработкаОбмена.ИмяФайлаПравил = ПутьКФайлуПравил;
ОбработкаОбмена.ИмяФайлаВнешнейОбработки = "";
ОбработкаОбмена.ИмяФайлаДанных = ПутьКФайлуДанных;
ОбработкаОбмена.РежимОбмена = "Выгрузка";
// Загружаем правила в память
ОбработкаОбмена.ЗагрузитьПравилаОбмена();
// При необходимости можно программно передать параметры
// ОбработкаОбмена.Параметры.Вставить("ОрганизацияПоУмолчанию", ВыбОрганизация);
// Запуск процесса выгрузки данных
ОбработкаОбмена.ВыполнитьВыгрузку();
Возврат Истина;
КонецФункции
Для загрузки в принимающей базе создается аналогичный метод, где свойство РежимОбмена принимает значение "Загрузка", а процедура выгрузки заменяется на вызов метода ВыполнитьЗагрузку().
Если база работает в файловом режиме, фоновые задания не запускаются автономно при отсутствии активных пользовательских сеансов. В таких случаях обмен настраивается через планировщик операционной системы:
.bat, запускающий исполняемый файл платформы 1cv8.exe./Execute с указанием пути к внешней обработке обмена: "C:\Program Files\1cv8\common\1cv8.exe" ENTERPRISE /F "C:\Bases\UT" /N "ExchangeUser" /P "Password" /Execute "C:\Scripts\RunExchange.epf".ЗавершитьРаботуСистемы(Ложь), чтобы освободить лицензию и завершить сеанс.При настройке регламентного обмена необходимо учитывать специфику работы серверного контекста:
USR1CV8). У этой учетной записи обязательно должны быть права на чтение правил и запись результирующего XML-файла в каталог обмена.Z:\Exchange), службе сервера «1С» недоступны. Все пути к каталогам и файлам обмена следует прописывать исключительно в сетевом формате \\server\share\exchange.xml.Предупреждение(), Вопрос() или обращений к элементам управляемых форм. Любой подобный вызов приведет к аварийному завершению фонового задания с ошибкой модальности.