Пример запроса к регистру, с группировкой по периодам, в которых не было движений

05.09.13

Разработка - Запросы

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

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

Предположим 12 месяцев. Тогда: (параметры датанач и датакон 2012 год)

ВЫБРАТЬ
	ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, ИтогЗапроса.Поле1) КАК Период
ПОМЕСТИТЬ врПериоды
ИЗ
	(ВЫБРАТЬ
		Календарь.Поле1 КАК Поле1
	ИЗ
		(ВЫБРАТЬ
			0 КАК Поле1
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			1
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			2
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			3
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			4
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			5
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			6
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			7
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			8
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			9
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			10
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			11) КАК Календарь
	ГДЕ
		Календарь.Поле1 
результатом данного запроса будет:
 
Период Месяц
 
01.01.2012 0:00:00
 
01.02.2012 0:00:00
 
01.03.2012 0:00:00
 
01.04.2012 0:00:00
 
01.05.2012 0:00:00
 
01.06.2012 0:00:00
 
01.07.2012 0:00:00
 
01.08.2012 0:00:00
 
01.09.2012 0:00:00
 
01.10.2012 0:00:00
 
01.11.2012 0:00:00
 
01.12.2012 0:00:00
 
Итог
 

 

Итак, мы получили список месяцов. Осталось только привязать их к регистру накопления:

 

ВЫБРАТЬ
	ДОБАВИТЬКДАТЕ(&ДатаНачала, МЕСЯЦ, ИтогЗапроса.Поле1) КАК Период
ПОМЕСТИТЬ врПериоды
ИЗ
	(ВЫБРАТЬ
		Календарь.Поле1 КАК Поле1
	ИЗ
		(ВЫБРАТЬ
			0 КАК Поле1
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			1
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			2
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			3
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			4
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			5
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			6
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			7
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			8
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			9
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			10
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			11
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			12) КАК Календарь
	ГДЕ
		Календарь.Поле1 
Задача решена)

запрос периодами

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    184663    1027    403    

967

Обновление 1С Запросы Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Данный инструмент помогает анализировать доработанную конфигурацию после обновления на новый релиз и находить «битые» тексты запросов, в которых участвуют несуществующие в новом релизе метаданные.

2 стартмани

06.02.2025    2198    17    XilDen    26    

36

Запросы Программист Платформа 1С v8.3 Запросы 1C:Бухгалтерия Бесплатно (free)

В статье приведена удобная возможность отладки исполняемого запроса динамического списка.

03.12.2024    5731    artemusII    11    

23

Запросы Программист Бесплатно (free)

Увидел cheatsheet по SQL и захотелось нарисовать подобное, но про запросы.

18.10.2024    13135    sergey279    18    

66

Запросы Программист Платформа 1С v8.3 Запросы 1C:Бухгалтерия Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    8214    XilDen    36    

90

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    3191    PROSTO-1C    0    

23

Запросы Программист Запросы Бесплатно (free)

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

16.08.2024    10797    user1840182    5    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maxkisa 05.09.13 14:13 Сейчас в теме
Во многих конфигурациях есть "Регламентированный производственный календарь". Проще его использовать, особенно когда детализация нужна более чем до месяца.
2. WKBAPKA 215 05.09.13 16:16 Сейчас в теме
а что ПЕРИОДАМИ() уже не работает?
mikhailovaew; Spi1y; +2 Ответить
3. Diego_Iv 34 13.09.13 14:17 Сейчас в теме
(2) WKBAPKA,
Если в периоде движений не было, то не работает.
Этот период просто пропущен будет.
4. mptt 16 13.09.13 14:36 Сейчас в теме
Похожая ситуация http://forum.infostart.ru/forum26/topic90743/
с РС. Решается очень просто,
как написал maxkisa с помошьяю
Регламентированный производственный календарь,
решение здесь http://infostart.ru/public/198281/
5. alvabul 48 18.09.13 14:44 Сейчас в теме
maxkisa и mptt - согласен! Так проще.
Оставьте свое сообщение