|
Помогите с СКД | ☑ | ||
---|---|---|---|---|
0
shulkin
27.11.13
✎
18:55
|
Делаю отчет. В отчете программно выполняю СКД. Но он, зараза, выполняется оооочень долго. Именно на строке
ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.Вывести(ПроцессорКомпоновкиДанных); Подскажите, пожалуйста, что надо исправить, что бы взлетело? Очень срочно надо решить задачу. Может есть какая-та деталь в настройках, передаваемых в СКД, которые сильно тормозят выполнение? ПОМОГИТЕ!!!!! Код: КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных.Вставить("Реализация", Реализация); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, , ); НоваяРеализация = Новый ТаблицаЗначений; ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.УстановитьОбъект(НоваяРеализация); ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.Вывести(ПроцессорКомпоновкиДанных); |
|||
1
Armando
27.11.13
✎
18:58
|
А если просто отчетом вывести, то быстро работает?
|
|||
2
Armando
27.11.13
✎
18:58
|
Мож запрос кривой или ТЗ большая?
|
|||
3
bugz2003
27.11.13
✎
18:58
|
ВнешниеНаборыДанных.Вставить("Реализация", Реализация)
что такое "Реализация" и как она заполняется? |
|||
4
Armando
27.11.13
✎
18:59
|
>> выполняется оооочень долго
сколько? |
|||
5
Armando
27.11.13
✎
19:00
|
(2) сори, не увидел, что там внешний набор
|
|||
6
samozvanec
27.11.13
✎
19:00
|
(0) а что с набором происходит? вычисляемые поля/ресурсы, выражения сложные?
|
|||
7
shulkin
27.11.13
✎
19:01
|
(1) Просто отчетом не пробовал, иначе надо полностью реорганизовать отчет. А потратил на изучение программного выполнения СКД несколько недель уже. Жалко своего труда. Хочу уже добить отчет. Все работает как надо, единственная проблема - тормозит.
|
|||
8
shulkin
27.11.13
✎
19:02
|
использую в отчете набор данных - объект. Может это кому-нибудь что подскажет
|
|||
9
samozvanec
27.11.13
✎
19:04
|
(8) не слепые
(7) а нафига в коллекцию, если отчет? почему обрабатываешь именно в СКД? |
|||
10
shulkin
27.11.13
✎
19:04
|
пробовал уже даже программно изменять состав полей набора данных в зависимости от выбранных группировок пользователем, с надеждой что именно объемы данных так сильно грузят вывод Процессора Вывода Результата Компоновки Данных В Коллекцию Значений. Выиграл в выполнении только 2 секунды - несерьезно.
|
|||
11
shulkin
27.11.13
✎
19:07
|
(9) отчет представляется двумя таблицами. Обе на основании одних и тех же данных. Поэтому решил целесообразней сначало отобрать данные по условиям отбора, загнать в ТЗ, ну и дальше с ней работать...
В СКД использую именно потому что не знаю как преобразовать пользовательские отборы в язык запроса 1С. |
|||
12
shulkin
27.11.13
✎
19:15
|
(9) Ну и даже процесс вывода в табличный документ, а не в ТЗ (пробовал, экспериментировал), занимает столько же времени, разница в секундах. Получается, что процесс отбора и вывода в ТЗ и процесс группировки и вывода в табличный документ по времени одинаковый.
|
|||
13
shulkin
27.11.13
✎
19:16
|
(3) Реализация - ТЗ
|
|||
14
shulkin
27.11.13
✎
19:20
|
ладно, какие настройки в СКД лишние и их надо отключить что использовать из них только отбор и нужную группировку?
|
|||
15
shulkin
27.11.13
✎
19:21
|
или надо как-то по особенному настраивать КомпоновщикМакетаКомпоновкиДанных и ПроцессорКомпоновкиДанных, или сам ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений?
|
|||
16
samozvanec
27.11.13
✎
19:22
|
(11) как вариант - выводить не в ТЗ, а в табличный документ, должно пошустрей работать. опять же, на основании отборов, сразу ограничить ТЗ Реализация - хотя бы периоды и отборы на равенство по измерениям.
еще вопрос - зачем Объект, а не Запрос? СКД оптимизирует запрос, может даже ускориться выполнение. хотя я иногда по этой же причине использую внешний набор) думаю, проблема в размере входной таблицы и в действиях, которые с ней совершаются |
|||
17
shulkin
27.11.13
✎
19:23
|
(16) Объект, потому что выгребаю данные из нескольких баз
|
|||
18
shulkin
27.11.13
✎
19:25
|
ТЗ конечно большая, потому что берутся данные с начала года, в разрезе контрагентов, складов, номенклатуры, стран.
|
|||
19
shulkin
27.11.13
✎
19:27
|
(16) >>>Реализация - хотя бы периоды и отборы на равенство по измерениям.
не совсем понял |
|||
20
GANR
27.11.13
✎
19:30
|
(0) А данных много выгружается в коллекцию. Если да - то может быть следуют применить фильтрацию данных? Зачем пользователю какие-то длинные портянки из 20000 номенклатурных позиций, к примеру - он их запоминать будет?
(18) А если попытаться проиндексировать ТЗ по полям, по которым идут отборы и соединения v8: оптимизация поиска по структуре? Вот только, к сожалению не могу знать - будут ли в СКД использоваться эти индексы. |
|||
21
GANR
27.11.13
✎
19:35
|
+(20) А запрос, который формирует СКД с учетом группировок, отборов и ТД, которые накладывает юзер (для набора данных типа "Запрос") можно вот так http://ximage.ru/data/imgs/1364297082.jpg если что.
|
|||
22
echo77
27.11.13
✎
19:48
|
(17) сколько это по времени занимает?
|
|||
23
badboychik
27.11.13
✎
19:53
|
а внешний набор этот большой? Вывали скриншот структуры полей
|
|||
24
shulkin
28.11.13
✎
10:18
|
(22) Данные из других баз выгребаются долго. Приходится выгребать данные по месяцам даже только потому что OLEUser подыхает при долгой выборке, сразу за весь период.
(23) Структура внешнего набора [url]http://www.ximage.ru/index.php?id=1385619440[/url] |
|||
25
shulkin
28.11.13
✎
10:18
|
||||
26
catena
28.11.13
✎
10:37
|
(11)СКД умеет выводить две таблицы основанные на одном наборе данных с разными настройками в одно нажатие абсолютно штатно же.
|
|||
27
samozvanec
28.11.13
✎
10:50
|
почему сразу не выводишь в отчет средствами скд? что такого потом с таблицей происходит, чего нельзя в скд сделать? имхается мне, что в коллекцию подольше выводить
|
|||
28
shulkin
28.11.13
✎
11:43
|
(27) Потому что вывожу результат два раза, лишь с разными группировками.
Поэтому решил, что лучше сначала один раз отобрать в ТЗ. |
|||
29
shulkin
28.11.13
✎
11:49
|
появилась мысль отобрать данные используя построитель запроса, что бы в нем уже применить пользовательские отборы. Отпишусь )
|
|||
30
shulkin
28.11.13
✎
12:35
|
Есть мысль что запрос пошустрее отберет чем ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений.
Есть ТЗ, есть сохраненные настройки СКД. Как получить текст запроса выборки данных из ТЗ с примененным к ней отбором из настроек? |
|||
31
shulkin
28.11.13
✎
12:39
|
да, и тема с построителем запроса что-то не пошла )))
|
|||
32
catena
29.11.13
✎
06:22
|
(28)СКД умеет это делать ШТАТНО! при выводи заводи две таблицы и каждой свои группировки.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |