Область применения: управляемое приложение, мобильное приложение, обычное приложение.
1. Рекомендуется получать все необходимые однотипные данные одним запросом, вместо выполнения серии запросов. Это ускоряет исполнение запроса к базе данных. Для объединения запросов в один используются, например, условия В, ключевое слово ОБЪЕДИНИТЬ ВСЕ и пакет запросов.
Правильно:
ОбщийЗапрос = Новый Запрос("
|ВЫБРАТЬ
| БанковскиеСчета.Ссылка КАК Счет
|ИЗ
| Справочник.БанковскиеСчета КАК БанковскиеСчета
|ГДЕ
| БанковскиеСчета.Банк В(&БанкиДляОбработки)");
ОбщийЗапрос.УстановитьПараметр("БанкиДляОбработки", БанкиДляОбработки);
ВыборкаСчетов = ОбщийЗапрос.Выполнить().Выбрать();
Пока ВыборкаСчетов.Следующий() Цикл
ОбработатьСчетаВБанке(ВыборкаСчетов.Счет);
КонецЦикла;
Неправильно:
ЧастныйЗапрос = Новый Запрос("
|ВЫБРАТЬ
| БанковскиеСчета.Ссылка КАК Счет
|ИЗ
| Справочник.БанковскиеСчета КАК БанковскиеСчета
|ГДЕ
| БанковскиеСчета.Банк = &Банк");
Для каждого Банк Из БанкиДляОбработки Цикл
ЧастныйЗапрос.УстановитьПараметр("Банк", Банк);
ВыборкаСчетов = ЧастныйЗапрос.Выполнить().Выбрать();
Пока ВыборкаСчетов.Следующий() Цикл
ОбработатьСчетаВБанке(ВыборкаСчетов.Счет);
КонецЦикла;
КонецЦикла;
При использовании Библиотеки стандартных подсистем (БСП) правильно вызывать программный интерфейс, предназначенный для работы со списками объектов, например, однократно вызывать функцию ОбщегоНазначения.ЗначениеРеквизитаОбъектов вместо ЗначениеРеквизитаОбъекта в цикле, УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъектов вместо КонтактнаяИнформацияОбъекта в цикле.
2. Допускается разделение запроса на серию запросов в следующих случаях:
В этих случаях запросы в цикле:
3. Запросы к разным таблицам также рекомендуется объединять в один с помощью ОБЪЕДИНИТЬ ВСЕ или пакета запросов. Однако, выигрыш во времени исполнения может оказаться незначительным.