Запрос Остатков 1с 8.2

  • Автор темы alex9910
  • Дата начала
A

alex9910

#1
Всем салют =)

Как можно сделать запрос остатков номенклатуры? Код привожу ниже но он явно не верный мог бы кто подправить пожалуйста..

Код:
		"ВЫБРАТЬ
|	Номенклатура.Ссылка КАК Ссылка,
|	Номенклатура.Наименование,
|	Номенклатура.Код
|ПОМЕСТИТЬ ВТНоменклатура
|ИЗ
|	Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|	(НЕ Номенклатура.ЭтоГруппа)
|	И Номенклатура.Ссылка В ИЕРАРХИИ(&ВыбГруппа)
|
|СГРУППИРОВАТЬ ПО
|	Номенклатура.Наименование,
|	Номенклатура.Ссылка,
|	Номенклатура.Код
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|	ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
|	ЦеныНоменклатурыСрезПоследних.Цена
|ПОМЕСТИТЬ ВТЦены
|ИЗ
|	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
|			,
|			Номенклатура В
|					(ВЫБРАТЬ
|						ВТНоменклатура.Ссылка
|					ИЗ
|						ВТНоменклатура)
|				И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
|
|ИНДЕКСИРОВАТЬ ПО
|	Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|	ХозрасчетныйОстатки.КоличествоОстаток,
|	ХозрасчетныйОстатки.Счет,
|	ХозрасчетныйОстатки.Субконто1
|ПОМЕСТИТЬ ВТОстатки
|ИЗ
|	РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|	ВТНоменклатура.Наименование,
|	ВТНоменклатура.Код,
|	ВТЦены.Цена
|ИЗ
|	ВТНоменклатура КАК ВТНоменклатура
|		ЛЕВОЕ СОЕДИНЕНИЕ ВТЦены КАК ВТЦены
|		ПО ВТНоменклатура.Ссылка = ВТЦены.Номенклатура";
 

Allexei

Well-known member
02.05.2008
322
1
#2
Можно вопросик, зачем испоьзовалась индексация по номенклатуре?
Я бы сделал в начале выборку по субконто1(предпоследний запрос), с условием что субконто 1 это номенклатура, в группе , и не является группой.Потом через внутренне соединение соединил бы с ценами, ИМНО.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#3
Allexei ведь используется соединение по номенклатуре. Индексация разве не ускорит в этом случае?

Добавлено: По теме:
тут зависит от того, в каком виде нужно получить остатки, и нужны ли записи по элементам, по которым нет остатков.
Но в любом случае на виртуальную таблицу остатков надо наложить условие по счету.
 

Allexei

Well-known member
02.05.2008
322
1
#4
unknown181538 , а точно. Никогда не индексировал для объединений. Только для отбора использовал.
Хотя если честно, сделал проверку( выборка полного справочника номенклатуры, индексация по полю ссылка и внутреннее соединение со срезом последних цен) и ничего не понял. С использованием индексации выполняется дольше.
ПыСы Индексация приносит реально ощутимый результат когда при объединение используется более 2-х полей. Почему - хз. Разница во времени чуть больше чем в 100 раз
 

Darlock

Well-known member
04.01.2008
560
1
#5
Я могу ошибаться, конечно, но не используется ли индекс самой платформой когда проектируете регистр сведений? А тут по запросу получается, что индексируем и так индексированное поле (измерение регистра).
По теме - согласен с unknown181538. Максимум условий на выборку делайте на вирт.таблицу, а только после этого используйте итоговые условия (закладка "Условия")
 

Allexei

Well-known member
02.05.2008
322
1
#6
Darlock
Неа, в 8- есть фишка по индексированию временных таблиц. При создании временной таблицы создается новая физическая таблица на скулевом сервере в tmpdb(вроде). Именно для этой таблицы у тебя индекс и создается при помощи ИНДЕКСИРОВАТЬ ПО.