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