11.04.2007, 10:51 | #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, сопоставление |
|
|