13.04.2009, 14:04 | #1 |
NavAx
|
Сопоставление по Счетам-фактурам (производительность) в Ax4
Уважаемые коллеги!
Возникла задача использовать появившееся в Ax4 сопоставление по счетам-фактурам. Проблема состоит в том,что использовать его по клиентам с большим кол-вом операций по ним абсолютно нереально. Задержка при открытии формы с выбранным типом режимом "Счет-фактура" по такому клиенту (~1000 открытых проводок) составляет около 3х минут. Всё это время выполняется класс CustVendOpenTransEngine_RU (методы-убийцы createRslFactureJour, createMapCVTrans_FactureJourAmount) с подсчетом сопоставленных сумм по накладным и связанных с ними счетами-фактурами. Индексы там расставлены все как надо, узких мест как таковых, не очень много. Всё время выполнения, судя по профайлеру, распадается на многочисленные упаковывания/распаковывания результатов по Map, массу мелких запросов по итогам счета-фактуры (FactureCalcBalances_OnPayment_RU). В связи с чем возникает вопрос - для чего этот весь сыр-бор? Задача-то прямая - есть список открытых проводок по клиенту, нужно всего-лишь 2 вещи: 1. В lookup вывести только те с/ф, которые созданы по накладным, не имеющих открытых проводок по клиенту. 2. По выбранному в lookup номеру с/ф отобрать те открытые проводки по клиенту, которые относятся к накладным, по которым создана выбранная в lookup с/ф. Зачем здесь считать суммы и высчитывать что-то по старым с/ф (из кода) я не совсем понимаю. Всё делается практически на уровне запросов. Или я что-то упускаю из виду(смотрел не слишком подробно)? Может быть, я не уловил общую идею? Хотелось бы услышать мнения по реальному использованию этой формы и схеме её работы.
__________________
Жизнь прекрасна! Если, конечно, правильно подобрать антидепрессанты... |
|
Теги |
задержка, производительность, сопоставление, счет-фактура, тормоза, ax4.0 |
|
|