Запрос УТ 11.5 Свободные остатки на любую дату

1. zoeh 31 17.10.23 17:09 Сейчас в теме
Не смог найти как в УТ 11.5 рассчитывается колонка Доступно в заказе покупателя, написал запрос чтоб можно было при ордерной схеме из Остатка на складе вычесть к отгрузке и резерв , еще не хватает фильтра исключения по Заказу покупателя.
Хотелось бы узнать насколько вообще запрос будет выдавать актуальные данные?

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

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	ТоварыКОтгрузкеОстатки.Номенклатура,
	ТоварыКОтгрузкеОстатки.Склад,
	NULL КАК ВНаличииОстаток,
	ТоварыКОтгрузкеОстатки.КОтгрузкеОстаток КАК КОтгрузкеОстаток,
	ТоварыКОтгрузкеОстатки.ВРезервеОстаток КАК РезервОстаток
ИЗ
	РегистрНакопления.ТоварыКОтгрузке.Остатки(&МоментПолучения, Склад В ИЕРАРХИИ (&Склад)) КАК ТоварыКОтгрузкеОстатки
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. zoeh 31 17.10.23 17:25 Сейчас в теме
Дублирует строки с товаром если в первом запросе остаток 0, конечно это решается таб. свернуть, но хотелось бы знать как сделать это в запросе.
unknow_user; +1 Ответить
3. antz 17.10.23 17:27 Сейчас в теме
(2) Во вложенный запрос все это положить, вместо null-ов написать нули, из вложенного запроса достать, сгруппировать.
unknow_user; +1 Ответить
4. zoeh 31 17.10.23 17:56 Сейчас в теме
(3)
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Номенклатура,
	ТоварыНаСкладахОстатки.Склад.Ссылка КАК Склад,
	СУММА(ТоварыНаСкладахОстатки.ВНаличииОстаток) КАК ВНаличииОстаток,
	0 КАК КОтгрузкеОстаток,
	0 КАК РезервОстаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментПолучения, Склад В ИЕРАРХИИ (&Склад)) КАК ТоварыНаСкладахОстатки

СГРУППИРОВАТЬ ПО
	ТоварыНаСкладахОстатки.Склад.Ссылка,
	ТоварыНаСкладахОстатки.Номенклатура.Ссылка

ОБЪЕДИНИТЬ

ВЫБРАТЬ
	ТоварыКОтгрузкеОстатки.Номенклатура,
	ТоварыКОтгрузкеОстатки.Склад,
	0,
	ТоварыКОтгрузкеОстатки.КОтгрузкеОстаток,
	ТоварыКОтгрузкеОстатки.ВРезервеОстаток
ИЗ
	РегистрНакопления.ТоварыКОтгрузке.Остатки(&МоментПолучения, Склад В ИЕРАРХИИ (&Склад)) КАК ТоварыКОтгрузкеОстатки
Показать
unknow_user; +1 Ответить
5. zoeh 31 17.10.23 17:57 Сейчас в теме
(3)не помогли группировки и нули
unknow_user; +1 Ответить
6. zoeh 31 17.10.23 18:14 Сейчас в теме
Так же нет результата, придеться таб свернуть так проще



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

СГРУППИРОВАТЬ ПО
	ТоварыНаСкладахОстатки.Склад.Ссылка,
	ТоварыНаСкладахОстатки.Номенклатура.Ссылка

ОБЪЕДИНИТЬ

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

СГРУППИРОВАТЬ ПО
	ТоварыКОтгрузкеОстатки.Номенклатура,
	ТоварыКОтгрузкеОстатки.Склад
Показать
unknow_user; +1 Ответить
7. antz 17.10.23 18:19 Сейчас в теме
(6) Да нет, объединять во вложенном запросе, из него выбирать и группировать.

ВЫБРАТЬ 
ВложенныйЗапрос.Номенклатура,
ВложенныйЗапрос.Склад,
СУММА(ВложенныйЗапрос.ВНаличииОстаток) КАК ВНаличииОстаток,
СУММА(ВложенныйЗапрос.КОтгрузкеОстаток) КАК КОтгрузкеОстаток,
СУММА(ВложенныйЗапрос.ВРезервеОстаток) КАК ВРезервеОстаток

