Ответ в теме: Как вывести данные о поступлениях в кассу с детализацией по неделям?

База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как вывести данные о поступлениях в кассу с детализацией по неделям? › Ответ в теме: Как вывести данные о поступлениях в кассу с детализацией по неделям?

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

    Для регистра накопления Касса предполагается следующая структура:

    — измерение Контрагент;
    — ресурс Сумма;
    — движения прихода имеют вид Приход.

    Используйте виртуальную таблицу Обороты, указав периодичность Неделя:

    |ВЫБРАТЬ
    | КассаОбороты.Период КАК Неделя,
    | КассаОбороты.Контрагент,
    | КассаОбороты.СуммаПриход КАК СуммаПоступления
    |ИЗ
    | РегистрНакопления.Касса.Обороты(
    | &НачалоПериода,
    | &КонецПериода,
    | Неделя,
    | ) КАК КассаОбороты
    |ГДЕ
    | КассаОбороты.СуммаПриход <> 0
    |
    |УПОРЯДОЧИТЬ ПО
    | Неделя,
    | Контрагент

    Параметры запроса устанавливаются так:

    Например, если ДатаМесяца равна 15.09.2026, запрос выведет поступления за сентябрь 2026 года с группировкой:

    | Неделя | Контрагент | Сумма поступления |
    |—|—|—:|
    | 31.08.2026 | ООО «Альфа» | 10 000 |
    | 31.08.2026 | ИП Петров | 5 000 |
    | 07.09.2026 | ООО «Альфа» | 20 000 |

    Период виртуальной таблицы Обороты при периодичности Неделя содержит начало недели. Поэтому первая неделя месяца может начинаться датой из предыдущего месяца, если календарная неделя пересекает границу месяца. При этом в сумму попадут только движения, совершенные внутри заданного периода.

    Если в регистре ресурс называется не Сумма, а, например, СуммаОборот, фактическое имя ресурса в виртуальной таблице будет сформировано автоматически:

    Если регистр Касса является регистром накопления вида Обороты, запрос остается таким же. Если в регистре используется другое измерение, например Плательщик, вместо Контрагент необходимо указать фактическое имя измерения.

    Вариант с явным отбором только движений прихода через основную таблицу регистра выглядит так:

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

    Первый вариант предпочтительнее, поскольку виртуальная таблица Обороты оптимизирована платформой для получения оборотов регистра и сразу предоставляет отдельное поле СуммаПриход.

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