Доброго дня. Получаю данные запросом, на выходе таблица значений с количеством 4576 строк, но запрос работает очень долго. Подскажите, пожалуйста, как можно ускорить выполнение запроса?

```1c
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
    Запрос.УстановитьПараметр("СчетДТ", ПланыСчетов.Хозрасчетный.НайтиПоКоду("41"));
    Запрос.УстановитьПараметр("Организация", Организация);
    Запрос.Текст = "ВЫБРАТЬ
    | ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
    | МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
    |ИЗ
    | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
    | ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
    | &Дата,
    | Регистратор.Проведен = ИСТИНА
    | И СчетДт В ИЕРАРХИИ (&СчетДТ)
    | И Организация = &Организация
    | И СубконтоДт1 В
    | (ВЫБРАТЬ
    | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
    | ИЗ
    | РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки),
    | ,
    | ) КАК ХозрасчетныйДвиженияССубконто
    |
    |СГРУППИРОВАТЬ ПО
    | ХозрасчетныйДвиженияССубконто.Регистратор";
    Если Не Запрос.Выполнить().Пустой() Тогда
    Таблица = Запрос.Выполнить().Выгрузить();
    КонецЕсли;
```
---
вот такой код в консоли выполнился в 2 раза быстрее

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

ИНДЕКСИРОВАТЬ ПО
 Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
 ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
 МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
 РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
   ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
   &Дата,
   СчетДт В ИЕРАРХИИ (&СчетДТ)
    И Организация = &Организация
    И СубконтоДт1 В
     (ВЫБРАТЬ
      Ном.Номенклатура
     ИЗ
      Ном),
   ,
   ) КАК ХозрасчетныйДвиженияССубконто

СГРУППИРОВАТЬ ПО
 ХозрасчетныйДвиженияССубконто.Регистратор
---
ИЕРАРХИИ а точно нужна ИЕРАРХИЯ?
---
да
---
1) Очень долго это сколько ?
2) Есть замеры времени по точкам останова? ( или на глаз примерно 10-15 сек)
3) Где выполняется запрос ( консоль или обработка) ?

из рекомендаций

ВЫБРАТЬ
    | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
        | ХозрасчетныйОстатки.КоличествоОстаток Как Остатки
    | ИЗ
    | РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ), , Организация = &Организация) КАК ХозрасчетныйОстатки

Вот это выбрать вначале запроса во временную таблицу,
а в основном делать выборку из нее
---
около 5 минут
---
и потом, может быть сделать через временные таблицы?
---
так я этот запрос и буду помещать во временную таблицу в итоге. И потом еще другой запрос будет.
---
ничего страшного. Пробуй через временную, быстрее должно быть
---
Регистратор.Проведен = ИСТИНА Точно можно убрать. И вместо МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата Период возможно подойдет.
---
Необходимо в условии указать ТИПы документа с которыми работаем,
Можно вначале выполнить как есть сейчас, переписать список типов документов попавших в выборку, и далее добавить условие;
---
И СубконтоДт1 В
    | (ВЫБРАТЬ РАЗЛИЧНЫЕ
    | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура
    | ИЗ
    | РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет В ИЕРАРХИИ (&СчетДТ)
---
Запрос по остаткам и так выберет только различные Субконто1. Слово РАЗЛИЧНЫЕ лишнее.
---
```1c
    Если Не Запрос.Выполнить().Пустой() Тогда
    Таблица = Запрос.Выполнить().Выгрузить();
    КонецЕсли;
```
Зачем выполнять долгий запрос дважды?
---
Просто автор не знает, что можно получить результат запроса и использовать уже его. ;)
---
(18) Спасибо, исправил
```1c
    РезультатЗапроса = Запрос.Выполнить()
    Если Не РезультатЗапроса.Пустой() Тогда
    Таблица = РезультатЗапроса.Выгрузить();
    КонецЕсли;
```
---
ХозрасчетныйОстатки.КоличествоОстаток Как Остатки вот это точно лишнее
---
это я тут дописывал, потом понял, что ошибка будет из за этого, и исправил.
---
Запрос автора без изменений в консоли выполнялся 44 с и выдал 1869 строк
---
вот такой код в консоли выполнился в 2 раза быстрее

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

ИНДЕКСИРОВАТЬ ПО
 Номенклатура
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
 ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
 МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
 РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
   ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
   &Дата,
   СчетДт В ИЕРАРХИИ (&СчетДТ)
    И Организация = &Организация
    И СубконтоДт1 В
     (ВЫБРАТЬ
      Ном.Номенклатура
     ИЗ
      Ном),
   ,
   ) КАК ХозрасчетныйДвиженияССубконто

СГРУППИРОВАТЬ ПО
 ХозрасчетныйДвиженияССубконто.Регистратор
---
спасибо!
---
вот такой код в консоли выполнился в 2 раза быстрее в консоли за 22 сек

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

ИНДЕКСИРОВАТЬ ПО
Номенклатура
;

////////////////////////////////////////////////////////////­­////////////////////
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.Регистратор КАК Регистратор,
МАКСИМУМ(ХозрасчетныйДвиженияССубконто.Регистратор.Дата) КАК РегистраторДата
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12),
&Дата,
СчетДт В ИЕРАРХИИ (&СчетДТ)
И Организация = &Организация
И СубконтоДт1 В
(ВЫБРАТЬ
Ном.Номенклатура
ИЗ
Ном),
,
) КАК ХозрасчетныйДвиженияССубконто

СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.Регистратор
---
а внутреннее соединение не будет работать быстрее?
---
ДОБАВИТЬКДАТЕ(&Дата, МЕСЯЦ, -12) я бы заменил на параметр и лучше начало дня использовать. А сам запрос - так наверняка будет быстрее выбрать остатки с оборотами и отфильтровать те, что с ненулевыми на конец.