Выбрать в запросе все обороты за период включая пустые периоды

1. cushe 5 15.02.15 04:05 Сейчас в теме
Имеется регистр накопления ОстаткиТМЦ, необходимо построить таблицу в скд где по горизонтали были бы все даты заданного периода (включая те в которых небыло оборота), а по вертикали все товары по которым были движения, включая даты за которые не было оборотов.
Пока то что наваял не совсем адекватно работает
Выбрать 0 КАК Ч Поместить Десятка
Объединить Выбрать 1 
Объединить Выбрать 2
Объединить Выбрать 3
Объединить Выбрать 4
Объединить Выбрать 5
Объединить Выбрать 6
Объединить Выбрать 7
Объединить Выбрать 8
Объединить Выбрать 9
;
Выбрать
 ДобавитьКДате(&НачДата,ДЕНЬ,Е.Ч+Д.Ч*10+С.Ч*100) КАК ТекДата
ПОМЕСТИТЬ ДатыПериода
Из Десятка КАК С, Десятка КАК Д, Десятка КАК Е 
ГДЕ ДобавитьКДате(&НачДата,ДЕНЬ,Е.Ч+Д.Ч*10+С.Ч*100) <= &КонДата
;
Выбрать
 Д.ТекДата КАК ТекДата,
 Р.ТМЦ КАК ТМЦ,
 СУММА(Р.КолвоРасход)
ИЗ
 ДатыПериода КАК Д
  Левое  Соединение (
  	Выбрать
  		РР.ТМЦ,
  		РР.Период,
  		СУММА(РР.КолвоРасход) КАК КолвоРасход
  		ИЗ РегистрНакопления.ОстаткиТМЦ.Обороты(&НачДата,&КонДата,ДЕНЬ,) КАК РР
		Сгруппировать ПО РР.Период, РР.ТМЦ) КАК Р
 ПО Д.ТекДата = Р.Период
 Сгруппировать ПО ТМЦ,ТекДата
Упорядочить ПО ТМЦ,ТекДата 
Показать


Пробовал сформировать таблицу со всеми периодами и к ней привязать движения с оборотами, но проблема в том что движения подвязываются только в дни когда они действительно были а мне нужны движения и за пустые даты
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spezc 795 15.02.15 07:12 Сейчас в теме
а какие движения у вас должны быть за пустые даты?
3. seermak 665 15.02.15 08:52 Сейчас в теме
в скд в запросе в параметрахвиртуальной таблицы укажите "Авто" а в настройках в поле группировки дата укажите поле "дата" тип заполнения День смотри рис
Прикрепленные файлы:
assa; adhocprog; +2 Ответить
4. AnryMc 849 15.02.15 10:31 Сейчас в теме
Прилетит вдруг волшебник
В голубом вертолете,
И бесплатно покажет кино...


Как запросом получить остаток товара на каждый день выбранного периода? http://forum.infostart.ru/forum26/topic45819/
Запрос остатков по дням http://forum.infostart.ru/forum26/topic51621/
СКД не выводит остатки по периодам где нет оборотов. http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=549394
Получить обороты на каждую дату периода http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=632234
Нужна помощь по получению данных на каждый день(даже пустых) из регистра накопл. http://www.forum.mista.ru/topic.php?id=645655
Сравнение способов получения среза последних на каждую дату в запросе http://www.forum.mista.ru/topic.php?id=529513
Срез последних на каждую дату в запросе http://kb.mista.ru/article.php?id=92)
...

Отчет по оборачиваемости товаров http://infostart.ru/public/159717/
5. cushe 5 16.02.15 17:29 Сейчас в теме
Я свою беду оформил примерно вот так, только с поправкой на скд, спс всем кто откликнулся
Выбрать 0 КАК Ч Поместить Десятка
Объединить Выбрать 1 
Объединить Выбрать 2
Объединить Выбрать 3
Объединить Выбрать 4
Объединить Выбрать 5
Объединить Выбрать 6
Объединить Выбрать 7
Объединить Выбрать 8
Объединить Выбрать 9
;
Выбрать
 ДобавитьКДате(&НачДата,ДЕНЬ,Е.Ч+Д.Ч*10+С.Ч*100) КАК ТекДата
ПОМЕСТИТЬ ДатыПериода
Из Десятка КАК С, Десятка КАК Д, Десятка КАК Е 
ГДЕ ДобавитьКДате(&НачДата,ДЕНЬ,Е.Ч+Д.Ч*10+С.Ч*100) <= &КонДата
;
Выбрать
 Д.ТекДата КАК ТекДата,
 Р.ТМЦ КАК ТМЦ
ПОМЕСТИТЬ Шаблон
ИЗ
 ДатыПериода КАК Д,
 	(Выбрать
          РР.ТМЦ,
          РР.Период
          ИЗ РегистрНакопления.ОстаткиТМЦ.Обороты(&НачДата,&КонДата,ДЕНЬ,) КАК РР) КАК Р
СГРУППИРОВАТЬ ПО Д.ТекДата, Р.ТМЦ
;
ВЫБРАТЬ
	Ш.ТекДата, Ш.ТМЦ,
	СУММА(Р.КолвоРасход)
ИЗ Шаблон КАК Ш
ЛЕВОЕ СОЕДИНЕНИЕ
	РегистрНакопления.ОстаткиТМЦ.Обороты(&НачДата,&КонДата,ДЕНЬ,) КАК Р
ПО
	Ш.ТекДата = Р.Период И Ш.ТМЦ = Р.ТМЦ
СГРУППИРОВАТЬ ПО Ш.ТекДата, Ш.ТМЦ
УПОРЯДОЧИТЬ ПО ТекДата, Ш.ТМЦ
Показать
6. axelerleo 324 03.03.15 11:59 Сейчас в теме
Я обычно пользуюсь вот таким шаблоном:

ВЫБРАТЬ
	0 КАК val
ПОМЕСТИТЬ tt1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	3

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	4

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	5

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	6

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	7

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	8

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	9
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ДОБАВИТЬКДАТЕ(&парамНачПериода, ДЕНЬ, tab1.val + 10 * tab2.val + 100 * tab3.val + 1000 * tab4.val) КАК Период,
ПОМЕСТИТЬ ДНИ
ИЗ
	tt1 КАК tab1,
	tt1 КАК tab2,
	tt1 КАК tab3,
	tt1 КАК tab4
ГДЕ
	ДОБАВИТЬКДАТЕ(&парамНачПериода, ДЕНЬ, tab1.val + 10 * tab2.val + 100 * tab3.val + 1000 * tab4.val) <= &парамКонПериода

ИНДЕКСИРОВАТЬ ПО
	Период
;
Показать
miavolas; KazanKokos; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот