Тоже постоянно нахожусь в поисках оптимальных решений кода и производительности.
Дополню, что если нужна иерархия, то лучше использовать ИТОГИ.
Замеры в реальной задаче торгового агента
конфигурация 1С:Комплексная автоматизация 2 (2.2.4.103)
данных ~ 39000 позиций номенклатуры и 35 видов цен
для запроса без характеристик на сервере HP (кому интересно параметры железа, то дополню)
Выбрать
Номенклатура ,ВидЦены ТипЦен ,Цена
Поместить тзЦен
Из
РегистрСведений.ЦеныНоменклатуры.СрезПоследних()
ГДЕ ВидЦены В(&спТиповЦен)
ИНДЕКСИРОВАТЬ ПО Номенклатура, ТипЦен
;
Выбрать
Тов.Ссылка Номенклатура ,тзЦен.ТипЦен ,тзЦен.Цена
ИЗ
Справочник.Номенклатура Тов
ЛЕВОЕ СОЕДИНЕНИЕ (Выбрать * ИЗ тзЦен) тзЦен
ПО Тов.Ссылка = тзЦен.Номенклатура
УПОРЯДОЧИТЬ ПО
Тов.ЭтоГруппа ИЕРАРХИЯ
,Тов.Наименование
,тзЦен.ТипЦен.Наименование
отрабатывает ~ 35 секунд
а запрос
Выбрать
Номенклатура ,ВидЦены ТипЦен ,Цена
Поместить тзЦен
Из
РегистрСведений.ЦеныНоменклатуры.СрезПоследних()
ГДЕ ВидЦены В(&спТиповЦен)
ИНДЕКСИРОВАТЬ ПО Номенклатура, ТипЦен
;
Выбрать
Тов.Ссылка Номенклатура ,тзЦен.ТипЦен ,тзЦен.Цена
ИЗ
Справочник.Номенклатура Тов
ЛЕВОЕ СОЕДИНЕНИЕ (Выбрать * ИЗ тзЦен) тзЦен
ПО Тов.Ссылка = тзЦен.Номенклатура
ГДЕ
Тов.ЭтоГруппа = Ложь
УПОРЯДОЧИТЬ ПО Тов.Наименование
, тзЦен.ТипЦен.Наименование
ИТОГИ ПО Тов.Ссылка ТОЛЬКО ИЕРАРХИЯ
отрабатывает ~ 5 секунд