Имя: Пароль:
1C
1С v8
Долго выводит результат СКД
0 serg-lom89
 
10.04.17
15:17
Добрый день уважаемые форумчане.Прошу вашей помощи.

Формирую отчет с помощью СКД.
Вывожу данные как Диаграмма.

Программно ставлю точки,серии диаграммы.

И что то долго выводит данные на форму,хотя запрос через в отладчике выполняется очень быстро.
Начал грешить что много рассчитывается ресурсов.
Пошел путем что их очищаю,и подставляю в зависимости от выбранных пользователем.
Чуток быстрее начало работать ,но все равно нет (
Подскажите,када копать то?
1 serg-lom89
 
10.04.17
15:21
в запросе были вложенные запросы,переделал
2 serg-lom89
 
10.04.17
16:11
неужели никто не сталкивался ?
3 Timon1405
 
10.04.17
16:16
1 сделайте замер производительности
2 >>Программно ставлю точки,серии диаграммы.
Если в этих расчетах используются ссылки на объекты БД, то может тормозить из-за получения объектов. возможно ли эти данные вычислить в запросе?
4 PCcomCat
 
10.04.17
16:18
Чем больше вычисляемых полей, тем дольше формирует. Пробуй в запросе по-возможности вычислить.
5 serg-lom89
 
10.04.17
16:19
(3) не все получиться вычислить в запросе на самом деле
6 ERWINS
 
10.04.17
16:21
а сам запрос?
а померить что выполняется долго, вывод или запрос?
7 PCcomCat
 
10.04.17
16:26
Запрос может выполняться быстро. А вот из-за вычислений в СКД в разы увеличится вывод результата.
Если слишком большие тормоза, то лучше оптимизировать под вычисление в запросе или программное вычисление полей по-максимуму.
8 Timon1405
 
10.04.17
16:28
(5) замер в студию.
он покажет где проблема: в запросе или в постобработке
верим, бывает такое, что не вычислить, например, контрольный символ в штрихкоде на лету. если постобратоку ускорить не получится, может быть стоит изменить структуру конфигурации, ввести какие-то служебные таблицы, рассчитать эти данные заранее
9 ERWINS
 
10.04.17
17:54
(7) еще может быть обращение к полям после запроса.
10 serg-lom89
 
11.04.17
10:49
воткнул в кнопку сформировать время выполнения
На строчке
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);
время выполнения
1(секунд)- 0,02


    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
скажем так от 20 секунд до 42 секунд
11 serg-lom89
 
11.04.17
10:53
это выборка данных за месяц.
с Начала года
На строчке
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки);
время выполнения
1секунд


    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
46 сек
12 serg-lom89
 
11.04.17
11:02
(8) вот примерно такие показатели
13 ERWINS
 
11.04.17
11:10
в выводе у тебя вероятно идет обращение  к полям базы
14 serg-lom89
 
11.04.17
11:22
(13) как сделать более оптимально тогда?
просто что то я зашел в тупик(
15 Timon1405
 
11.04.17
11:37
(14) >>Программно ставлю точки,серии диаграммы.
16 Timon1405
 
11.04.17
11:37
Что там за расчеты?
17 serg-lom89
 
11.04.17
11:46
(16)
    Груп = Серия.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
    Груп.Использование = Истина;
    Груп.Поле = Новый ПолеКомпоновкиДанных(ПолеСерий);

точки там способом
        Точки = Диаграмма.Точки.Добавить()    ;
18 serg-lom89
 
11.04.17
12:02
сделал что бы не все ресурсы расчитывались,а какие пользователь выбирает. программно добавляю ресурсы выбранные
19 ERWINS
 
11.04.17
12:04
(14) код покажи
20 ERWINS
 
11.04.17
12:05
вычисляемые поля

+
код в заполнении макета
21 serg-lom89
 
11.04.17
12:09
(20) наверное так проще будет
http://my-files.ru/kav1nv
отчет мой