Имя: Пароль:
1C
1С v8
Вопрос по плану обмена.
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
Спасибо за советы! Буду читать проф. разработку
AdBlock убивает бесплатный контент. 1Сергей