|
запрос в цикле |
☑ |
0
wwwqwert2014
26.06.13
✎
12:49
|
Есть цикл:
Для Каждого ТекСтрокаПроекты Из Проекты Цикл
Движение = Движения.Взаиморасчеты.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Накладная= Документы.ПриходнаяНакладная.ПустаяСсылка();
Движение.Сумма = Сумма;
КонецЦикла;
Насколько я знаю, обращение через точку с использованием объектной модели доступа к данным эквивалентно запросу и такие вещи нельзя в цикле делать из-за тормозов.
Движение.Накладная= Документы.ПриходнаяНакладная.ПустаяСсылка();
Здесь тоже запрос будет? Как оптимизировать? И надо ли? вынести за цикл СсылкаНаДокумент = Документы.ПриходнаяНакладная.ПустаяСсылка(); и внутри уже с этой переменной работать?
|
|
1
1Cv8_accepted
26.06.13
✎
12:55
|
(0) В SQL-варианте всё делается запросами. Разница только - кладёшь ли ты данные в базу или берёшь их оттуда. В данном случае код вполне себе нормальный. Относительно. Ну можно ещё оптимизировать таблицей движений, как в типовых.
|
|
2
Xatori
26.06.13
✎
12:55
|
Выносить нужно всё что возможно за рамки цикла, зачем n-раз получать какое то значение, если оно не изменится.
|
|
3
H A D G E H O G s
26.06.13
✎
12:56
|
(0) Нет, не запрос.
|
|
4
H A D G E H O G s
26.06.13
✎
12:56
|
(0) Выносить имеет смысл только в COM соединении.
|
|