Имя: Пароль:
1C
 
Зависает вывод результат компоновки данных в табличный документ
0 Сергиус
 
03.09.14
10:23
ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ТабличныйДокумент = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    ДокументРезультат.Вывести(ТабличныйДокумент);
    ДокументРезультат.ОтображатьСетку=Ложь;
    ДокументРезультат.ОтображатьЗаголовки=Ложь;
    ДокументРезультат.Показать();

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

P.s. В консоли запросов вывод данных за тот же период(по сути тот же запрос, что и в СКД) занимает около минуты..
1 Сергиус
 
03.09.14
10:27
+(0)Платформа 1С:Предприятие 8.2 (8.2.19.80)
2 Сергиус
 
03.09.14
11:08
(0)В итоге сделался, но за 30 минут...Вас из дас?? Почему так долго?? Грубо говоря за период с 01.07 по 31.07 выводит за 2-3 минуты, за период с 01.08 по 31.08 вывод полчаса. При том, что  за июль больше данных(движений). С чем может быть связано такое большое время вывода?
3 Сергиус
 
03.09.14
15:29
Народ, помогайте, плиз, всю голову себе уже сломал((

На этапе ПроцессорВывода.Вывести(ПроцессорКомпоновки) данные из БД уже получены же? Просто они выводятся в Табличный документ, верно? Почему ж такое различие то по времени..хотя б понять, куда копать... Данные берутся из регистра накопления, регистр оборотный.. За июль выводится за 2 минуты, за август более 30 минут. Число записей в августе даже меньше..В консоли запросов и за июль и за август все где-то за минуту выводится. Что же СКД то так...?
4 чувак
 
03.09.14
15:35
(3) Процесс вывода можно оциклить и там поймать
5 Сергиус
 
03.09.14
15:37
(4) ты имеешь ввиду как-то так:

ПроцессорВывода.НачатьВывод();

    Пока Истина Цикл
        ЭлементРезультата=ПроцессорКомпоновки.Следующий();

        Если ЭлементРезультата=Неопределено Тогда
            Прервать;
        Иначе
            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        КонецЕсли;
    КонецЦикла;
    ПроцессорВывода.ЗакончитьВывод();

И как здесь можно что-то поймать?
6 чувак
 
03.09.14
15:38
а замер что показывает?
7 Мимохожий Однако
 
03.09.14
15:46
Выложи куда-нибудь свою схему. Может кто и найдет ошибку.
8 Зойч
 
03.09.14
15:50
по таблице значений отчет?
9 Зойч
 
03.09.14
15:51
скорее всего виснет на этапе получения представлений для ссылочных значений
10 Зойч
 
03.09.14
15:52
И вообще можно напрямую в документрезультат выводить
11 Мимохожий Однако
 
03.09.14
15:54
Возможно, итоги не актуальны на конец августа. Сделай пересчет
12 Сергиус
 
03.09.14
15:56
(11) Регистр оборотный..для него это тоже актуально?
13 Сергиус
 
03.09.14
15:58
(9) <<скорее всего виснет на этапе получения представлений для ссылочных значений..

почему тогда виснет конкретно по данным одного месяца? по данным другого все намного быстрее
14 Сергиус
 
03.09.14
16:03
(6)Замер показал:

    Форма.ФормаОтчета.Форма    308    ЭлементРезультата=ПроцессорКомпоновки.Следующий();    Кол.- 112898    Врем.(чистое)-566,235326    %(Врем.)(чистое)99,61
15 Мимохожий Однако
 
03.09.14
16:04
(12)Проверить просто - сделай пересчет
16 Сергиус
 
03.09.14
16:06
(15) Конкретно за этот период(с 01.08 по 31.08)?

P.s. Делал...все так же.
17 Сергиус
 
03.09.14
16:10
(8)Соединяются 2 набора данных - в одном запрос, в другом таблица курсов валют.
18 Сергиус
 
03.09.14
16:58
(14) Получается реальный "тупеж" на ПроцессорКомпоновки.Следующий(). О чем это может говорить?
Программист всегда исправляет последнюю ошибку.