Имя: Пароль:
1C
1C 7.7
v7: ТИС долго формируется отчет по клиентам
0 Uragan_a
 
14.08.13
06:59
Страшно долго формируется отчет по клиентам. Тупо зависате на Заполнение выходных данных, кто то сталкивася? Всего две группировки контрагент и номенклатура
1 chelentano
 
14.08.13
07:02
(0) а посмотреть, что там происходит? никак?
2 Uragan_a
 
14.08.13
07:13
в отладчике? простосто думал может кто что посоветует?
3 Ёпрст
 
гуру
14.08.13
09:19
отчет то какой хоть ?
ведомость по клиентосам ?
4 Ёпрст
 
гуру
14.08.13
09:19
или что ?
5 Злой Бобр
 
14.08.13
09:35
Если типовой отчет то увеличьте место под темповые файлы пользователя ОС. К тому же если фильтры нестоят то это одуренный объем выходных данных - ставьте фильтр на контрагента, всеравно смотреть сразу 60к строк вы несможете.
6 пипец
 
14.08.13
10:02
вопрос из серии - у меня машина не едет ...вот фото - посмотрите, что может быть (с)
ЗЫ а раньше он как формировался ? а период не пять лет ? итд
7 VladZ
 
14.08.13
10:06
(0) Сохрани его во внешний отчет. Навтыкай сообщить(ТекущееВремя()); в нужных местах и анализируй на здоровье!
8 ildary
 
14.08.13
10:06
И главное - о том, в каком состоянии регистры, какая база (dbf, sql), какой комп, на котором она вертится - должны догадаться телепаты.
9 KUBIK
 
14.08.13
10:08
(7) ???
А чем отладчик с контролем времени не подходит?
10 ildary
 
14.08.13
10:15
Еще бы узнать - что это за отчет - типовой отчет по продажам или самописка с запросами в цикле?
11 chelentano
 
14.08.13
10:16
(2) ну тогда советую исправить строки с 143 по 168
12 VladZ
 
14.08.13
10:24
(9) Можно и отладчиком. В любом случае мой вариант - информативней. Обычному пользователю удобно: видит, что происходит с программой. И может эту инфу разработчику передать. Короче, сплошные плюсы. :)
13 Uragan_a
 
14.08.13
11:41
(8) регистры не знаю как, но свернул с 2004 года по 1 января 2013 года вот этой обработкой http://infostart.ru/public/63400/, база дбф, база уменьшилась с 2,5 гигов до 400 метров. Комп серверный.
14 Uragan_a
 
14.08.13
11:42
(8) как узнать в каком они состоянии?)))

Отчет типовой по клиентам
15 Uragan_a
 
14.08.13
11:43
(6) формировалАсь долгО, но сейчас база не очень большая стала))) старые года свернуты
16 Ёпрст
 
гуру
14.08.13
11:49
(13) молодец. Прои..ал всю аналитику за старые года этой свёрткой.
17 Uragan_a
 
14.08.13
11:51
(16) ну есть еще одна база старая. мне бы понять в чем причина долгого формирования отчета по клиентам.

Делается за год всего. Из границы последовательности может быть?
18 пипец
 
14.08.13
11:52
(15) если дата свертки входит в период отчета - то ой ;))
19 Ёпрст
 
гуру
14.08.13
11:52
(17) нет.
из-за мусора в табличке итогов.
20 пипец
 
14.08.13
11:53
стопудово входит ;)))
21 Uragan_a
 
14.08.13
11:54
(19) возможно что-то сделать?
22 Uragan_a
 
14.08.13
11:58
(20) сделал, чтобы не входила особого прироста нет(
23 Ёпрст
 
гуру
14.08.13
11:59
(21) можно. прибить таблички итогов, сделать их пересчет.
24 Ёпрст
 
гуру
14.08.13
11:59
это для начала.
25 Uragan_a
 
14.08.13
11:59
(19) сначало идет обработка документов за весь год, почему-то, хотя ГП август.

а потом еще конкретно висит на Заполнении выходных данных.
26 Ёпрст
 
гуру
14.08.13
11:59
посмотреть, какие регистры не закрыты. это потом.
27 Uragan_a
 
14.08.13
12:00
(26) а это как сделать
28 Ёпрст
 
гуру
14.08.13
12:00
(25) ГП ни на что не влияет в ИБ... воообще.
Это просто "маркер", который сообщает пользователю, о "правильной" последовательности. всё.
29 Uragan_a
 
14.08.13
12:00
(23) так понимаю это cdx или какие ?))) а потом тестирование и исправление с пересчетом итогов?
30 Ёпрст
 
