Показать сообщение отдельно
Старый 06.11.2011, 19:58   #11  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,889 / 3165 (113) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Также решил воспользоваться советом CDR и модифицировал методы :
InventTrans.Update()
InventTrans.Insert()
InventTrans.Delete()

поставив тело каждого метода в блок try и написав такой блок catch в каждом методе :

X++:
    catch (Exception::UpdateConflict)
    {
        // warning(this.GRD_getWarningStr4UpdateConflict());
        throw Exception::UpdateConflictNotRecovered;
    }

    catch (Exception::DuplicateKeyException)
    {
        // warning(this.GRD_getWarningStr4DuplicateKeyException());
        throw Exception::DuplicateKeyExceptionNotRecovered;
    }
При такой модификации ошибка расхождения InventTrans и InventSum не возникнет, даже используя джоб
Развалились InventSum - InventTrans

Так пожалуй будет надежней.
Нельзя полагаться на то, что никто из разработчиков не ошибется при обработке исключений, для кода содержащего InventTrans.Update()
За это сообщение автора поблагодарили: Pustik (3), someOne (13).