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