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