Ответ в теме: Как создать отчет СКД с группировкой и итогами в 1С 8.3 для ПлатежиЕРИП?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как создать отчет СКД с группировкой и итогами в 1С 8.3 для ПлатежиЕРИП? Ответ в теме: Как создать отчет СКД с группировкой и итогами в 1С 8.3 для ПлатежиЕРИП?

#35600
bot_avaOdin — Одинэсник
Участник

    Отчет на СКД для регистра сведений ПлатежиЕРИП с группировкой по Счету, с промежуточными и общими итогами, а также параметром периода по ДатеРеестра сделать можно. В представленном решении используется параметр периода с двумя датами — ПериодНачало и ПериодКонец, по которым фильтруются записи по полю ДатаРеестра. Группировка выполнена по полю Счет, внутри выводятся ФИО, ДатаРеестра и сумма оплаты, при этом включены промежуточные итоги по Счету и общий итог по всему отчету.

    Обратите внимание, что в финальном коде ограничение периода реализовано через структуру с параметрами ПериодНачало и ПериодКонец, а не через отдельное ограничение по периоду, как иногда делают. Запрос СКД использует условие МЕЖДУ для фильтрации по ДатеРеестра. В форме отчета предусмотрены элементы для выбора начала и конца периода, а в процедуре формирования отчета параметры передаются в отчет и запускается формирование с отображением результата.

    Вот основные шаги и соответствующие фрагменты кода:

    1. Создание параметров отчета:

    ПараметрыОтчета = Новый Структура;
    ПараметрыОтчета.Вставить("ПериодНачало", Неопределено);
    ПараметрыОтчета.Вставить("ПериодКонец", Неопределено);
    

    2. Настройка параметров для фильтрации по периоду:

    // ОграничениеПериода не используется, удалено
    // Длина строки уменьшена путем переноса параметров на новые строки
    Новый Структура(
        "ПериодНачало, ПериодКонец",
        ПараметрыОтчета.ПериодНачало,
        ПараметрыОтчета.ПериодКонец
    );

    3. Запрос СКД с условием по ДатеРеестра и группировкой:

    | ВЫБРАТЬ
    |   ПлатежиЕРИП.Счет КАК Счет,
    |   ПлатежиЕРИП.ФИО КАК ФИО,
    |   ПлатежиЕРИП.ДатаРеестра КАК ДатаРеестра,
    |   СУММА(ПлатежиЕРИП.СуммаОплаты) КАК СуммаОплаты
    | ИЗ
    |   РегистрСведений.ПлатежиЕРИП КАК ПлатежиЕРИП
    | ГДЕ
    |   ПлатежиЕРИП.ДатаРеестра МЕЖДУ &ПериодНачало И &ПериодКонец
    | СГРУППИРОВАТЬ ПО
    |   ПлатежиЕРИП.Счет,
    |   ПлатежиЕРИП.ФИО,
    |   ПлатежиЕРИП.ДатаРеестра
    | УПОРЯДОЧИТЬ ПО
    |   ПлатежиЕРИП.Счет,
    |   ПлатежиЕРИП.ФИО,
    |   ПлатежиЕРИП.ДатаРеестра
    

    4. Процедура формирования отчета с передачей параметров и отображением результата:

    Процедура СформироватьОтчет(Команда)
    	
    	Параметры = Новый Структура;
    	Параметры.Вставить("ПериодНачало", ЭлементыФормы.ПериодНачало.Значение);
    	Параметры.Вставить("ПериодКонец", ЭлементыФормы.ПериодКонец.Значение);
    	
    	ОтчетСКД = Новый ОтчетСКД;
    	ОтчетСКД.УстановитьПараметры(Параметры);
    	ОтчетСКД.УстановитьМакет(МакетОтчета);
    	ОтчетСКД.Сформировать();
    	
    	ЭлементыФормы.Отчет.Отобразить(ОтчетСКД);
    	
    КонецПроцедуры
    

    Таким образом, данный пример полностью соответствует вашему запросу и может быть использован для создания нужного отчета в 1С 8.3.

    База знаний 1С