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

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 
Задача решена)

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

См. также

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    125052    683    389    

732

Пропорциональное распределение в запросе с использованием АвтоНомерЗаписи()

Запросы Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Часто поступают задачи по произвольному распределению общих сумм. После распределения иногда пропадают копейки. Суть решения добавить АвтоНомерЗаписи() в ВТ распределения, и далее используя функции МАКСИМУМ или МИНИМУМ можем положить разницу копеек в первую или последнюю строку знаменателя распределения.

11.04.2024    2264    andrey_sag    10    

28

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    6015    KawaNoNeko    23    

25

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2155    2    Yashazz    0    

31

Запрос 1С copilot

Инструментарий разработчика Запросы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

5 стартмани

15.01.2024    6651    31    mkalimulin    27    

52

PrintWizard: поддержка представлений ЗУП в конструкторе

Инструментарий разработчика Запросы Платформа 1С v8.3 Бесплатно (free)

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

14.12.2023    1886    vandalsvq    7    

29

Объектная модель запроса "Схема запроса" 2

Запросы Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Далеко уже не новый тип данных "Схема запроса". Статья о том, как использовать его "попроще". Примеры создания текста запроса с нуля и изменение имеющегося запроса.

06.12.2023    5631    user1923546    26    

46

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16608    skovpin_sa    14    

101
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maxkisa 05.09.13 14:13 Сейчас в теме
Во многих конфигурациях есть "Регламентированный производственный календарь". Проще его использовать, особенно когда детализация нужна более чем до месяца.
2. WKBAPKA 214 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 49 18.09.13 14:44 Сейчас в теме
maxkisa и mptt - согласен! Так проще.
Оставьте свое сообщение