Имя: Пароль:
1C
 
Отчет на СКД съедает всю память
0 DenyK1
 
04.08.10
10:05
При формировании отчета на СКД (большой объем выводимых данных) начинает поедаться оперативка, в итоге падает клиентское приложение.
Можно ли с этим как-то бороться? Есть ли ограничение на количество строк/столбцов в итоговой форме?
1 Fragster
 
гуру
04.08.10
10:09
был глюк - если в макете сделать группировку, а потом - еще одну вложенную группировку типа "детальные записи" - то оперативки кушалось примерно в 8 раз больше на построение...
2 DenyK1
 
04.08.10
10:29
В отчете 4 группировки по измерениям, "детальных записей" нет, и всего 3 таких таблицы (разный порядок группировок и состав колонок)...
Если не делать отбор (например по филиалу) - клиентская часть просто падает молча, либо говорит перед этим "не хватает памяти" (ну и диспетчер задач естессно показывает что вся память занята процессом 1cv8)
3 mikecool
 
04.08.10
10:29
мб параметры не указаны для компоновки?
4 DenyK1
 
04.08.10
10:30
Что интересно, если все-таки (с отборами) отчет сформировать, то при закрытии вся память освобождается... Т.е. получается что вся выходная форма хранится в оперативке :(
5 DenyK1
 
04.08.10
10:31
3 - какие параметры?
6 mikecool
 
04.08.10
10:32
(5) отборы и параметры указаны для компоновщика или где-нить в секции ГДЕ основного запроса? фигурные скобки присутствуют?
7 Ksandr
 
04.08.10
10:33
мне кажется дело в запросе
8 Лефмихалыч
 
04.08.10
10:39
(0) оптимизируй запрос или откажись от какой-то части данных
(1) это не глюк, это так и должно быть, ибо детальные записи - это ВСЁ ваще.
9 DenyK1
 
04.08.10
11:47
(6) да везде, там запрос на 1000 строк и куча параметров, доступных для интерактивного изменения и "скрытых" для юзера, {} - есть тоже
(8) запрос выполняется быстро, максимум за 0,5 - 1 минуту, оптимизировать там уже нечего :( отказаться от части данных не я, а руководство не хочет :) я бы с удовольствием :)
10 DenyK1
 
04.08.10
11:49
Запрос (и параметры) мне кажется тут ни причем... Дело в том, что СКД или сама 1С пытается запихать всю выходную форму в оперативку, а она большая очень... :( Скорее всего это фича или глюк самой платформы, ну или по крайней мере СКД....
11 utilize
 
04.08.10
13:16
может тогда запрос в студию?
12 Лефмихалыч
 
04.08.10
13:17
(9) а как ты проверял, что запрос выполняется 0.5-1 минут?
(11) лучше не запрос, а схему с настройкой и всеми пирогами
13 Лефмихалыч
 
04.08.10
13:18
+(12) ну, и - намекнуть, на какой конфе это смотреть
14 utilize
 
04.08.10
13:18
(12)+100500
15 Fragster
 
гуру
04.08.10
13:24
(12) от 0% до того момента как побежит бегунок вывода в СКД
16 Fragster
 
гуру
04.08.10
13:29
(8).2 да не, смысл в том, что когда все поля переносишь в группировку - все нормально
17 Лефмихалыч
 
04.08.10
13:32
(15) а давай
(16) я и говорю, это не глюк, это так было, есть и будет, если детальные записи есть. Посмотри, какой запрос в итоге СКД стряпает, когда детальные записи в настройках есть - офигеешь.
18 Лефмихалыч
 
04.08.10
13:32
+(17) а давай ответ автора посмотрим?
19 Fragster
 
гуру
04.08.10
13:33
(17) ну, я только понял, что чем меньше вложенных группировок, тем меньше жрет СКД, причем в геометрической прогрессии
20 Лефмихалыч
 
04.08.10
13:35
(19) так так оно всегда было - с итогами и построителем та же история
21 DenyK1
 
04.08.10
13:36
(12), (15) - да в консоли запросов естессно, она то память не хавает и выводить сразу начинает, не висит, пока вся выборка не выведется
Запрос и схему - не могу к сожалению, конфига вообще самописанная, но сэмулировать ситуацию элементарно - какойнить регистр из 100-1000 записей на самого себя перемножить пару-тройку раз, чтоб на выходе порядка мульёна записей получилось - и вперед, к победе коммунизма (1С-ка точно свалится на таком объеме). Группировку вообще одну можно оставить (т.е. линейная выходная форма) - не поможет.
Вывод - память жрет сама СКД, а это я считаю никакая не фича, а самый натуральный глюк (та же консоль запросов ведь не жрет...).
22 Лефмихалыч
 
04.08.10
13:38
(21) то есть попыток посмотреть, какой по факту запрос СКД генерит, даже не предпринималось,  я правильно понимаю?
23 DenyK1
 
04.08.10
13:38
(17) - еще раз говорю, детальных записей нет, только 4 группировки.
Запрос скомпонованный естессно видел, его и копировал в консоль запросов, когдла время замерял.
24 DenyK1
 
04.08.10
13:39
а что может быть страшного в скомпонованном запросе? там только параметры подставлены, да "представления" для сортировки добавлены, больше ничего помимо самого исходного запроса там и нет....
25 Лефмихалыч
 
04.08.10
13:39
(23) про детальные записи разговор не про твой случай, расслабьсо
26 Fragster
 
гуру
04.08.10
13:40
(23) 4 вложенные группировки?
27 DenyK1
 
04.08.10
13:40
(25) :))) да не напрягался особо :)))
28 DenyK1
 
04.08.10
13:40
(26) даже если убрать все группировки - ситуация та же
29 Лефмихалыч
 