гуру
14.08.13
12:02
(27) удалить все файлы RG*.DBF, зайти в предприятие, сдвинуть ТА на первый док, потом на последний.
Или в Пофигураторе сделать полный пересчет итогов (правда он дольше будет - будут пересчитаны итоги шапки документов, ежели галка итог стоит у реквизита табл. части)
31 Uragan_a
 
14.08.13
12:04
(30) спасибо

а глянуть какие регистры не закрыты и как их закрыть
32 VladZ
 
14.08.13
12:06
(13) "Комп серверный, база маленькая, отчет стандартный."... Рукалицо!
33 VladZ
 
14.08.13
12:07
Нашел что именно тормозит? Или лечим головную боль отрубанием головы?
34 Uragan_a
 
14.08.13
12:08
(33) для меня это как минимум на ночь работы, сейчас буду смотреть, ночь длинная)
35 Uragan_a
 
14.08.13
12:09
(33) получается при формировании отчета надо найти кусок кода который будет выполняться долго, а для этого нужно на какждой строчке цикла наставить точек останова?
36 VladZ
 
14.08.13
12:13
(35) Смотришь код. Примерный алгоритм работы отчета: получение данных, приведение к нужному виду, вывод данных. Находишь эти куски кода. Дальше: либо ставишь сообщить(текущеевремя()), либо через отладчик анализируешь производительность этих кусков.
37 пипец
 
14.08.13
13:43
38 пипец
 
14.08.13
13:46
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=23&lid=390
во тож самое и бесплатно
39 Злой Бобр
 
14.08.13
13:55
(34) Смотреть то сам незная что. Ну ну ...
Невзлетит.
40 Злопчинский
 
15.08.13
00:31
[Шишки для мартышки] Упаковка/ускорение нулевых итогов регистров для файлового вариант 7.7
http://infostart.ru/public/180018/
41 КонецЦикла
 
15.08.13
00:35
Помню как-то давно в книжном попалась книга, в ней была глава "Как ускорить формирование отчета"
Было написано "На вопрос о восстановлении последовательности нужно ответить "Нет""
42 Злопчинский
 
15.08.13
00:46
(41) ну а фигли... я у себя сделал паралельный регистр по взаиморасчетам с клиентами, куча без учета КредДок... и нормуль.. если что - разворачиваю тупо обратным счетом...
43 Uragan_a
 
15.08.13
07:51
а расскажите, что значит закрытый регистр?
44 Voronve
 
15.08.13
08:06
Закрытый регистр:
Приход, ООО Рога и копыта, Основной склад, Шуруп, 10 шт
Расход, ООО Рога и копыта, Основной склад, Шуруп, 10 шт

Незакрытый регистр:
Приход, ООО Рога и копыта, Основной склад, Шуруп, 10 шт
Расход, ООО Рога и копыта,               , Шуруп, 10 шт
45 Uragan_a
 
15.08.13
13:00
(44)спасиб, кажется немного понимаю. То есть мусор остается, так бы строчки ушли в 0, а так болтаются обе?
46 Ёпрст
 
гуру
15.08.13
13:10
(45) на вот картинку, наглядную, как переносятся итоги в следующий период при закрытом (там где одно измерение) и не закрытом регистре (там, где их 2)

http://s55.radikal.ru/i147/0907/fc/0d1be61a68c2.jpg
47 Попытка1С
 
15.08.13
13:13
(46) Сам рисовал?
48 povar
 
15.08.13
13:17
(43) сравни файлы по объему rg и ra
49 Ёпрст
 
гуру
15.08.13
13:26
(47) да.. в 2009 году пришлось рисовать одному товарищу, который добавил в регистр измерение ТекущийДокумент и гордился этим.
50 Ёпрст
 
гуру
15.08.13
13:27
хотя он даже после картинок рогом упёрся на своём..
51 Uragan_a
 
15.08.13
13:29
(46) спасибо очень наглядно
52 Uragan_a
 
15.08.13
13:34
(48) она меньше на 2 метра а другие больше на 2 метра
53 Uragan_a
 
15.08.13
13:34
РА 22 РГ 24
РА 26 РГ 28
РА 8  РГ 10
54 Uragan_a
 
15.08.13
13:34
(50) тут вроде даже мне понятно
55 Uragan_a
 
15.08.13
13:36
в базе до свертки РГ шки по 200 с фигом мегабайт а формируется отчет чуть ли не быстрей
56 Uragan_a
 
15.08.13
13:37
РГ в новой базе 22 а этот же в старой 406 а формируется примерно так же отчет если не быстрее.
57 Ёпрст
 
