|
|
#1 |
|
Участник
|
Баг в сопоставлении открытых проводок
И снова салют вам, уважаемые коллеги!
Сегодня во время археологических раскопок кода обнаружил в методе \Classes\CustVendSettle_Vend\postAmountDiffTrans_RU один очень любопытный фрагмент. (Этот метод вызывается в процессе сопоставления открытых проводок по клиенту) Код: maxCount = (select count (RecId) from VendInvoiceTrans
where VendInvoiceTrans.PurchID == _vendInvoiceJour.Num &&
VendInvoiceTrans.InvoiceId == _vendInvoiceJour.InvoiceId &&
VendInvoiceTrans.InvoiceDate == _vendInvoiceJour.InvoiceDate &&
VendInvoiceTrans.numberSequenceGroup == _vendInvoiceJour.NumberSequenceGroupId).RecId;
postMarkup (tableNum(VendInvoiceJour),_vendInvoiceJour.RecId,_vendInvoiceJour.Dimension);
while select vendInvoiceTrans
where vendInvoiceTrans.PurchID == _vendInvoiceJour.Num &&
vendInvoiceTrans.InvoiceId == _vendInvoiceJour.InvoiceId &&
vendInvoiceTrans.InvoiceDate == _vendInvoiceJour.InvoiceDate &&
vendInvoiceTrans.numberSequenceGroup == _vendInvoiceJour.NumberSequenceGroupId
{
....
}Подозреваю, что это цикл по строкам накладной. Но вот ведь незадача - набор полей для фильтрации неуникальный! Получается так, что в цикл могут попасть строки нескольких накладных. Есть мнение, что русские кодеры, программировавшие этот метод мягко говоря ошиблись, и связывать тыблицы нужно было по InernalInvoiceId Собственно, о чем я... Кто что может сказать по этому поводу? |
|
|
| Теги |
| custsettlement, vendsettlement, сопоставление |
|
|
|