Примеры использования Запросов
Печать каталога товаров
Далее приведена процедура, выполняющая печать всего справочника товаров с использованием формирования запроса. Для простого перебора справочника использование запросов оправдано только в том случае, если мы либо используем полученный временный набор данных многократно, или вычисляем функции, или производим нестандартное упорядочивание объектов. В данном примере запрос используется для сортировки справочника по некоторому реквизиту товара.
//-------------------------------- Процедура ПечатьСправочника() // Процедура печати полного справочника товаров Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Печать) |Товар = Справочник.Товары.ТекущийЭлемент; |Группировка Товар Упорядочить по Товар.МинЗапас; |"//}}ЗАПРОС // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Заполнение выходных форм данными запроса // Создание Таблицы для выходного отчета Таб = СоздатьОбъект("Таблица"); Таб.ВывестиСекцию("Отчет"); Пока Запрос.Группировка("Товар") = 1 Цикл // Заполнение полей Товар Если Запрос.Товар.ЭтоГруппа() = 1 Тогда Таб.ВывестиСекцию("Группа"); Иначе Таб.ВывестиСекцию("Товар"); КонецЕсли; КонецЦикла; //Отображение выходного отчета Таб.ТолькоПросмотр(1); Таб.Опции(0, 0, 4, 0); Таб.Показать("Список товаров по каталогу", ""); КонецПроцедуры