Skip to content

Работа с планом обмена

Как вручную зарегистрирвоать изменение объекта

УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Если ЗначениеЗаполнено(УзелОбмена) Тогда
ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Объект);
КонецЕсли;

Как создать сообщение обмена

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

Как прочитать сообщение обмена в другой базе

В базе приемнике должен быть создан такой же план обмена

Как прочитать изменения, зарегистрированные в плане обмена

С присваиванием номера сообщения

// См. описание в синтакс-помощнике
Выборка = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);

Просто запросом

УзелОбмена = ПланыОбмена.ОбменИсточникПриемник.НайтиПоКоду("ПР");
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Узел", УзелОбмена);
Запрос.Текст =
"ВЫБРАТЬ
| КонтрагентыИзменения.Узел КАК Узел,
| КонтрагентыИзменения.НомерСообщения КАК НомерСообщения,
| КонтрагентыИзменения.Ссылка КАК Ссылка
|ИЗ
| Справочник.Контрагенты.Изменения КАК КонтрагентыИзменения
|ГДЕ
| КонтрагентыИзменения.Узел = &Узел";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = Выборка.Ссылка;
Сообщение.Сообщить();
КонецЦикла;

Как удалить регистрацию объекта из плана обмена

// См. описание в синтакс-помощнике
ПланыОбмена.УдалитьРегистрациюИзменений(<Узлы>, <Данные>);