гуру
15.08.13
13:38
прибей все rg, сделай пересчет итогов в предприятии
58 Ёпрст
 
гуру
15.08.13
13:38
Далее, ищем документы с пустой датой в 1sjourn
59 Uragan_a
 
15.08.13
13:39
(57) сделал особо не помогает
60 Uragan_a
 
15.08.13
13:40
(58) есть сдх и дбв 8 и 10 метров
61 Ёпрст
 
гуру
15.08.13
13:40
тогда дай базу посмотреть
62 Uragan_a
 
15.08.13
13:41
куда можно отправить
63 Ёпрст
 
гуру
15.08.13
13:46
eprst@mail.ru
64 povar
 
15.08.13
13:50
(53) ну криминала не видно
65 Uragan_a
 
15.08.13
13:56
(64) формируется отчет около 6-7 минут может это норм?
200-300 документов в день и касса и банк и тд
66 Uragan_a
 
15.08.13
13:57
(64) ща снесу рг в старой базе итоги перечитаю и посмотрю скорость и сравню со свернутой
67 Uragan_a
 
15.08.13
14:24
наверное быстрее некуда отчет сформированный получается в 21 000 строк, и формируют они его за год 2013 (8 месяцев получается)
68 Ёпрст
 
гуру
15.08.13
14:40
(67) есть ли объединенные ячейки в макете отчета ?
+ расшифровка поди тоже есть для всех ячеек ?
69 Ёпрст
 
гуру
15.08.13
14:40
21 к строк, это не много
70 Uragan_a
 
15.08.13
14:46
за месяц моментально впринципе.

Группировки только по контрагенту и номенклатуре.
(68) объединенных не видать, что значит расшифровка)))
71 Ёпрст
 
гуру
15.08.13
14:53
свойства ячейки - расшифровка.
72 Uragan_a
 
15.08.13
15:00
(71)  я вообще дурак видать. если правой кнопкой то свойста серы, если включаю возможность реактирования и жму на свойства ячейки там нет расшифровка ) не смейтесь громко)))
73 dedmoroz777
 
15.08.13
15:12
(72) это в конфигураторе смотреть нужно
74 Uragan_a
 
15.08.13
15:40
расшифровка пусто, 6 минут вообщем
75 Ёпрст
 
гуру
15.08.13
15:43
открой отладчик, включи замер производительности, сделай отчет за месяц - отключи замер - смотри, на что тратится основное время
76 Ёпрст
 
гуру
15.08.13
15:44
да, отчет то типовой ?
или самописный ?
77 Uragan_a
 
15.08.13
15:46
(76) типовой, за месяц то быстро)))
78 Uragan_a
 
15.08.13
15:46
(75) попробую
79 Uragan_a
 
15.08.13
16:00
(75)

вот этот цикл много раз повторяется и видать время на него идет

