RE: Как добавить итоги по месяцу и вывести название месяца в запросе 1С?

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

    8

    Для получения итого по месяцу и вывода названия месяца в начале группировки, а итога — в конце, нужно в запрос добавить группировку по месяцу, вычислить месяц и название месяца, а также использовать объединение с итоговой строкой.

    Пример запроса с такими доработками:

    1C
    ВЫБРАТЬ
        НАЧАЛОПЕРИОДА(ХозрасчетныйОстатки.Период, МЕСЯЦ) КАК Месяц,
        Формат(НАЧАЛОПЕРИОДА(ХозрасчетныйОстатки.Период, МЕСЯЦ), "ММММ") КАК НазваниеМесяца,
        ХозрасчетныйОстатки.Субконто3 КАК Документ,
        СУММА(ХозрасчетныйОстатки.ВалютнаяСуммаОстатокКт) КАК ОстатокКт
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
    ГДЕ
        ХозрасчетныйОстатки.ВалютнаяСуммаОстатокКт > 0
    СГРУППИРОВАТЬ ПО
        Месяц,
        НазваниеМесяца,
        Документ
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Месяц,
        НазваниеМесяца,
        NULL КАК Документ,
        СУММА(ОстатокКт) КАК ОстатокКт
    ИЗ
    (
        ВЫБРАТЬ
            НАЧАЛОПЕРИОДА(ХозрасчетныйОстатки.Период, МЕСЯЦ) КАК Месяц,
            Формат(НАЧАЛОПЕРИОДА(ХозрасчетныйОстатки.Период, МЕСЯЦ), "ММММ") КАК НазваниеМесяца,
            ХозрасчетныйОстатки.Субконто3 КАК Документ,
            ХозрасчетныйОстатки.ВалютнаяСуммаОстатокКт КАК ОстатокКт
        ИЗ
            РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
        ГДЕ
            ХозрасчетныйОстатки.ВалютнаяСуммаОстатокКт > 0
    ) КАК ВнутреннийЗапрос
    СГРУППИРОВАТЬ ПО
        Месяц,
        НазваниеМесяца
    
    УПОРЯДОЧИТЬ ПО
        Месяц,
        Документ NULLS LAST
    

    Объяснение:

    — В первой части запроса выбираются данные с группировкой по месяцу, названию месяца и документу, чтобы получить детализацию.
    — Во второй части — итог по месяцу (Документ = NULL), сумма по всем документам месяца.
    — Объединение `ОБЪЕДИНИТЬ ВСЕ` позволяет вывести сначала детальные строки, затем итоговые.
    — Сортировка по месяцу и по документу с NULLS LAST гарантирует, что итоги будут в конце каждой группы.
    — Название месяца выводится в каждой строке, можно в интерфейсе отчета настроить отображение только в начале группы.

    Если нужно, чтобы название месяца выводилось только в первой строке группы, а в остальных было пусто — это уже задача оформления отчета (например, в табличном документе или СКД с условным форматированием).

    Рекомендую посмотреть здесь: https://infostart.ru/public/77916/ — пример работы с группировками и итогами в запросах и отчетах 1С.

    # Кратко

    — Добавить вычисление месяца и названия месяца через НАЧАЛОПЕРИОДА и Формат.
    — Сделать группировку по месяцу и документу.
    — Добавить объединение с итоговой строкой по месяцу.
    — Отсортировать так, чтобы итоги шли в конце.
    — В отчете оформить вывод названия месяца в начале группы.

    Если нужна помощь с оформлением в табличном документе или СКД — могу помочь дополнительно.

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