04.08.10
13:41
(24) скопонованный запрос может разительно отличаться от того, который изначально в схеме указан.
(28) ну, батенька, аппендицит по телефону не лечится
30 DenyK1
 
04.08.10
13:42
нарисуйте любую схему, какая вам нравится, главное чтоб в итоговой выборке было под 1 000 000 записей и понаблюдайте за расходом памяти в процессе формирования отчета, через тот же диспетчер задач
31 DenyK1
 
04.08.10
13:43
в оригинальном отчете у меня должно было бы выводиться около 200 000 записей о 30 колонках.... не выводится... на 3Гб клиентская часть с шумом валится...
32 DenyK1
 
04.08.10
13:44
(29) например? кроме того что я описал
33 DenyK1
 
04.08.10
13:45
(29) набор данных то один, если что.... так что нет там ничего "разительно отличающегося"
34 Лефмихалыч
 
04.08.10
13:48
(31) "200 000 записей о 30 колонках"?.. и что вы таки после этого хотите? как правило бабу? :) Этот отчет ни кому не нужен, если он не в фискально-контролирующие органы предъявляется (это единственный потребитель бессмысленных отчетов в этой стране).
Попробуй просто создать ТабличныйДокумент такого размера без СКД, думаю, одноэска так же обосрецца.

(33) к этому набору пристёгиваются характеристики и возможно другие наборы, если есть соединение наборов
35 Лефмихалыч
 
04.08.10
13:51
вообще, забавно, как реляционные базы данных используются для того, чтобы долго-долго собирать инфу, раскладывая ее по разным таблицам, чтобы потом свалить все в ОДНУ НЕВ...БЕННУЮ ПЛОСКУЮ хреноту, которую потом пытаться круть-верть ее в экселе...
36 Невский Александр
 
04.08.10
13:54
(0) пробовал в консоли запускать свой запрос на СКД?
37 utilize
 
04.08.10
14:00
(35)зачем раками душу дразнишь?)
38 Лефмихалыч
 
04.08.10
14:01
(37) на самом деле раки - не самая вкусная закусь :)
39 DenyK1
 
04.08.10
14:01
(34) набор данных один, характеристик нет, скомпонованный запрос отличается только подстановкой отборов
(35) это точно! сам поражаюсь таким желаниям :))))))))))))
(36) пробовал, писал уже выше об этом
40 DenyK1
 
04.08.10
14:02
туплю, при чем тут раки? :))))
41 Лефмихалыч
 
04.08.10
14:04
(39) ну, скажи, что для того, чтобы получить этот отчет, нужен комп с x64 архитектурой, ибо только на таком компе аппликухи могут получить достаточное количество рамы для "200 000 записей с 30 колонками". Кстати, а распечатывать это оне не собираются?
(40) фотка в ЛК Лефмихалыч
42 DenyK1
 
04.08.10
14:13
(41) - распечатывать? :)))))))))))))))
на win7x64 клиентская часть 8.1 будет работать? если сервер приложений на х32?
43 DenyK1
 
04.08.10
14:15
(41) по поводу распечатки - печатать не пытались, но сохранить в ехель - да, ехель 2007 естессно подвис колом тоже :)))))))
44 Лефмихалыч
 
04.08.10
14:16
(42) ну, да, распечатывать - для последующей автоматической обработки шредером
45 Невский Александр
 
04.08.10
14:25
Все настройки СКД, заслуживающие внимания в студию
46 DenyK1
 
04.08.10
14:25
(45) прочитайте топик с начала
47 Лефмихалыч
 
04.08.10
14:28
(45) читай (31)
48 Невский Александр
 
04.08.10
14:28
Не вижу ... А ты пробовал 1) таблицы по отдельности выводить по 1 штуке  и 2) баловаться группировками, выводить их не по 4, а по 2-3 штуки?
49 Невский Александр
 
04.08.10
14:29
(47) прочитал
50 Лефмихалыч
 
04.08.10
14:29
(49) а, ну тогда ладно
51 DenyK1
 
04.08.10
14:37
(48) еще раз: рисуем простейшую схему, запрос по регистру из 1000 записей, помноженному сам на себя (left join), на выходе 1 000 000 записей, клиентская часть падает из-за нехватки памяти.
52 Bober
 
04.08.10
14:43
(31) - отключи расшифровку
(51) - безумие выводить 1 млн. пользователю
53 Fragster
 
гуру
04.08.10
14:53
(51) а накуа?
54 DenyK1
 
05.08.10
06:19
(52) первый дельный совет! :) убрал расшифровку - памяти хватило :)
но естессно полностью согласен, что отчет в 1 000 000 строк смотреть никто не будет :)
55 rozer76
 
05.08.10
15:31
(54) Если несложно пояснить как вы это сделали? У меня такая же проблема с одним отчетом :(
56 Bober
 
05.08.10
17:00
(55)
КомпоновщикМакетаКомпоновкиДанных, у метода Выполнить() третий параметр отвечает за расшифровку данных в СКД
57 Bober
 
05.08.10
17:23
(55) Если надо отключить расшифровку только по конкретному полю, то:
 - переходишь на закладку Макет
 - добавляешь макет поля для ПоляКомпоновкиДанных\
 - указываешь для него ячейку к табличном документе
 - заходишь в свойства ячейки, у свойства "Заполнение" выставляешь значение "параметр"
 - в появившихся дополнительных свойствах, свойство "Параметр" заполняешь  именем поля СКД, в свойство "параметр расшифровки" оставляешь пустым.
58 rozer76
 
06.08.10
08:04
(57) благодарю
Основная теорема систематики: Новые системы плодят новые проблемы.