Задаю построителю:
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Текст =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА ВложенныйЗапрос.Количество = 0
| ТОГДА 0
| ИНАЧЕ ВложенныйЗапрос.ВремяХраненияКоличества / ВложенныйЗапрос.Количество
| КОНЕЦ КАК ВремяХранения,
| ВложенныйЗапрос.Склад КАК Склад,
| ВложенныйЗапрос.Номенклатура КАК Номенклатура,
| ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
|ИЗ
| (ВЫБРАТЬ
| ТоварыВРознице.Склад КАК Склад,
| ТоварыВРознице.Номенклатура КАК Номенклатура,
| ТоварыВРознице.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| СУММА(ТоварыВРознице.Количество) КАК Количество,
| ВЫБОР
| КОГДА ТоварыВРознице.ВидДвижения = &ВидДвиженияПриход
| ТОГДА -СУММА(РАЗНОСТЬДАТ(&ТекущаяДата, ТоварыВРознице.Регистратор.Дата, ЧАС) / 24 * ТоварыВРознице.Количество)
| ИНАЧЕ СУММА(РАЗНОСТЬДАТ(&ТекущаяДата, ВЫБОР
| КОГДА ТоварыВРознице.Регистратор ССЫЛКА Документ.УК_КонтрольнаяКвитанция
| ТОГДА ТоварыВРознице.Регистратор.ДатаВыдачиЗаказа
| ИНАЧЕ ТоварыВРознице.Регистратор.Дата
| КОНЕЦ, ЧАС) / 24 * ТоварыВРознице.Количество)
| КОНЕЦ КАК ВремяХраненияКоличества,
| ТоварыВРознице.ВидДвижения КАК ВидДвижения
| ИЗ
| РегистрНакопления.ТоварыВРознице КАК ТоварыВРознице
| ГДЕ
| ТоварыВРознице.Регистратор.Дата <= &ДатаКонца
|
| СГРУППИРОВАТЬ ПО
| ТоварыВРознице.Склад,
| ТоварыВРознице.Номенклатура,
| ТоварыВРознице.ХарактеристикаНоменклатуры,
| ТоварыВРознице.ВидДвижения) КАК ВложенныйЗапрос
|ИТОГИ
| СУММА(ВремяХранения)
|ПО
| Склад,
| Номенклатура,
| ХарактеристикаНоменклатуры";
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.ЗаполнитьНастройки();
Выполняю все предельно стандартно:
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Параметры.Вставить("ДатаКонца",?(ЗначениеНеЗаполнено(ДатаКонца),ТекущаяДата(),ДатаКонца));
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Параметры.Вставить("ТекущаяДата",ТекущаяДата());
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Параметры.Вставить("ВидДвиженияПриход",ВидДвиженияНакопления.Приход);
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Выполнить();
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);
ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Вывести(ЭлементыФормы.ПолеТабличногоДокумента);
(в отборе задаю номенклатуру и склад так, что выборка получается очень маленькая, < 10 записей)
При этом метод Выполнить() выполняется мгновенно, а Вывести() застревает минут на 10.
Если в отладчике после Выполнить() попытаться обратиться к результату построителя (или добавить строку Таб=ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Результат.Выгрузить()), система зависает на то же время.
Вопрос: 1) почему происходит зависание когда запос уже выполнен?
2) как бы от этого зависания избавиться?
Спасибо всем, кто ответит.


