В руководстве администратора по "Менеджеру обмена данными" (далее МОДу) описан способ настройки автоматического обмена с обработкой ожидания.
Мы рассмотрим другой способ - с помощью создания задания обмена по расписанию (в планировщике заданий Windows) и создания дополнительной обработки.
Итак, создаем служебного пользователя, допустим RobotMOD, назначаем ему пароль. Создаем задание по расписанию в назначенных заданиях: старт 1С в режиме предприятия, например, каждые 10 минут от имени пользователя RobotMOD.
Например, мы создаем обмен для базы торговли, которая обменивается с базами бухгалтерии и склада.
В глобальный модуль, в процедуру стар_ПриНачалеРаботыСистемы() конфигурации торговли добавляем следующий код:
Если ИмяПользователя() = "RobotMOD" Тогда ОткрытьФорму("Обработка.ОбменМОД", 1); ЗавершитьРаботуСистемы(0); Возврат; КонецЕсли;
Создаем обработку ОбменМОД в конфигурации торговли со следующим кодом:
Процедура ПриОткрытии() СтатусВозврата(0); Если ПустоеЗначение(Форма.Параметр) = 1 Тогда Предупреждение("Это служебная обработка обмена МОД", 20); Возврат; КонецЕсли; Спр = СоздатьОбъект("Справочник.ПериферийныеБазы"); Спр.НайтиПоРеквизиту("IDD","1234567",0); // необходимо вставить сюда значение константы IDD базы бухгалтерии СписокПараметров = СоздатьОбъект("СписокЗначений"); СписокПараметров.ДобавитьЗначение("Ручное открытие", "Команда"); СписокПараметров.ДобавитьЗначение(Спр.ТекущийЭлемент(), "База"); ОткрытьФорму("Обработка.ОбменДанными#", СписокПараметров); Спр = СоздатьОбъект("Справочник.ПериферийныеБазы"); Спр.НайтиПоРеквизиту("IDD","1234568",0); // необходимо вставить сюда значение константы IDD базы склада СписокПараметров = СоздатьОбъект("СписокЗначений"); СписокПараметров.ДобавитьЗначение("Ручное открытие", "Команда"); СписокПараметров.ДобавитьЗначение(Спр.ТекущийЭлемент(), "База"); ОткрытьФорму("Обработка.ОбменДанными#", СписокПараметров); КонецПроцедуры // ПриОткрытии()
Обработка должна иметь кнопку или текст на форме для того чтобы происходило ее открытие.
Далее немного модифицируем код процедуры ПриОткрытии() обработки ОбменДанными в конфигурации торговли:
ИначеЕсли Сокрлп(Команда)="Ручное открытие" Тогда База=Форма.Параметр.Получить("База"); Форма.IDD.Доступность(0); Форма.ИспользоватьЗакладки(1); Форма.Закладки.УдалитьВсе(); ЕстьВыгрузкаЗагрузка(); ОбъектыВыборочнойВыгрузки(); УстановитьБазу(База); Сформировать(); //1c911.by, добавляем вот эту строку СтатусВозврата(1); Возврат;
Сохраняем конфигурацию торговли и проделываем то же самое с двумя другими конфигурациями.
Другие статьи по МОДу: