05.09.2005, 15:13 | #1 |
Участник
|
Как ускорить проводку СФ?
При количестве строк в заказе больше 15 очень медленно проходит обработка счета фактуры. Долго висит окно "обработка", видно как каждую строчку аксапта обрабатывает.
А нет ли возможности ускорить данный процесс. Интересует и "галочный" вариант и с программированием., а то прямо беда какая-то. Одновременно проводит документы один пользователь. P.S. Искал на форуме по ключевым словам ускорить проводку , оптимизировать обработку ... но не нашел. Хотя помню, что что-то подобное видел на форуме. |
|
05.09.2005, 15:30 | #2 |
Модератор
|
1) Доработки были?
2) Да, даже в стандарте, это русская функиональность. Довольно тормозная - накладная раза в 3 быстрее разноситься, нежели СЧ-Ф. 3) Попробуйте добавлять в пакет. Или СЧ-Ф сразу нужна? С Уважением, Георгий |
|
05.09.2005, 15:48 | #3 |
Участник
|
Цитата:
1) Доработки были?
Цитата:
2) Да, даже в стандарте, это русская функиональность. Довольно тормозная - накладная раза в 3 быстрее разноситься, нежели СЧ-Ф.
PHP код:
Цитата:
3) Попробуйте добавлять в пакет. Или СЧ-Ф сразу нужна?
|
|
05.09.2005, 16:14 | #4 |
Участник
|
Никто не решал такую задачу?
|
|
05.09.2005, 16:23 | #5 |
Модератор
|
Ну, отказались от стандартной. Пишем свою. Все равно непонятно, как будет стандартная книга продаж собираться.
С быстродействием - так пока и не удалось победить. Нам обещали помочь, так что, если удасться победить, расскажем, как там да что. Очень не нравяться тормоза из-за номерных серий. Процессор не нагружен ни на АОСе, ни на БД. В чем дело - не понимаем. sleep(1000) тоже не нашли пока. С Уважением, Георгий. |
|
05.09.2005, 16:25 | #6 |
Участник
|
Да, неутешительно ...
|
|
05.09.2005, 16:55 | #7 |
Участник
|
Найдите метод document на таблице FactureJour_RU, замените тело метода на
return ["", dateNull()]; вместо того лютого запроса который там есть и будет вам счастье |
|
05.09.2005, 17:14 | #8 |
Участник
|
А что это за волшебный такой метод?
Почему его так безболезнено можно "отключить" ? |
|
06.09.2005, 09:02 | #9 |
Участник
|
Этот метод формирует запрос который у вас фигурирует под номером 1 в хит-параде.
Вызов его находится в методе insertJournal класса FactureJourCreate_RU. Возвращаемые им значения (Номер последнего сопоставления и его дата) в дальнейшем используются при печати счета-фактуры (строка "К платежно-расчетному документу" "№:" и "от:"). Если верить перекрестным ссылкам, то эти значения ни в каких обработках не участвуют Ну и если уж править, то, по-моему, лучше закоментарить вызов метода document в FactureJourCreate_RU.insertJournal
__________________
Axapta v.3.0 sp5 kr2 |
|
06.09.2005, 10:13 | #10 |
Участник
|
Спасибо.
|
|
06.09.2005, 10:21 | #11 |
Участник
|
Была такая же ситуация, накладная быстро, СФ ну очень долго.. все что можно заоптимизил, выборку лишних полей и т.д.. на этом работа мониторинга SQL закончилась но тормоза остались, запускаю профайлер кода и вижу - строка SetPrefix('блабла'); Занимает 700000 милисекунд, каково? Убрал, пока все оки.. вот такая вот история..
Да, а по поводу номерных серий - для тех что НЕ непрерывные можно использовать предварительное выделение номеров, тоже оч помогает.. |
|
12.01.2006, 13:19 | #12 |
Moderator
|
Цитата:
Сообщение от MironovI
запускаю профайлер кода и вижу - строка SetPrefix('блабла'); Занимает 700000 милисекунд, каково? Убрал, пока все оки.. вот такая вот история..
|
|
12.01.2006, 13:53 | #13 |
Участник
|
Вроде как класс PurchFormLetter, метод run там setPrefix("@SYS25781");
|
|
12.01.2006, 14:52 | #14 |
Moderator
|
Спасибо!
|
|
12.04.2006, 06:25 | #15 |
Участник
|
Еще раз о скорости обработки с/ф
При обработке с/ф по накладной очень долго вызывается форма "Обработка счета-фактуры".
При анализе выяснилось, что максимальная задержка в методе FactureEditLinesEngineVend_RU\dsExecuteMarkup Там стоит такой загадочный код: Код: select markupCursor where markupCursor.CustVendPosted_RU && ! markupCursor.ItemPosted_RU exists join tTrans where (markupCursor.TransTableId == tTrans.TableId && markupCursor.TransRecId == tTrans.RecId && tTrans.PurchID == tJour.PurchId && tTrans.InvoiceId == tJour.InvoiceId && tTrans.InvoiceDate == tJour.InvoiceDate && tTrans.NumberSequenceGroup == tJour.NumberSequenceGroup && tTrans.InternalInvoiceId == tJour.InternalInvoiceId ) || ( markupCursor.TransTableId == tJour.TableId && markupCursor.TransRecId == tJour.RecId ); Код: select markupCursor index TableRecIdIdx where markupCursor.CustVendPosted_RU && ! markupCursor.ItemPosted_RU && markupCursor.TransTableId == tJour.TableId && markupCursor.TransRecId == tJour.RecId; if (!markupCursor) select markupCursor where markupCursor.CustVendPosted_RU && ! markupCursor.ItemPosted_RU exists join tTrans index InvoiceIdx where markupCursor.TransTableId == tTrans.TableId && markupCursor.TransRecId == tTrans.RecId && tTrans.PurchID == tJour.PurchId && tTrans.InvoiceId == tJour.InvoiceId && tTrans.InvoiceDate == tJour.InvoiceDate && tTrans.NumberSequenceGroup == tJour.NumberSequenceGroup && tTrans.InternalInvoiceId == tJour.InternalInvoiceId; Т.к. я не проограммист, у меня вопрос - одинаковый результат у этих запросов, или я в чем -то ошибся. Спасибо. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|