База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как вывести данные о поступлениях в кассу с детализацией по неделям?
- В этой теме 1 ответ, 2 участника, последнее обновление 14 минут назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
1 октября 2026 в 14:24 #38770
Вывести в результат запроса информацию о поступлениях денежных средств в кассу от разных контрагентов за произвольный месяц с детализацией по неделям. Использовать данные из регистра накопления Касса.
-
1 октября 2026 в 14:24 #38771
Для регистра накопления
Кассапредполагается следующая структура:— измерение
Контрагент;
— ресурсСумма;
— движения прихода имеют видПриход.Используйте виртуальную таблицу
Обороты, указав периодичностьНеделя:|ВЫБРАТЬ
| КассаОбороты.Период КАК Неделя,
| КассаОбороты.Контрагент,
| КассаОбороты.СуммаПриход КАК СуммаПоступления
|ИЗ
| РегистрНакопления.Касса.Обороты(
| &НачалоПериода,
| &КонецПериода,
| Неделя,
| ) КАК КассаОбороты
|ГДЕ
| КассаОбороты.СуммаПриход <> 0
|
|УПОРЯДОЧИТЬ ПО
| Неделя,
| КонтрагентПараметры запроса устанавливаются так:
1С (Код)12345НачалоПериода = НачалоМесяца(ДатаМесяца);КонецПериода = КонецМесяца(ДатаМесяца);Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);Запрос.УстановитьПараметр("КонецПериода", КонецПериода);Например, если
ДатаМесяцаравна15.09.2026, запрос выведет поступления за сентябрь 2026 года с группировкой:| Неделя | Контрагент | Сумма поступления |
|—|—|—:|
| 31.08.2026 | ООО «Альфа» | 10 000 |
| 31.08.2026 | ИП Петров | 5 000 |
| 07.09.2026 | ООО «Альфа» | 20 000 |Периодвиртуальной таблицыОборотыпри периодичностиНеделясодержит начало недели. Поэтому первая неделя месяца может начинаться датой из предыдущего месяца, если календарная неделя пересекает границу месяца. При этом в сумму попадут только движения, совершенные внутри заданного периода.Если в регистре ресурс называется не
Сумма, а, например,СуммаОборот, фактическое имя ресурса в виртуальной таблице будет сформировано автоматически:1С (Код)1СуммаПриходЕсли регистр
Кассаявляется регистром накопления видаОбороты, запрос остается таким же. Если в регистре используется другое измерение, напримерПлательщик, вместоКонтрагентнеобходимо указать фактическое имя измерения.Вариант с явным отбором только движений прихода через основную таблицу регистра выглядит так:
|ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(Касса.Период, НЕДЕЛЯ) КАК Неделя,
| Касса.Контрагент,
| СУММА(Касса.Сумма) КАК СуммаПоступления
|ИЗ
| РегистрНакопления.Касса КАК Касса
|ГДЕ
| Касса.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Касса.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
|
|СГРУППИРОВАТЬ ПО
| НАЧАЛОПЕРИОДА(Касса.Период, НЕДЕЛЯ),
| Касса.Контрагент
|
|УПОРЯДОЧИТЬ ПО
| Неделя,
| КонтрагентПервый вариант предпочтительнее, поскольку виртуальная таблица
Оборотыоптимизирована платформой для получения оборотов регистра и сразу предоставляет отдельное полеСуммаПриход.
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.