Версия Axapta 3.0 sp5
Доброго времени суток. Дамы и господа. На суд колективного разума выносится "странный" баг, абсолютно не понятный мне.
Проблема заключается в следущем при попытке Преобразовать предоплату в оплату в модуле Клиенты. Операция проходит успешно счет фактура выписывается, но в конце происходит выкидывание ошибки.
Record with RecId 254657545 in table 'Открытые проводки по клиенту' has mismatching Sequence field values. Original value was 253446063, new value is 254657545.
Невозможно отредактировать запись в "Открытые проводки по клиенту" ("CustTransOpen").
Номер записи не соответствует первоначальному номеру.
Путем ковыряния в коде выяснили что ошибку рождает метод executeQuery()
X++:
// класс CustPayment2Prepayment_RU\main - line 34
if (formDataSource)
{
formDataSource.executeQuery();
}
....
// который в результате манипуляций с кодом приходит в таблицу CustTransOpen
// таблица \CustTransOpen\Methods\Update - line 30
// привожу полностью данный метод
void update()
{
CustTransOpen firstCustTransOpen;
CustTrans custTrans;
ttsbegin;
if (this.dueDate != this.orig().dueDate)
{
select firstCustTransOpen
order by dueDate
where firstCustTransOpen.refRecId == this.refRecId;
if (this.recId == firstCustTransOpen.recId)
{
select forupdate custTrans
where custTrans.recId == this.refRecId;
custTrans.dueDate = this.dueDate;
if (custTrans.paymManLackDate)
{
custTrans.paymManLackDate += this.dueDate - this.orig().dueDate;
}
custTrans.update();
}
}
if (this.validateWrite())
{
super(); // вот тут и происходит вызов инфо с сообщением об ошибке
}
ttscommit;
}
Все validate до этого кода возвращают true то есть внесение записи в таблицу возможно.
Кто нибудь с таким сталкивался.И как это можно побороть.Приветствуются любые варианты