Имя: Пароль:
1C
1С v8
Процедура медленно работает!
0 ParinovS
 
17.09.12
18:11
Доброго времени суток! Заполняю отчет. Немного переделанный типовой 1С-кий отчет(запрос заполнения изменен). Результат выгружается в ТабличноеПоле. Причем, чтобы выгрузка работала, надо чтобы каждая ячейка имела определенное (уникальное) имя. В отчете для добавления новой строки в табличное поле используется процедура

ТекТабличноеПоле.ВставитьОбласть( ВставляемаяОбласть,,ТипСмещенияТабличногоДокумента.ПоВертикали );

для удаления:

ВыбТабличноеПоле.УдалитьОбласть( УдаляемаяОбласть,ТипСмещенияТабличногоДокумента.ПоВертикали );
1 ParinovS
 
17.09.12
18:12
Так вот!!! А теперь проблема!!! в отчет выводится порядка 7-8 тысяч строк! Это примерно 3-4 часа. Заполнил отчет, закрыл, открыл - опять 3-4 часа жди! Сделал замер производительности, и на этих двух функциях программа тратит 92 процента от общего времени выполнения! Ну и теперь собственно вопрос: Есть ли аналоги этих функций, которые будут работать быстрее?
2 vmv
 
17.09.12
18:15
есть - СКД и грамотная пропись идентификации в СтруктуруКлючей с помещением в параметр расшифровки автоматически через механизмы СКД, а дурацкая идентификация всех ячеек - это не лечиться, увы
3 Asmody
 
17.09.12
18:16
попробуй изменять отчет не в поле, а в таб.документе
4 vmv
 
17.09.12
18:16
(1) кончно тратит, ведь выводимый документ растет и растет, а его постояяно режит по живому и делают вставки где попало, мдя - таких писателей я расстреливаю
5 Wobland
 
17.09.12
18:21
(0) ТП с полем табдока не перепутал?
складывается впечатление, что автор стремится вызвать дьявола
6 ParinovS
 
17.09.12
18:21
(4) я же говорю, я только переделывал ТИПОВОЙ 1С-кий отчет. Писать с нуля, времени нет! Просто может как нибудь по другому вставлять область?
7 Wobland
 
17.09.12
18:22
(6) пиши с нуля и как белый человек. меньше времени уйдёт
8 Defender aka LINN
 
17.09.12
18:22
(0) "чтобы выгрузка работала, надо чтобы каждая ячейка имела определенное (уникальное) имя" - избавься от этого условия
9 ParinovS
 
17.09.12
18:32
Всем спасибо конечно! Но а на (1) кто нибудь ответит?
10 ParinovS
 
17.09.12
18:49
Жаль конечно, что меня протролили, но ответа на конкретный вопрос я так и не получил! Пример (4) и (5). Все больше разочаровываюсь в форуме.
П.С. Да! Можете не писать, что я криво ставлю вопрос, не понимаю предметной области и т.д.
11 YF
 
17.09.12
18:51
(10) Тут вопросов больше ...

нафига в отчете 7 тыс. строк? Кто их читает? И почему бы просто не делать выводом секций, а не извращаться с обрезанием существующего табличного поля?
12 tashi_ork
 
17.09.12
18:57
(10) Эти функции никак не заменишь. Изменяй идеологию построения.
13 Asmody
 
17.09.12
19:03
(10) тебе объяснили что делать. если разжевать, то:
1) из поля таб.документа на форме выводишь табличный документ в новый объект ТабличныйДокумент.
2) изменяешь этот ТабличныйДокумент
3) изменённый ТабличныйДокумент выводишь обратно в поле таб.дока на форме.
14 ParinovS
 
17.09.12
19:08
(13) а как это повлияет на скорость работы?
15 H A D G E H O G s
 
17.09.12
19:11
(14) Никак.
16 H A D G E H O G s
 
17.09.12
19:12
Избавляйтесь от именнованных ячеек, когда отчет дойдет до 30-40 тыщ строк - будет падать.
17 H A D G E H O G s
 
17.09.12
19:12
Волевым решением избавляйтесь, подозреваю, что это нечто регламентное, отнаследованное от типового 1С.
18 ParinovS
 
17.09.12
19:19
(17) вы правы. Это типовой регламентированный отчет. Где реализована выгрузка по утвержденному формату. Очень не хочется писать эту выгрузку... Очень!