Как настроить автоматический обмен данными по правилам конвертации между УТ 11 и КА 1.1?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

Когда правила выгрузки и загрузки данных успешно созданы в конфигурации «Конвертация данных 2.1» и протестированы вручную через обработку УниверсальныйОбменДаннымиXML, встает задача полной автоматизации этого процесса. Выполнять обмен вручную неудобно, поэтому разберем, какие штатные и программные механизмы платформы «1С:Предприятие» позволяют запускать перенос данных по расписанию без участия пользователя.

Проанализируем технические особенности двух взаимодействующих систем. «Управление торговлей 11.1» (УТ 11) базируется на Библиотеке стандартных подсистем (БСП) и управляемом интерфейсе, в то время как «Комплексная автоматизация 1.1» (КА 1.1) построена на классической архитектуре обычных форм толстого клиента. Из-за этого подходы к настройке регламентных процедур в них различаются.

Вариант 1. Использование штатных планов обмена с подменой правил

Самый надежный способ автоматизации — использование встроенных планов обмена. Сама по себе обработка УниверсальныйОбменДаннымиXML не умеет регистрировать изменения (дельту). Если автоматизировать только её, при каждом запуске придется выгружать либо всю базу, либо передавать параметры периода, что серьезно нагружает систему. Штатные планы обмена отслеживают только измененные объекты и содержат встроенное расписание.

Рассмотрим по шагам, как настроить автоматический обмен через типовые механизмы:

  1. Настройка в Комплексной автоматизации 1.1: перейдем в меню Сервис → Прочие обмены данными → Все настройки обмена данными. Создадим новую настройку обмена. В карточке обмена укажем узел плана обмена и переключим источник правил на загрузку из внешнего XML-файла. На вкладке Автоматический обмен настроим расписание регламентного задания, которое будет инициировать фоновую выгрузку или загрузку.
  2. Настройка в Управлении торговлей 11.1: откроем раздел НСИ и администрирование → Синхронизация данных. Создадим новую синхронизацию (или выберем существующую с КА 1.1). Через параметры подключения выберем пункт Загрузить правила из файла и укажем сформированный в КД 2.1 файл правил конвертации. В форме синхронизации перейдем по гиперссылке Расписание и зададим периодичность выполнения (например, каждые 15 минут).

Вариант 2. Запуск универсального обмена через дополнительную обработку

Если по каким-то причинам использовать планы обмена невозможно (например, конфигурации полностью сняты с поддержки или не регистрируют нужные типы данных), автоматизацию можно выстроить вокруг вызова самой обработки УниверсальныйОбменДаннымиXML.

Разберем создание управляющей внешней обработки, которую можно поместить в справочник ДополнительныеОтчетыИОбработки (в УТ 11) и привязать к ней регламентное задание. В модуле объекта внешней обработки опишем алгоритм программного заполнения реквизитов и запуска выгрузки:


Функция ВыполнитьВыгрузкуПоПравилам(ПутьКФайлуПравил, ПутьКФайлуДанных) Экспорт
    ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
    ОбработкаОбмена.ИмяФайлаПравил = ПутьКФайлуПравил;
    ОбработкаОбмена.ИмяФайлаВнешнейОбработки = "";
    ОбработкаОбмена.ИмяФайлаДанных = ПутьКФайлуДанных;
    ОбработкаОбмена.РежимОбмена = "Выгрузка";
    
    // Загружаем правила в память
    ОбработкаОбмена.ЗагрузитьПравилаОбмена();
    
    // При необходимости можно программно передать параметры
    // ОбработкаОбмена.Параметры.Вставить("ОрганизацияПоУмолчанию", ВыбОрганизация);
    
    // Запуск процесса выгрузки данных
    ОбработкаОбмена.ВыполнитьВыгрузку();
    
    Возврат Истина;
КонецФункции

Для загрузки в принимающей базе создается аналогичный метод, где свойство РежимОбмена принимает значение "Загрузка", а процедура выгрузки заменяется на вызов метода ВыполнитьЗагрузку().

Вариант 3. Автоматизация через Планировщик заданий Windows

Если база работает в файловом режиме, фоновые задания не запускаются автономно при отсутствии активных пользовательских сеансов. В таких случаях обмен настраивается через планировщик операционной системы:

  1. Создается командный файл .bat, запускающий исполняемый файл платформы 1cv8.exe.
  2. В строке запуска передаются параметры подключения к информационной базе, пользователь, пароль, а также ключ /Execute с указанием пути к внешней обработке обмена: "C:\Program Files\1cv8\common\1cv8.exe" ENTERPRISE /F "C:\Bases\UT" /N "ExchangeUser" /P "Password" /Execute "C:\Scripts\RunExchange.epf".
  3. В модуле управляющего приложения или при открытии формы внешней обработки инициируется обмен, после чего вызывается метод ЗавершитьРаботуСистемы(Ложь), чтобы освободить лицензию и завершить сеанс.

Важные технические ограничения фонового режима

При настройке регламентного обмена необходимо учитывать специфику работы серверного контекста:

  1. Права доступа системной службы: в клиент-серверном варианте код регламентного задания выполняется на стороне сервера от имени системной учетной записи (обычно USR1CV8). У этой учетной записи обязательно должны быть права на чтение правил и запись результирующего XML-файла в каталог обмена.
  2. Использование UNC-путей: сетевые диски, подключенные пользователю (например, Z:\Exchange), службе сервера «1С» недоступны. Все пути к каталогам и файлам обмена следует прописывать исключительно в сетевом формате \\server\share\exchange.xml.
  3. Отсутствие клиентских вызовов: код обработки, запускаемый регламентным заданием, не должен содержать интерактивных методов: Предупреждение(), Вопрос() или обращений к элементам управляемых форм. Любой подобный вызов приведет к аварийному завершению фонового задания с ошибкой модальности.
← На главную