|
v7: Чем можно заменить расчет регистра остатков? |
☑ |
0
Zhuravlik
26.07.11
✎
11:20
|
Здравствуйте. Есть документ, который очень долго проводиться, попросили оптимизировать. В обработке проведения сразу обратил внимание на строчки:
if( ИтогиАктуальны()=0 )then
Рег2.ВременныйРасчет(1);
РассчитатьРегистрыНа(ТекущийДокумент());
endif;
Решил замерить время:
start = _GetPerformanceCounter();
if( ИтогиАктуальны()=0 )then
Рег2.ВременныйРасчет(1);
РассчитатьРегистрыНа(ТекущийДокумент());
endif;
fin = _GetPerformanceCounter();
time = Окр((fin - start)/1000);
Сообщить("Время расчета регистров:" + Строка(time) + "Для документа " + Строка(ТекущийДокумент()));
start = _GetPerformanceCounter();
//Весь остальной код
fin = _GetPerformanceCounter();
time = Окр((fin - start)/1000);
Сообщить("Время остальных операций:" + Строка(time) + "Для документа " + Строка(ТекущийДокумент()));
И перепровел в тестовой базе все документы этого вида эа два дня, в итоге получилось что на расчет регистров тратиться 19-26 секунд, а на остальные операции 1-2 сек.
В дальнейшем он используется так:
рег2.СводныеОстатки(,МатериалГаз.ТекущийЭлемент(),);
Если рег2.Количество = 0 Тогда
Сумма_=0;
Иначе
Сумма_= рег2.Сумма/рег2.Количество;
КонецЕсли;
Я не очень опытен, не знаю как от этого расчета избавится, и возможно ли это вообще.
|
|
1
viktor_vv
26.07.11
✎
11:25
|
Поставить фильтры на регистр.
|
|
2
Zhuravlik
26.07.11
✎
12:04
|
(1) Спасибо) Намного быстрее, но возникла проблема, мне надо установить фильтр на несколько значений измерения, я могу их задать списокм значений?
|
|
3
Mikeware
26.07.11
✎
12:05
|
(2) СП украли?
|
|
4
Мимохожий Однако
26.07.11
✎
12:07
|
Выровняй Дату актуальности и границу последовательности.
|
|
5
Zhuravlik
26.07.11
✎
12:07
|
(3) нет, просто надо быстрее, я и там и здесь... Вот нашел УстановитьЗначенияФильтра, вроде то?
|
|
6
Mikeware
26.07.11
✎
12:09
|
(5) пардон, я не посмотрел, что ты 1986...
|
|
7
Zhuravlik
26.07.11
✎
12:14
|
(6) Я говорил, что неопытен.
(1)Взял метод УстановитьЗначенияФильтра, создал список значений для него, все выполняется быстрее гораздо) Спасибо Вам за помощь
|
|
8
Mikeware
26.07.11
✎
12:15
|
(7) 86 - это не "неопытность", и не "молодость". Это - увы - диагноз.
|
|