×
Показано с 1 по 2 из 2
  1. #1
    Аноним
    Гость

    Вопрос построитель отчета медленно выводит результат

    Задаю построителю:

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

    Выполняю все предельно стандартно:
    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Параметры.Вставить("ДатаКонца",?(ЗначениеНеЗаполнено(ДатаКонца),ТекущаяДата(),ДатаКонца));
    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Параметры.Вставить("ТекущаяДата",ТекущаяДата());
    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Параметры.Вставить("ВидДвиженияПриход",ВидДвиженияНакопления.Приход);

    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Выполнить();
    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);
    ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Вывести(ЭлементыФормы.ПолеТабличногоДокумента);

    (в отборе задаю номенклатуру и склад так, что выборка получается очень маленькая, < 10 записей)
    При этом метод Выполнить() выполняется мгновенно, а Вывести() застревает минут на 10.
    Если в отладчике после Выполнить() попытаться обратиться к результату построителя (или добавить строку Таб=ПостроительОтчетаСреднийСрокХраненияТоваровРозницаВсе.Результат.Выгрузить()), система зависает на то же время.

    Вопрос: 1) почему происходит зависание когда запос уже выполнен?
    2) как бы от этого зависания избавиться?

    Спасибо всем, кто ответит.
    Поделиться с друзьями

  2. #2
    Фырчун Аватар для Dracosha Andrew
    Регистрация
    07.02.2002
    Адрес
    Санкт-Петербург
    Сообщений
    2,259
    Вопрос: 1) почему происходит зависание когда запос уже выполнен?
    А почему вы решили, что он выполнен? Какая среда?
    Всех благ!!!
    Чувелёв Андрей

    ps: Всё вышеизложенное является моим частным мнением и не может претендовать на полноту изложения.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)