Остатки на каждый день

1. Deals 16.10.18 10:01 Сейчас в теме
Доброго времени суток! Имеется запрос на получение остатков на каждый день. Номенклатура показывается только та, по которой когда-либо были движения. Хочу, чтобы показывало всю номенклатуру не зависимо от наличия движений. Пытаюсь с результатом остатков сделать "ОБЪЕДИНИТЬ ВСЕ" со справочником Номенклатура. Однако показывает только ту номенклатуру по которой были движения. Спасибо!
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AndKovalchuk 192 16.10.18 10:15 Сейчас в теме
Вообще-то нужно не объединение, а соединение. Левое или Правое

Вот тут почитайте https://helpme1c.ru/soedineniya-v-zaprosax-v-1s-8-v-primerax
3. VmvLer 16.10.18 10:51 Сейчас в теме
(2) Объединение тоже можно или все же будем упираться в категоричность: только Левое или Правое

Номеклатура.Ссылка КАК Товар,
0 КАК Остаток
......
ИЗ Справочник.Номенклатура КАК Номенклатура

ОБЪЕДИНИТЬ ВСЕ

Остатки.Номенклатура, 
Остатки.КонечныйОстаток
....
ИЗ Регистр.....(&ДатаОстатков) КАК Остатки
....
СГРУППИРОВАТЬ ПО
Показать

так не прокатит получить остатки по всей номенклатуре, даже если не было остатков и оборотов по некоторым элементам?
4. AndKovalchuk 192 16.10.18 11:16 Сейчас в теме
Так точно не прокатит. Что-то мне подсказывает, что одинаковые строки номенклатуры не сгруппируются.
5. VmvLer 16.10.18 11:23 Сейчас в теме
Прокатывает и часто я вообще не группирую в запросе - это делает за меня СКД, а соединение в запросе на больших таблицах работает медленнее.
А так: мухи отдельно - катлеты отдельны. Мух много и подзапросик прост. Катлет мало, но и подзапрос сложнее.

я не знаю почему мне ничто не подсказывает, что я что-то делаю не так - вероятно я грешен.
6. AndKovalchuk 192 16.10.18 11:38 Сейчас в теме
Вот попробовал в консоли сделать ваш отчет (конфигурация УТ11.3)

Выдает :

Поле не найдено "Номенклатура"
СГРУППИРОВАТЬ ПО <<?>>Номенклатура
Прикрепленные файлы:
11. VmvLer 16.10.18 13:27 Сейчас в теме
(6) вы группируете 2-ой подзапрос где нет поля "Номеклатура" так что: ошибка логична, очевидна и сообщение верно отражает суть ошибки

(7) читайте предыдущий абзац.

(8) предположение о не оптимальности:

во-первых голословно, т.к. нет сравнительной статистики. Основное время в таких запросах уходит
на работу запроса с оборотными регистрами. Далее более прожорливы по времени соединения, еще далее
группировка. "Объединить все" наименее прожорливо даже если СУБД "жует" миллионы записей.

во-вторых, как я писал выше группировку записей я оставляю СКД, а она сама решает, что оптимально

Можно еще полдня решать, что оптимальнее и каждый, вероятно, будет прав. Особенность в том, что я часто
работаю с таблицами где номенклатуры 200К записей, а в оборотных регистрах 20КК - 300КК и что оптимальнее для меня
я уже решил, но это не значит, что мои решения подходят всем и каждому.

а весь этот сыр-бор я затеял с одной простой мыслью-пожеланием: не будьте так категоричны в суждениях "только левое или только правое"... "не оптимально" и т.п. . Все относительно в мире баз данных как и в любой другой вселенной, где есть NULL(пустота) и разные виды материи(данных).
7. AndKovalchuk 192 16.10.18 11:41 Сейчас в теме
Даже если так написать, все равно объединение не сработает

ВЫБРАТЬ
	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
	ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	Номенклатура.Ссылка КАК Номенклатура,
	0 КАК ВНаличииОстаток
ИЗ
	Справочник.Номенклатура КАК Номенклатура
	
СГРУППИРОВАТЬ ПО Номенклатура
Показать
8. AndKovalchuk 192 16.10.18 11:45 Сейчас в теме
Единственно, если переписать на вложенный запрос
ВЫБРАТЬ
	ВЛОЖЗапрос.Номенклатура КАК Номенклатура,
	СУММА(ВЛОЖЗапрос.ВНаличииОстаток) КАК ВНаличииОстаток
ИЗ
	(ВЫБРАТЬ
		ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
		ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ВНаличииОстаток
	ИЗ
		РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		Номенклатура.Ссылка,
		0
	ИЗ
		Справочник.Номенклатура КАК Номенклатура) КАК ВЛОЖЗапрос

СГРУППИРОВАТЬ ПО
	ВЛОЖЗапрос.Номенклатура
Показать
9. AndKovalchuk 192 16.10.18 11:48 Сейчас в теме
Вот тогда работает. Но этот способ не очень оптимальный по времени исполнения. Это я так, мягко сказал.
Прикрепленные файлы:
10. Deals 16.10.18 11:48 Сейчас в теме
Всем спасибо вопрос решен. Сделал пакет запроса с остатками и присоединил его к Таблице дат по дате и номенклатуре.
12. пользователь 17.10.18 09:13
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

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