Имя: Пароль:
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) вы правы. Это типовой регламентированный отчет. Где реализована выгрузка по утвержденному формату. Очень не хочется писать эту выгрузку... Очень!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн