Правильный запрос к РегистрБухгалтерии.Хозрасчетный.Остатки по списку номенклатуры

1. eruil 14.12.24 21:13 Сейчас в теме
В настоящее время остатки по списку номенклатуры (содержится во временной таблице ТабНоменклатура) получаю так:
	// ТабНоменклатура - номенклатура для запроса остатков
	ВЫБРАТЬ
		Таб0.Номенклатура
	ПОМЕСТИТЬ ТабНоменклатура
	ИЗ
		Таб0
	СГРУППИРОВАТЬ ПО
		Таб0.Номенклатура
	
	;
	
	// ТабОстатки - получаем остатки
	ВЫБРАТЬ
		Остатки.Субконто3.Код КАК СкладКод,
		Остатки.КоличествоОстаток КАК Остатки,
		Остатки.Субконто1.Код КАК НоменклатураКод
	ПОМЕСТИТЬ ТабОстатки
	ИЗ
		ТабНоменклатура КАК ТабНоменклатура
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&ВыбСчет), , Субконто3 В (&Склады)) КАК Остатки
		ПО ТабНоменклатура.Номенклатура = Остатки.Субконто1
	
	
Показать
На сколько это оптимальный вариант реализации? Или же нужно без использования ЛЕВОЕ СОЕДИНЕНИЕ сразу передавать нужный список номенклатуры как-то в параметре:
РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&ВыбСчет), , Субконто2 в (&ТабНоменклатура) И Субконто3 В (&Склады))
По теме из базы знаний
Найденные решения
9. eruil 14.12.24 22:07 Сейчас в теме
В результате код получился такой:
	// ТабНоменклатура - номенклатура для запроса остатков
	ВЫБРАТЬ
		Таб0.Номенклатура
	ПОМЕСТИТЬ ТабНоменклатура
	ИЗ
		Таб0
	СГРУППИРОВАТЬ ПО
		Таб0.Номенклатура
	
	;
	
	// ТабОстатки - получаем остатки
	ВЫБРАТЬ
		Остатки.Субконто3.Код КАК СкладКод,
		Остатки.КоличествоОстаток КАК Остатки,
		Остатки.Субконто1.Код КАК НоменклатураКод
	ПОМЕСТИТЬ ТабОстатки
	ИЗ
		РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&ВыбСчет), , 
			Субконто1 В (ВЫБРАТЬ ТабНоменклатура.Номенклатура ИЗ ТабНоменклатура) И Субконто3 В (&Склады)) КАК Остатки
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. SlavaKron 14.12.24 21:33 Сейчас в теме
(1) Кажется, принято делать так:
ВЫБРАТЬ
	ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто1 КАК Справочник.Номенклатура).Код КАК НоменклатураКод,
	ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто2 КАК Справочник.Склады).Код КАК СкладКод,
	ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
	РегистрБухгалтерии.Хозрасчетный.Остатки(
			,
			Счет В ИЕРАРХИИ (&ВыбСчет),
			&НоменклатураИСклад,
			Субконто1 В (&МассивНоменклатуры)
				И Субконто2 В (&МассивСкладов)) КАК ХозрасчетныйОстатки
Показать
Желательно через параметр НоменклатураИСклад (в нем указать вид субконто номенклатура и склад).
5. eruil 14.12.24 21:35 Сейчас в теме
(4) Как в таком случае "МассивНоменклатуры" из временной таблицы в этом же запросе передать в параметре?
Субконто1 В (&МассивНоменклатуры)
2. user2107191 14.12.24 21:26 Сейчас в теме
Если ты отбора не делаешь по номенклатуре - то она тебе вообще тут нафиг не нужна. Ни в соединении, ни в фильтре, ни в параметрах виртуалки.
3. eruil 14.12.24 21:30 Сейчас в теме
(2) вопрос возник вообще в том, что получить остатки по 1000 товаров должно быть быстрее, чем сначала получить остатки по всем товарам (к примеру, 100 тыс или 1 млн), а потом выбрать остатки только по заданным 1000 товарам.
7. пользователь 14.12.24 21:40
Сообщение было скрыто модератором.
...
8. eruil 14.12.24 21:42 Сейчас в теме
(7)
А ты в своем посте разве указал, что тебе надо получить остатки ПО ЧАСТИ товаров, а не по ВСЕМ? Нет, не указал.
как раз явно указал об этом:
В настоящее время остатки по списку номенклатуры (содержится во временной таблице ТабНоменклатура) получаю так:
10. user2107191 14.12.24 22:10 Сейчас в теме
(8) Ну не успел я отредактировать пост, не успел... Тогда (6)
6. SlavaKron 14.12.24 21:37 Сейчас в теме
(5)
Субконто1 В (ВЫБРАТЬ ВТ_Номенклатура.Ссылка ИЗ ВТ_Номенклатура КАК ВТ_Номенклатура)
9. eruil 14.12.24 22:07 Сейчас в теме
В результате код получился такой:
	// ТабНоменклатура - номенклатура для запроса остатков
	ВЫБРАТЬ
		Таб0.Номенклатура
	ПОМЕСТИТЬ ТабНоменклатура
	ИЗ
		Таб0
	СГРУППИРОВАТЬ ПО
		Таб0.Номенклатура
	
	;
	
	// ТабОстатки - получаем остатки
	ВЫБРАТЬ
		Остатки.Субконто3.Код КАК СкладКод,
		Остатки.КоличествоОстаток КАК Остатки,
		Остатки.Субконто1.Код КАК НоменклатураКод
	ПОМЕСТИТЬ ТабОстатки
	ИЗ
		РегистрБухгалтерии.Хозрасчетный.Остатки(, Счет В ИЕРАРХИИ (&ВыбСчет), , 
			Субконто1 В (ВЫБРАТЬ ТабНоменклатура.Номенклатура ИЗ ТабНоменклатура) И Субконто3 В (&Склады)) КАК Остатки
Показать
Оставьте свое сообщение

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