|
Вопрос по плану обмена. |
☑ |
0
oleg_prg
28.05.14
✎
12:46
|
Добрый день, уважаемые форумчане. Подскажите пожалуйста, как в плане обмена делать подмену(отсечение) данных? А именно: задача синхронизировать справочники номенклатура в разных конфигурациях. Справочники отличаются на одно поле Инфо тип строка. Вопрос: как отменить выгрузку этого поля, и как отказаться от выгрузки номенклатуры начинающейся, например, с буквы "А", как подправить код
Процедура ЗаписатьСообщениеСИзменениями() Экспорт
Сообщить("-------- Выгрузка в узел " + Строка(ЭтотОбъект) + " ---------");
Каталог = КаталогВременныхФайлов();
// Сформировать имя временного файла
ИмяФайла = Каталог +?(Прав(Каталог, 1) = "\","", "\") + "Message"
+ СокрЛП(ПланыОбмена.Филиалы.ЭтотУзел().Код) + "_" +
СокрЛП(Ссылка.Код) + ".xml";
// Создать объект записи XML
// *** Запись XML-документов
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайла);
ЗаписьXML.ЗаписатьОбъявлениеXML();
// *** Инфраструктура сообщений
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Ссылка);
Сообщить("Номер сообщения: " + ЗаписьСообщения.НомерСообщения);
// Получить выборку измененных данных
// *** Механизм регистрации изменений
ВыборкаИзменений =ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель,
ЗаписьСообщения.НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
// Записать данные в сообщение
// *** XML-сериализация
ЗаписатьXML(ЗаписьXML, ВыборкаИзменений.Получить());
КонецЦикла;
ЗаписьСообщения.ЗакончитьЗапись();
ЗаписьXML.Закрыть();
Сообщить("-------- Конец выгрузки------------");
КонецПроцедуры
Заранее спасибо!
PS
С планами обмена никогда не работал. Может у кого ссылки хорошие есть.
|
|
1
hhhh
28.05.14
✎
12:58
|
(0) ну, открываешь правила обмена, в событии ПередВыгрузкой справочника номенклатуры вставляешь
Если Лев(Источник.Наименование, 1) = "А" Тогда
Отказ = Истина;
КонецЕсли;
|
|
2
Godofsin
28.05.14
✎
13:00
|
Вариант 2: Отсекать на уровне регистрации в плане
|
|
3
Maxus43
28.05.14
✎
13:00
|
отказаться от передачи одного поля нельзя, сериализуется весь объект. Это надо делать правила обмена, и механизм там совершенно другой.
Пропустить выгрузку Объекта - можно в плане обмена в событии ПриОтправкеДанныхПодчинённому/Главному, но кошерней просто не регистрировать вобще такие элементы
(1) очевидно что у него не правила)
|
|
4
Maxus43
28.05.14
✎
13:04
|
ПланыОбмена.ЗаписатьИзменения(
есть, без выборки и странных строк типа
ЗаписатьXML(ЗаписьXML, ВыборкаИзменений.Получить());
|
|
5
Maxus43
28.05.14
✎
13:05
|
по поводу ссылок хороших - всё хорошо разжёвано в проф разработке, для начала самое то
|
|
6
oleg_prg
28.05.14
✎
13:10
|
Спасибо за советы! Буду читать проф. разработку
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой