Есть цикл:
Для Каждого ТекСтрокаПроекты Из Проекты Цикл
Движение = Движения.Взаиморасчеты.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Накладная= Документы.ПриходнаяНакладная.ПустаяСсылка();
Движение.Сумма = Сумма;
КонецЦикла;
Насколько я знаю, обращение через точку с использованием объектной модели доступа к данным эквивалентно запросу и такие вещи нельзя в цикле делать из-за тормозов.
Движение.Накладная= Документы.ПриходнаяНакладная.ПустаяСсылка();
Здесь тоже запрос будет? Как оптимизировать? И надо ли? вынести за цикл СсылкаНаДокумент = Документы.ПриходнаяНакладная.ПустаяСсылка(); и внутри уже с этой переменной работать?
(0) В SQL-варианте всё делается запросами. Разница только - кладёшь ли ты данные в базу или берёшь их оттуда. В данном случае код вполне себе нормальный. Относительно. Ну можно ещё оптимизировать таблицей движений, как в типовых.