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