• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

alex9910

Всем салют =)

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

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

Allexei

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

unknown181538

Allexei ведь используется соединение по номенклатуре. Индексация разве не ускорит в этом случае?

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

Allexei

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

Darlock

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

Allexei

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!