База1 - Филиал. Там я создаю план обмена. Потом захожу в отладчик и в плане обмена завожу два элемента: на скрине ниже:

А сам план обмена имеет имя ОбменСЦО (обмен с центральным офисом). Состав его, я определяю, как, все справочники и 1 документ, который нужно перенести (Авторегистрация у них везде стоит "разрешить"). Далее в этом плане обмене я перехожу на вкладку прочие. И там модуль объекта и ввожу такой код.
Перем РегистрацияВНовыйУзел Экспорт;
Процедура ПриЗаписи(Отказ)
Если РегистрацияВНовыйУзел Тогда
// Регистрация изменений всех данных для узла
ПланыОбмена.ЗарегистрироватьИзменения(Ссылка);
КонецЕсли;
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
РегистрацияВНовыйУзел = ЭтоНовый();
КонецПроцедуры
После этого, я создаю обработку с кнопкой выгрузить. Так в этой обработке по кнопке события
&НаКлиенте
Процедура ЗапуститьВыгрузкуXML(Команда)
ОбработаемВыгрузкуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОбработаемВыгрузкуНаСервере()
ВыборкаУзлов = ПланыОбмена.ОбменСЦО.Выбрать();
Пока ВыборкаУзлов.Следующий() Цикл
// Произвести обмен данными со всеми узлами, кроме текущего (ЭтотУзел) и кроме тех у
//которых нет галочки быстрого отключения обмена
Если ВыборкаУзлов.Ссылка <> ПланыОбмена.ОбменСЦО.ЭтотУзел() И ВыборкаУзлов.ВыполнятьОбмен = Истина Тогда
УзелОбъекта = ВыборкаУзлов.ПолучитьОбъект();
// Сформировать сообщение
УзелОбъекта.ЗаписатьСообщениеСИзменениями();
КонецЕсли;
КонецЦикла;
КонецПроцедуры // ОбработаемВыгрузкуНаСервере();¶()
Далее переходим по процедуре, которая находится также в модуле объекта Плана обмена.
Цитата
УзелОбъекта.ЗаписатьСообщениеСИзменениями();
Процедура ЗаписатьСообщениеСИзменениями() Экспорт
Сообщить("-------- Выгрузка в узел " + Строка(ЭтотОбъект) + " ---------");
Каталог = КаталогВременныхФайлов();
// Сформировать имя временного файла
ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\","", "\") + "Message"
+ СокрЛП(ПланыОбмена.ОбменСЦО.ЭтотУзел().Код) + "_" +
СокрЛП(Ссылка.Код) + ".xml";
// Создать объект записи XML
// *** Запись XML-документов
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайла);
ЗаписьXML.ЗаписатьОбъявлениеXML();
// *** Инфраструктура сообщений
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка);
Сообщить("Номер сообщения: " + ЗаписьСообщения.НомерСообщения);
// Получить выборку измененных данных
// *** Механизм регистрации изменений
ВыборкаИзменений =ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель,
ЗаписьСообщения.НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
// Записать данные в сообщение
// *** XML-сериализация
ЗаписатьXML(ЗаписьXML, ВыборкаИзменений.Получить());
КонецЦикла;
ПланыОбмена.УдалитьРегистрациюИзменений(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
ЗаписьСообщения.ЗакончитьЗапись();
ЗаписьXML.Закрыть();
Сообщить("-------- Конец выгрузки------------");
КонецПроцедуры
Все, после всех этих махинации, документ выгрузился.
Далее беру копию своей базы.. Называем ее ЦентральныйОфис. И делаю те же самые махинации Только Завожу другой План обмена - называется обмен с филиалами. Завожу в нем те же 2 элемента как на первой картинке... только элементы меняю местами. и в обработке завожу кнопку с кодом которая обращается как и в первом случае в модуль объекта плана обмена только на чтение XML файла:
Процедура ПрочитатьСообщениеСИзменениями() Экспорт
Каталог = КаталогВременныхФайлов();
// Сформировать имя файла
ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\", "", "\") + "Message"
+ СокрЛП(Ссылка.Код) + "_" +
СокрЛП(ПланыОбмена.ОбменСЦО.ЭтотУзел().Код) + ".xml";
Файл = Новый Файл(ИмяФайла);
Если Не Файл.Существует() Тогда
Возврат;
КонецЕсли;
// *** Чтение документов XML
// Попытаться открыть файл
ЧтениеXML = Новый ЧтениеXML;
Попытка
ЧтениеXML.ОткрытьФайл(ИмяФайла);
Исключение
Сообщить("Невозможно открыть файл обмена данными.");
Возврат;
КонецПопытки;
Сообщить("-------- Загрузка из " + Строка(ЭтотОбъект) + "------------");
Сообщить(" - Считывается файл " + ИмяФайла);
// Загрузить из найденного файла
// *** Инфраструктура сообщений
ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
// Читать заголовок сообщения обмена данными - файла XML
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
// Сообщение предназначено не для этого узла
Если ЧтениеСообщения.Отправитель <> Ссылка Тогда
ВызватьИсключение "Неверный узел";
КонецЕсли;
// Удаляем регистрацию изменений
// для узла отправителя сообщения
// *** Служба регистрации изменений
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель,ЧтениеСообщения.НомерПринятого);
// Читаем данные из сообщения
// *** XML-сериализация
Пока ВозможностьЧтенияXML(ЧтениеXML) Цикл
// Читаем очередное значение
Данные = ПрочитатьXML(ЧтениеXML);
// Записать полученные данные
Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
Данные.ОбменДанными.Загрузка = Истина;
Данные.Записать();
КонецЦикла;
ЧтениеСообщения.ЗакончитьЧтение();
ЧтениеXML.Закрыть();
УдалитьФайлы(ИмяФайла);
Сообщить("-------- Конец загрузки------------");
КонецПроцедуры
И вот тут самое главное когда нажимаю считать файл то доходя до этого момент он не находи файл.
Каталог = КаталогВременныхФайлов();
// Сформировать имя файла
ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\", "", "\") + "Message"
+ СокрЛП(Ссылка.Код) + "_" +
СокрЛП(ПланыОбмена.ОбменСЦО.ЭтотУзел().Код) + ".xml";
Файл = Новый Файл(ИмяФайла);
Если Не Файл.Существует() Тогда
Возврат;
КонецЕсли;
Хочу спросить..ЧТО НЕ ТАК Я ДЕЛАЮ???? почему не находится файл.
Ладно... далее я его переименовывают и когда он доходит до этого момента
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
он пишет
Цитата
{ПланОбмена.ЦкнтральныйОфис.МодульОбъекта(76)}: Ошибка при вызове метода контекста (НачатьЧтение)
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
по причине:
Неизвестный получатель
ЧтениеСообщения.НачатьЧтение(ЧтениеXML);
по причине:
Неизвестный получатель
В общем куда копать даже не знаю.