Йоу!! Я то думал там всё так круто, что даже стеснялся заглянуть, а там....
Вобщем градусник пресчитывается на каждый inccount, хотя реально прогесс бар рефрешится ТОЛЬКО на каждый процент...
Во вложении градусник (VKUL_SysOperationQuick), который, рефрешится на каждый процент, т.е. типа не тормозит
Добавлены методы:
- incCountQuick() аналог обычного incCount, только работает быстро
- updateCount() - для любителей экстремального разгона

задает КОЛИЧЕСТВО записей после которого вызывать рефреш. Если параметр не задан - рефрешится будет каждый 1% записей.
- setText не переопределял, ибо некогда.. Погоняю класс, если всё ок - модифицирую базовый класс и там посмотрим. Другими словами settext тормозит по прежнему.
По поводу мнения, что в общем объеме вычислений затраты на тормоза градусника потеряются - доложу завтра. Сильно сомневаюсь ибо не оптимист я по отношению к быстродействию Аксапты

Как раз мне себестоимость за пол года пересчитать надо
Ниже результаты тестов. 2 поледних жопа- с использованием быстрого градусника.
PHP код:
static void Job24(Args _args)
{
reqitemtable it;
SysOperationProgress progr = New SysOperationProgress();
timeofday t;
int i;
;
select count(recid) from it;
t = TimeNow();
progr.setTotal(it.RecId);
While select RecId from it
{
i = it.RecId;
// progr.setText("");
// progr.incCount();
}
info(time2str(TimeNow()-t,0,0));
}
-- info - 10:52
static void Job24(Args _args)
{
reqitemtable it;
SysOperationProgress progr = New SysOperationProgress();
timeofday t;
int i;
;
select count(recid) from it;
t = TimeNow();
progr.setTotal(it.RecId);
While select RecId from it
{
i = it.RecId;
progr.setText("");
progr.incCount();
}
info(time2str(TimeNow()-t,0,0));
}
-- info - 46:31
static void Job24(Args _args)
{
reqitemtable it;
VKUL_SysOperationProgressQuick progr = New VKUL_SysOperationProgressQuick();
timeofday t;
int i;
;
select count(recid) from it;
t = TimeNow();
progr.setTotal(it.RecId);
While select RecId from it
{
i = it.RecId;
// progr.setText("");
// progr.incCount();
progr.incCountQuick();
}
info(time2str(TimeNow()-t,0,0));
}
-- info - 16:36
static void Job24(Args _args)
{
reqitemtable it;
VKUL_SysOperationProgressQuick progr = New VKUL_SysOperationProgressQuick();
timeofday t;
int i;
;
select count(recid) from it;
t = TimeNow();
progr.setTotal(it.RecId);
progr.updateCount(1000000);
While select RecId from it
{
i = it.RecId;
// progr.setText("");
// progr.incCount();
progr.incCountQuick();
}
info(time2str(TimeNow()-t,0,0));
}
[B] -- info - 10:40 !!![/B]
:-\
ЗЫ: записей 10 миллионов