Кому не итересно читать дальше, суть механизма:
Все построено на обмене. Создается обмен данными, по ПРАВИЛАМ!!!. Добавляется правила, у которых в событии ПослеЗагрузкиПравилОбмена создается обработка и вызывается экпортная процедура. А в обработоке чего душа желает. Вот.
Теперь по порядку:
1. Добавляем настройку:
В краце по полям:
Наименование - понятно
Узел - не принципиально
Тип обмена - Обмен через файловый ресурс (с другими не пробывал)
Каталог - При обменение через файловый ресурс, в этот каталог будут валится сообщения обмена.
Все остальные поля не принципиальны.
2. Вобщем то сами правила. - В них вся соль :)
'
'2.01
'4279b494-5374-4cb7-964a-a93a7171dfcf
'Отчет По Дебиторке
'2012-03-02T20:23:53
'<Источник ВерсияПлатформы="8.0" ВерсияКонфигурации="1.3.22.1" СинонимКонфигурации="Управление производственным предприятием, редакция 1.3">УправлениеПроизводственнымПредприятием
'<Приемник ВерсияПлатформы="8.0" ВерсияКонфигурации="1.3.22.1" СинонимКонфигурации="Управление производственным предприятием, редакция 1.3">УправлениеПроизводственнымПредприятием
'
//Способ получаения обработки выбирайте сами, кому что больше нравится. Я лично предпочитаю использовать подключенные обработки в базу (надежнее) В прикрепленных файлах - правила для загрузки обработки с диска.
КодОбработки = "100000009";
ИмяСобытия = "Автоотчет";
Ссылка = Справочники.ВнешниеОбработки.НайтиПоКоду(КодОбработки);
Если НЕ Ссылка.Пустая() Тогда
Попытка
ИмяФайла = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = Ссылка.ХранилищеВнешнейОбработки.Получить();
ДвоичныеДанные.Записать(ИмяФайла);
ВнешнаяОбработка = ВнешниеОбработки.Создать(ИмяФайла, Ложь); // БезопасныРежим ложь, иначе файл не создаст
ВнешнаяОбработка.Тест(); //Эскпортная функция/процедура в модуле обработки
//Ответ = ВнешнаяОбработка.Тест(); - Это если необходимо, что то возвращать
//Если Ответ Тогда
// ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация, , ,"Отчет выполнен успешно.");
//Иначе
// ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ,"Ошибка формирования и отправки отчета.");
//КонецЕсли;
Исключение
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ,"Ошибка запуска обработки.");
КонецПопытки;
//СтандартнаяОбработка = Ложь;
Иначе
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , ,"Не найдена обработка с кодом " + КодОбработки);
КонецЕсли;
'
'
'
'
'
'
'
'
'
Эти правила необходимо загрузить в обмен (кнопочка открыть и записать :))
3. Далее необходимо настроить запуск обмена:
Вкалдка "Автоматический обмен". Доавбялем настройку. Ставим расписание запуска. ВАЖНЫЙ МОМЕНТ: В выполняемых действиях (второй прямоугольник на скрине ниже) необходимо добавить выгрузку данных.
4. Про обработку: Тут никаких особенностей нет. Важно понимать, где будет выполнятся процедура сервер/клиент - Вобщем использывать провильные методы.
В итоге: По расписанию запускается выполнение обмена. Грузятнся правила, там событие... Обработка ... Выгружать нечего. В Каталог калдется файл сообщения обмена.
Данный механизм прекрасно работает в УПП (1_3_20_1 и выше) и БП (2_0_30_8 и выше). По сути будет работать в любой типовой конфе, где есть обмены.