По одному из заданий мне требовалось создать автообмен между базами ЗУП 2.5 (Зарплата и Управление Персоналом) и Документооборот, причем обмен должен выполняться ежедневно, но только измененными объектами. Создав и отладив правила обмена при помощи конфигурации КД 2.1 (Конвертация данных), я попытался создать узел обмена и настроить его типовым образом, но при обмене (при получении выгрузки в базе Документооборота) получил ряд ошибок в ЖР и стал разбираться, в чем причина. Причиной ошибок явилось несоответствие версий файлов обмена. В базе Документооборота обмены работают при помощи БСП, поэтому я решил в ЗУП также организовать обмен при помощи БСП, благо, что БСП в ЗУПе уже присутствует.
Поскольку мне пришлось разрабатывать правила обмена, то их надо было где-то хранить. Покопав код БСП в ЗУПе, я обнаружил, что можно правила обмена сохранить в макете узла обмена. Этим я и воспользовался (Рисунок 1).
Но для использования этих правил – загрузки их в нужный регистр БСП ПравилаДляОбменаДанными, пришлось создать форму списка для моего узла обмена, добавив в нее кнопку с командой: «Обновить правила»:
Процедура ДействияФормыЗагрузитьПравила(Кнопка)
Узел = ЭлементыФормы.ПланОбменаСписок.ТекущаяСтрока;
ИмяПланаОбмена = Узел.Метаданные().Имя;
Отказ = Ложь;
СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("ИмяПланаОбмена", ИмяПланаОбмена);
СтруктураЗаписи.Вставить("ВидПравил", Перечисления.ВидыПравилДляОбменаДанными.ПравилаКонвертацииОбъектов);
СтруктураЗаписи.Вставить("ИмяМакетаПравил", "ПравилаОбмена");
СтруктураЗаписи.Вставить("ИсточникПравил", Перечисления.ИсточникиПравилДляОбменаДанными.МакетКонфигурации);
СтруктураЗаписи.Вставить("ИспользоватьФильтрВыборочнойРегистрацииОбъектов", Ложь);
// получаем набор записей регистра
НаборЗаписей = ОбменДаннымиСервер.СоздатьНаборЗаписейРегистраСведений(СтруктураЗаписи, "ПравилаДляОбменаДанными");
// добавляем только одну запись в новый набор записей
НоваяЗапись = НаборЗаписей.Добавить();
// заполняем значения свойств записи из структуры
ЗаполнитьЗначенияСвойств(НоваяЗапись, СтруктураЗаписи);
// Загружаем правила для обмена данными в ИБ
РегистрыСведений.ПравилаДляОбменаДанными.ЗагрузитьПравила(Отказ, НаборЗаписей[0]);
Если Не Отказ Тогда
НаборЗаписей.Записать();
КонецЕсли;
КонецПроцедуры
Теперь остался лишь шаг – создать сценарий обмена. Он прописывается в справочнике: СценарииОбменовДанными (Рисунок 2).
Параметры подключения настраиваются ПКМ и выбором одноименного меню.
Сами обмены можно выполнять руками: кнопка Выполнить сценарий, - или создать расписание.