Имя: Пароль:
1C
1С v8
Внешняя обработка
,
0 galimovmaks
 
02.10.13
11:57
Следующая задача. в регистре сведений найти все записи у которых дата ввода меньше даты принятия. На СКД сделан весь отбор. в форме эту дату изменяю

Процедура ИзменитьНажатие(Кнопка)
    НачатьТранзакцию();
    
    Для Каждого Стр Из ЭлементыФормы.таблицаВыборки.Значение Цикл
        Сообщить("Обработка " + Стр.СистемныеПоляНомерПоПорядку +" номера "+ Стр.НомерСтроки);
        Док = Стр.Регистратор;
        
        //регистр Событие ОС
        Набор = РегистрыСведений.СобытияОС.СоздатьНаборЗаписей();
        Набор.Отбор.Регистратор.Установить(Док);
        Набор.Прочитать();                  
        Ин = стр.НомерСтроки;
        СтрНабора = Набор.Получить(Ин-1);
        
        СтрНабора.ДатаСобытия = стр.ДатаВвода;
        Набор.Записать(Истина);
        
    КонецЦикла;
    
    ЗафиксироватьТранзакцию();
    
    Предупреждение("Обработка завершена!");    
    
КонецПроцедуры


Отбору соответствут 7000 строк. обработка выдает ошибку "недостаточно памяти". как поступить? обрабатывать в несколько этапов?
1 Жан Пердежон
 
02.10.13
11:59
запрос в цикле...
2 Галахад
 
гуру
02.10.13
12:03
Транзакцию убрать.
3 galimovmaks
 
02.10.13
12:20
(1) это где?