Перейти к содержанию

Выполнение запроса в цикле (CreateQueryInCycle)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Ошибка BSL
OS
Критичный Да 20 performance

Описание диагностики

Исполнение запроса в цикле.

Примеры

Неправильно

СписокДокументов = Новый Массив; СуммаДокументов = 0; Для индекс = 0 По СписокДокументов.ВГраница() Цикл Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоступлениеТоваровУслуг.СуммаДокумента |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", СписокДокументов[индекс]); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СуммаДокументов = СуммаДокументов + ВыборкаДетальныеЗаписи.СуммаДокумента; КонецЦикла; КонецЦикла; 

Правильно

СписокДокументов = Новый Массив; СуммаДокументов = 0; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СУММА(ПоступлениеТоваровУслуг.СуммаДокумента) КАК СуммаДокумента |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Ссылка В(&СписокДокументов)"; Запрос.УстановитьПараметр("Ссылка", СписокДокументов); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СуммаДокументов = ВыборкаДетальныеЗаписи.СуммаДокумента; КонецЦикла; 

Сниппеты

Экранирование кода

// BSLLS:CreateQueryInCycle-off // BSLLS:CreateQueryInCycle-on 

Параметр конфигурационного файла

"CreateQueryInCycle": false