Имя: Пароль:
1C
 
групповая регистрация на обмен даных полученных запросом
,
0 baglandir111
 
07.02.20
12:48
Задача есть 400 000 записей "Договоров контрагентов" вытянутых запросом
Построчно пометка на обмен занимает 30 минут
Можно ли в 1С зарегистрировать на обмен колонку из запроса ?  
Сейчас так
    запрос.УстановитьПараметр ( "ДатаН", КонецДня(ТекущаяДата()) );
    результат = запрос.Выполнить ();
    выборка = результат.Выбрать () ;
    Сообщить ( "Сбор данных окончен: " + ТекущаяДата () );
    узел = ПланыОбмена.ОбменДМС.НайтиПоКоду ( "SQL" );
    
    пока ( выборка.Следующий () ) цикл
        Если   ЗначениеЗаполнено(выборка.Договор) Тогда
            ПланыОбмена.ЗарегистрироватьИзменения ( узел, выборка.Договор );
        КонецЕсли;
    конеццикла;


Хочу как то так :

запрос.УстановитьПараметр ( "ДатаН", КонецДня(ТекущаяДата()) );
    результат = запрос.Выполнить ().выгрузить();

    Сообщить ( "Сбор данных окончен: " + ТекущаяДата () );
    узел = ПланыОбмена.ОбменДМС.НайтиПоКоду ( "SQL" );
    
    
    ПланыОбмена.ЗарегистрироватьИзменения ( узел, результат.ВыгрузитьКолонку("Договор");


Можно ли так сделать ?
1 Ёпрст
 
07.02.20
12:58
(0) нет. Максимум, самому проапдейтить табличку изменений у объекта
2 Ёпрст
 
07.02.20
12:59
Если бы были все объекты, то там достаточно метаданные указать было бы, но у вас - коллекция ссылок
3 fisher
 
07.02.20
13:01
Не
4 pechkin
 
07.02.20
13:01
если тех что не надо сильно меньше, то можно зарегить все и удалить
5 fisher
 
07.02.20
13:03
Но 30 мин - это что-то дофига даже для 400 000.
Регай изменения пачками в одной транзакции. Это помогает при мелких транзакциях.
6 fisher
 
07.02.20
13:06
Ну, типа
КвоТранзакцийПачки = 100;
НомерТранзакции = 0;
НачатьТранзакцию();
Пока Выборка.Следующий() Цикл
    НомерТранзакции = НомерТранзакции + 1;
    Если НомерТранзакции % КвоТранзакцийПачки Тогда
         ЗафиксироватьТранзакцию();
         НачатьТранзакцию();
    КонецЕсли;
    ПланыОбмена.ЗарегистрироватьИзменения();
КонецЦикла;
ЗафиксироватьТранзакцию();
7 fisher
 
07.02.20
13:12
В принципе, для таблицы изменений размер пачки и до нескольких сотен можно свободно увеличивать. Там уже экспериментально.
8 baglandir111
 
07.02.20
13:20
(1) что вы имеете ввиду под словами самому проапдейтить таблицу ?
(6) интересное решение буду пробовать, благодарю
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.