Работа с Планом Обмена

Поиск и создание узла обмена для ПланаОбмена

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

Програмная поставка на регистрацию в плане обменов

Вариант 1

ПланыОбменаМенеджер.ЗарегистрироватьИзменения(Узел, Метаданные.Справочники.Номенклатура);

или

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

Для регистрации конкретных данных различных типов необходимо вызвать метод ЗарегистрироватьИзменения() менеджера планов обмена, передав ему в качестве параметра Данные либо сами данные, либо ссылку на них. Например

узел	=	ПланыОбмена.ОбменУправлениеТорговлей31Бухгалтерия20.НайтиПоНаименованию("Бухгалтерия для Украины, редакция 2.0");
ОбменДаннымиСобытия.ЗарегистрироватьИзмененияДанных(узел, Источник.ссылка, истина);

Вариант 2

Процедура ЗарегистрироватьВПланОбменОтметкиНДЗаказовКлиентовВБуХ(ТекущийЗаказ) Экспорт
ПланыОбмена.ЗарегистрироватьИзменения(ПолучитьУзелОбменаОтметокСБУХ(), ТекущийЗаказ);
КонецПроцедуры

Програмное чтение изменений с плана обмена

Вариант 1

Процедура ПолучитьИзПланаОбменаОтметкиНДЗаказовКлиентовВБуХ(ТекущийЗаказ) Экспорт
Узел = ПланыОбмена.ОтметкиНДЗаказовКлиентовВБуХ.НайтиПоНаименованию("ОтметкиНДЗаказовКлиентовВБуХ",Истина);
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ВременнаяЗаписьXML = Новый ЗаписьXML();
ВременнаяЗаписьXML.УстановитьСтроку();
ЗаписьСообщения.НачатьЗапись(ВременнаяЗаписьXML, Узел);
Выборка = ПланыОбмена.ВыбратьИзменения(Узел, ЗаписьСообщения.НомерСообщения);
ЗаписьСообщения.ЗакончитьЗапись();
КонецПроцедуры

Вариант 2 Для формирования запроса к объекту с изменениями через конструктор необходимо включить опцию отображения таблиц с изменениями

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

Функция ПолучитьУзелДляРегистрацииБУХ()
УзелБух	=	Неопределено;
ВыборкаУзлов	=	ПланыОбмена.ОбменЗУП21Бухгалтерия21.Выбрать();
Пока ВыборкаУзлов.Следующий() Цикл
Если ВыборкаУзлов.Ссылка=ПланыОбмена.ОбменЗУП21Бухгалтерия21.ЭтотУзел() Тогда
Продолжить;
КонецЕсли;
УзелБух	=	ВыборкаУзлов.Ссылка;
КонецЦикла;
Возврат УзелБух;
КонецФункции

Програмная очистка изменений с плана обмена

Процедура ОчиститьВПланОбменаОтметкиНДЗаказовКлиентовВБуХ(ТекущийЗаказ) Экспорт
Узел = ПланыОбмена.ОтметкиНДЗаказовКлиентовВБуХ.НайтиПоНаименованию("ОтметкиНДЗаказовКлиентовВБуХ",Истина);
ПланыОбмена.УдалитьРегистрациюИзменений(Узел,ТекущийЗаказ);
КонецПроцедуры