ТЗ.Сортировать(СтрГруппировок, 1);
    ТЗ.ВыбратьСтроки();
    СтарыйКонтрагент = 0;                      
    СуммаПринятая = 0;
    СуммаВсего = 0;    
    УровеньПред = 0;                  
    ВремТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.Выгрузить(ВремТЗ);  
    ТЗ.ВыбратьСтроки();    
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
        Если ТЗ.Уровень < УровеньТовара Тогда  
            Если (НомерГруппировкиПоНоменклатуре < НомерГруппировкиПоДокументу) и (ТЗ.Уровень = НомерГруппировкиПоНоменклатуре) Тогда
                ТЗ.Сумма = 0;
            КонецЕсли;
            Если (ВидОтчета <> 3)
                или ((НомерГруппировкиПоНоменклатуре < НомерГруппировкиПоДокументу) и (ТЗ.Уровень = НомерГруппировкиПоНоменклатуре)) Тогда
                ТЗ.СуммаПринятая = 0;
            КонецЕсли;
            ВремТЗ.ВыбратьСтроки();
            Пока ВремТЗ.ПолучитьСтроку()=1  Цикл    
                Если ВремТЗ.НомерСтроки <= ТЗ.НомерСтроки Тогда
                    Продолжить;
                КонецЕсли;    
                Если ВремТЗ.Уровень <= ТЗ.Уровень Тогда
                    Прервать;
                КонецЕсли;
                Если ВремТЗ.Уровень = УровеньТовара Тогда
                    Если (НомерГруппировкиПоНоменклатуре < НомерГруппировкиПоДокументу) и (ТЗ.Уровень = НомерГруппировкиПоНоменклатуре) Тогда
                        ТЗ.Сумма = ТЗ.Сумма + ВремТЗ.Сумма;
                    КонецЕсли;
                    Если (ВидОтчета <> 3)
                        или ((НомерГруппировкиПоНоменклатуре < НомерГруппировкиПоДокументу) и (ТЗ.Уровень = НомерГруппировкиПоНоменклатуре))Тогда
                        ТЗ.СуммаПринятая = ТЗ.СуммаПринятая + ВремТЗ.СуммаПринятая;
                    КонецЕсли;
                    Если ВремТЗ.Уровень >= НомерГруппировкиПоНоменклатуре Тогда
                        ТЗ.Количество = ТЗ.Количество + ВремТЗ.Количество;
                        ТЗ.КоличествоПринятое = ТЗ.КоличествоПринятое + ВремТЗ.КоличествоПринятое;
                    КонецЕсли;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;                                          
    КонецЦикла;                                            
    ТЗ.ВыбратьСтроки();      
    Пока ТЗ.ПолучитьСтроку() = 1  Цикл      
        Если ТЗ.Уровень = УровеньДокОплаты Тогда
            ТЗ.Количество = 0;
            ТЗ.Сумма = 0;
            ТЗ.КоличествоПринятое = 0;
            ТЗ.СуммаПринятая = 0;
        КонецЕсли;
        Таб.ВывестиСекцию("Строка"+СокрЛП(ТЗ.Уровень)+"|Начало");
        Таб.ПрисоединитьСекцию("Строка"+СокрЛП(ТЗ.Уровень)+"|Реализация");
        Если (ВидОтчета = 1) или (ВидОтчета = 3) Тогда
            Таб.ПрисоединитьСекцию("Строка"+СокрЛП(ТЗ.Уровень)+"|Поступление");
        КонецЕсли;
        Таб.ПрисоединитьСекцию("Строка"+СокрЛП(ТЗ.Уровень)+"|Хвост");
    КонецЦикла;
80 Uragan_a
 
15.08.13
16:11
Пока ВремТЗ.ПолучитьСтроку()=1  Цикл    
                Если ВремТЗ.НомерСтроки <= ТЗ.НомерСтроки Тогда
                    Продолжить;
81 Uragan_a
 
15.08.13
16:12
1 строка 36 %
2 23%
3 12 %
82 Uragan_a
 
15.08.13
16:25
83 Ёпрст
 
гуру
15.08.13
16:31
оно
84 Ёпрст
 
гуру
15.08.13
16:32
собственна.. у тя с данными всё более или менее, у тя с отчетом проблемы - оптимизируешь отчет, получишь скорость
85 Uragan_a
 
15.08.13
16:33
(84) пасибки, может у кого есть уже оптимизированный)))
86 Mihenius
 
15.08.13
16:56
А свертку смотри эту

http://infostart.ru/public/15192/

А не кота в мешке ,)
87 Uragan_a
 
15.08.13
17:05
(86) ок. Так все таки проблема в свертке или отчете)

С той я не разобрался ( Слишком многа кнопок, что то делалось, база слетала и потом вроде все так же оставалось
88 Злопчинский
 
15.08.13
22:22
(85) а откуда мы возьмем оптимизированный твой самописный отчет?
.
не нравится мне конструкция в (79-80).. структура данных криво подготовлена скорее всего - отсюда неоптимальный вывод... бегло у тебя в цикле по одной ТЗ перебирается вторая ТЗ... хреново...
.
если бы ты выложил скриншот примерный как у тебя печформа отчета выглядит - может что и можно было бы подумать...
.
для ускорения отчета - хорошо бы его посмотреть - сформируй плоскую ТЗ без всяких группировок и подсунь в универсальный отчет по ТЗ - посмотри насколько быстро формируется..
.
http://infostart.ru/public/14794/
89 Uragan_a
 
16.08.13
03:13
(88) посмотрел еще в одной базе которая у меня валяется на компьютере, там тоже такой отчет, сохранил его как внешний, открыл в этой базе и работает так же долго.

Фишка в том, что отчет запрещал убирать группировку по номенклатуре, а она им не нужна. Убрал проверку (надеюсь не на что не влияет)  и отчет формируется в секунды.
90 Злопчинский
 
16.08.13
03:59
(89) о чем это говорит? - надо сесть и вштырится КОНКРЕТНО  в проблему. Но при это желательно обозревать и округу... а тоокажется как я говорю обычно - что гвоздь в рельсу забиваешь - да хоть кувалду возьми не пойдет... а оказывается что рельса с прошлого проекта... а здесь воощем и деревянный брус пойдет
Ошибка? Это не ошибка, это системная функция.