Все версии вплоть до 2009-й (в 2012 не смотрел, скорее всего та же ситуация), российский модуль ОС , класс создания строк журнала амортизации RAssetProposalDepriciation, метод createJournalLines().
В принципе отсутствует контроль на самортизированность ОС по текущей итерации обработки запроса на картотеку, и по всем самортизированным ОС впустую (результат нулевой) прогоняется полный цикл расчета амортизации с даты последней амортизации по заданную дату формирования, что приводит к монотонному возрастанию времени формирования строк журнала со временем.
Исправляется добавлением в самую первую строку метода, перед инициализацией итератора, проверки в виде :
X++:
if(RAssetSumCalc_Trans::newAssetPeriod(rAssetTable.AccountNum, _assetStandardId, datestartmth(runDate) - 1).netBookValue() == 0)
return;
Статистика по эффективности :
- Всего 5500 с копейками ОС, амортизируются около 2200 (остальные самортизированы)
- Время формирования строк журнала амортизации - полтора-два часа до исправления, 15 минут после исправления