Работа с планом обмена
Как вручную зарегистрирвоать изменение объекта
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");Если ЗначениеЗаполнено(УзелОбмена) Тогда ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Объект);КонецЕсли;
Как создать сообщение обмена
// 0. Создаем объект ЗаписьXML для формирования XML-файлаПутьКФайлуСообщения = "S:\Exchange\Message_ИС_ПР.xml";ЗаписьXML = Новый ЗаписьXML();ЗаписьXML.ОткрытьФайл(ПутьКФайлуСообщения); // Или Запись.УстановитьСтроку()
// 1. Создаем объект "ЗаписьСообщенияОбмена"ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
// 2. Начинаем запись сообщения обмена для выбранного узла в файл XMLЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);
// 3. Выбираем измененияВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
// 4. Записываем изменения в файл XMLПока ВыборкаИзменений.Следующий() Цикл Данные = ВыборкаИзменений.Получить(); ЗаписатьXML(ЗаписьXML, Данные);КонецЦикла;
// 5. Заканчиваем запись сообщения обменаЗаписьСообщения.ЗакончитьЗапись();
Как прочитать сообщение обмена в другой базе
В базе приемнике должен быть создан такой же план обмена
Как прочитать изменения, зарегистрированные в плане обмена
С присваиванием номера сообщения
// См. описание в синтакс-помощникеВыборка = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
Просто запросом
УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Запрос = Новый Запрос;Запрос.УстановитьПараметр("Узел", УзелОбмена);Запрос.Текст ="ВЫБРАТЬ| КонтрагентыИзменения.Узел КАК Узел,| КонтрагентыИзменения.НомерСообщения КАК НомерСообщения,| КонтрагентыИзменения.Ссылка КАК Ссылка|ИЗ| Справочник.Контрагенты.Изменения КАК КонтрагентыИзменения|ГДЕ| КонтрагентыИзменения.Узел = &Узел";
РезультатЗапроса = Запрос.Выполнить();Выборка = РезультатЗапроса.Выбрать();Пока Выборка.Следующий() Цикл Сообщение = Новый СообщениеПользователю; Сообщение.Текст = Выборка.Ссылка; Сообщение.Сообщить();КонецЦикла;
Как удалить регистрацию объекта из плана обмена
// См. описание в синтакс-помощникеПланыОбмена.УдалитьРегистрациюИзменений(<Узлы>, <Данные>);