Имя: Пароль:
1C
1С v8
Передавать Изменения без инфраструктуры сообщений
0 Mystical
 
08.04.13
14:57
Настроил в КД правила выгрузки контрагентов из одной базы в другую.Надо перадавать только измененные контрагенты. Соответственно создал планобмена. Но метод ВыратьИзменения возвращает пустую выборку.
Можно ли перадать измененные данные без инфраструктуры сообщений?
1 Mystical
 
08.04.13
14:58
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
   |    ОбменУАТ.Ссылка
   |ИЗ
   |    ПланОбмена.ОбменУАТ КАК ОбменУАТ
   |ГДЕ
   |    ОбменУАТ.Ссылка <> &Ссылка";
   
   Запрос.УстановитьПараметр("Ссылка", ПланыОбмена.ОбменУАТ.ЭтотУзел());
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       
       
       
       
       Узел = Выборка.Ссылка;
       Сч =0;
       ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(Узел,0);
       Пока ВыборкаИзменений.Следующий() Цикл
           
           Данные = ВыборкаИзменений.Получить();
           Сч = Сч+1;
       КонецЦикла;
   КонецЦикла;

    Сообщить(Строка(Сч));
2 Галахад
 
гуру
08.04.13
15:03
Наверное, проще зарегистрировать изменения.
3 Mystical
 
09.04.13
12:18
(2) Как Выбрать только измененные данные, а не полные данные по узлу
4 Mystical
 
09.04.13
12:21
Пишу так:

Состав = Узел.Метаданные().Состав;
Для каждого ЭлементаСостава Из Состав Цикл
          ПланыОбмена.ЗарегистрироватьИзменения(Узел, ЭлементаСостава.Метаданные);
         КонецЦикла;
ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(Узел,Узел.НомерОтправленного);
   Пока ВыборкаИзменений.Следующий() Цикл
       
       Данные = ВыборкаИзменений.Получить();
       Если ТипЗнч(Данные) = Тип("СправочникОбъект.Контрагенты") Тогда
           Сч1=Сч1+1;
       ИначеЕсли    ТипЗнч(Данные) = Тип("СправочникОбъект.ДоговорыКонтрагентов") Тогда
           Сч2=Сч2+1;
       ИначеЕсли    ТипЗнч(Данные) = Тип("СправочникОбъект.БанковскиеСчета") Тогда
           Сч3=Сч3+1;
       Иначе
           Сч4=Сч4+1
       КонецЕсли;
       
       
   КонецЦикла;
ПланыОбмена.УдалитьРегистрациюИзменений(Узел,Узел.НомерОтправленного);
УзелОбъект =    Узел.ПолучитьОбъект();
   //УзелОбъект.НомерОтправленного =УзелОбъект.НомерОтправленного+1;
   УзелОбъект.НомерОтправленного =УзелОбъект.НомерОтправленного+1;
   
   
   УзелОбъект.Записать();
5 Mystical
 
09.04.13
12:22
Все равно выгружаются все((((((