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