20.10.2009, 16:23 | #1 |
Участник
|
Ошибка в расчете курсовых разниц
Добрый день.
При расчете курсовых разниц возникает такая ошибка: Невозможно отредактировать запись в Сопоставление по поставщику (VendSettlement). Возник конфликт обновления из-за того, что другой пользовательский процесс выполняет удаление записи или изменение одного или нескольких полей в записи. Вот так выглядит код в котором идет обновление данных в таблице VendSettlement (метод updateSettlement в классе CustVendTransData): X++: public CustVendSettlement updateSettlement(CustVendTransOpen _custVendTransOpen, DiscAmount _utilizedCashDisc = 0, PennyDiff _pennyDiff = 0, NoYes _canBeReversed = NoYes::No, boolean _setOffsetRecId = false, boolean _update = false, Dimension _cashDiscDimension = custVendTrans.Dimension, Voucher _taxVoucher = '') { CustVendTrans this_Orig = custVendTrans.orig(); CustVendSettlement custVendSettlement = this.parmCustVendTransStatic().custVendSettlement(); ; ttsbegin; if (_update) { ... //тут все нормально } else { custVendSettlement.clear(); if (custVendTrans.ExchAdjustment != this_Orig.ExchAdjustment) { custVendSettlement.AccountNum = custVendTrans.AccountNum; custVendSettlement.OffsetTransVoucher = custVendTrans.LastSettleVoucher; custVendSettlement.TransDate = max(custVendTrans.TransDate, custVendTrans.LastExchAdj); custVendSettlement.TransRecId = custVendTrans.RecId; custVendSettlement.ExchAdjustment = custVendTrans.ExchAdjustment - this_Orig.ExchAdjustment; custVendSettlement.DueDate = _custVendTransOpen.DueDate; } if (custVendTrans.SettleAmountMST != this_Orig.SettleAmountMST || custVendTrans.SettleAmountCur != this_Orig.SettleAmountCur || _utilizedCashDisc || !custVendSettlement.AccountNum) { custVendSettlement.AccountNum = custVendTrans.AccountNum; custVendSettlement.OffsetTransVoucher = custVendTrans.LastSettleVoucher; custVendSettlement.TransDate = max(custVendTrans.TransDate, custVendTrans.LastSettleDate); custVendSettlement.TransRecId = custVendTrans.RecId; custVendSettlement.SettleAmountMST = custVendTrans.SettleAmountMST- this_Orig.SettleAmountMST; custVendSettlement.SettleAmountCur = custVendTrans.SettleAmountCur- this_Orig.SettleAmountCur; custVendSettlement.UtilizedCashDisc = _utilizedCashDisc; custVendSettlement.PennyDiff = _pennyDiff; custVendSettlement.CashDiscDate = _custVendTransOpen.CashDiscDate; custVendSettlement.OffsetRecId = _setOffsetRecId ? custVendTrans.OffsetRecId : 0; //custVendSettlement.SettleAmountCur ? this.offsetRecid : 0; custVendSettlement.DueDate = _custVendTransOpen.DueDate; custVendSettlement.LastInterestDate = _custVendTransOpen.LastInterestDate; custVendSettlement.CanBeReversed = _canBeReversed; custVendSettlement.CashDiscAccount = _custVendTransOpen.CashDiscAccount; if ( _canBeReversed && _utilizedCashDisc) { custVendSettlement.Dimension = _cashDiscDimension; } custVendSettlement.TaxVoucher_RU = _taxVoucher; } custVendSettlement.insert(); } ttscommit; return custVendSettlement; } Подскажите, пожалуйста, как решить эту проблему. АХ 4sp2, MS SQL 2005 |
|
Теги |
конфликт обновления, курсовая разница |
|
Похожие темы | ||||
Тема | Ответов | |||
Ошибка в логе при установке клиента AX 2009 | 9 | |||
Ошибка в формате числа. | 7 | |||
НДС с курсовых разниц | 7 | |||
Отмена курсовых разниц | 11 | |||
Русская локализация Axapta 3 ? | 59 |
|