ИЗ

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

ОБЪЕДИНИТЬ все

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

СГРУППИРОВАТЬ ПО
Номенклатура,
Склад 
Показать
unknow_user; +1 Ответить
8. zoeh 31 18.10.23 04:52 Сейчас в теме
(7)
ВЫБРАТЬ
ВложенныйЗапрос.Номенклатура,
ВложенныйЗапрос.Склад,
СУММА(ВложенныйЗапрос.ВНаличииОстаток) КАК ВНаличииОстаток,
СУММА(ВложенныйЗапрос.КОтгрузкеОстаток) КАК КОтгрузкеОстаток,
СУММА(ВложенныйЗапрос.ВРезервеОстаток) КАК ВРезервеОстаток

ИЗ

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

ОБЪЕДИНИТЬ все

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

СГРУППИРОВАТЬ ПО
Номенклатура,
Склад
Показать



при любом раскладе следующая ошибка
Поле не входит в группу "ТоварыНаСкладахОстатки.Номенклатура"
<<?>>ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
unknow_user; +1 Ответить
9. homer_ 79 18.10.23 09:28 Сейчас в теме
(8) мда.
это какой то позор (с)
как, нет не так. КАК можно за несколько лет не узнать основные азы запроса.
такие вопросы от человека который занимается 1с не один год подтверждает текущею ситуацию в отрасли. "IT это не для всех"
ВЫБРАТЬ
ВложенныйЗапрос.Номенклатура,
ВложенныйЗапрос.Склад,
СУММА(ВложенныйЗапрос.ВНаличииОстаток) КАК ВНаличииОстаток,
СУММА(ВложенныйЗапрос.КОтгрузкеОстаток) КАК КОтгрузкеОстаток,
СУММА(ВложенныйЗапрос.ВРезервеОстаток) КАК ВРезервеОстаток

ИЗ

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

ОБЪЕДИНИТЬ все

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

СГРУППИРОВАТЬ ПО
Номенклатура,
Склад   
Показать
unknow_user; +1 Ответить
10. zoeh 31 18.10.23 10:27 Сейчас в теме
(9)бывает,
спасибо я понял ошибку сравнивая через 2 блокнота свой и твой запрос, у меня во вложенном запросе были Суммы в обращениях к ресурсу регистра, которые должны использоваться строго с группировками в этих же запросах!

позор не позор а задача решается.

зачастую не важно как достигнута цель если она достигнута, ведь задача достигнуть цели.
unknow_user; +1 Ответить
11. unknow_user 17.01.24 11:41 Сейчас в теме
Спасибо за подсказку! После перехода на 11.5 правил старые отчеты, "ОБЪЕДИНИТЬ" плохо вписывалось, сделал вложенным запросом:
ВЫБРАТЬ
	СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура,
	СвободныеОстаткиОстатки.Склад КАК Склад,
	СУММА(ЕСТЬNULL(СвободныеОстаткиОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(ВложенныйЗапрос.КОтгрузкеОстаток, 0) - ЕСТЬNULL(ВложенныйЗапрос.ВРезервеОстаток, 0)) КАК СвободныйОстаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков, ) КАК СвободныеОстаткиОстатки
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			ТоварыКОтгрузкеОстатки.КОтгрузкеОстаток КАК КОтгрузкеОстаток,
			ТоварыКОтгрузкеОстатки.ВРезервеОстаток КАК ВРезервеОстаток,
			ТоварыКОтгрузкеОстатки.Номенклатура КАК Номенклатура,
			ТоварыКОтгрузкеОстатки.Склад КАК Склад
		ИЗ
			РегистрНакопления.ТоварыКОтгрузке.Остатки(&ДатаОстатков, ) КАК ТоварыКОтгрузкеОстатки
		) КАК ВложенныйЗапрос
		ПО СвободныеОстаткиОстатки.Номенклатура = ВложенныйЗапрос.Номенклатура
			И СвободныеОстаткиОстатки.Склад = ВложенныйЗапрос.Склад

СГРУППИРОВАТЬ ПО
	СвободныеОстаткиОстатки.Склад,
	СвободныеОстаткиОстатки.Номенклатура
Показать
Оставьте свое сообщение

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