04.08.2009, 22:46 | #1 |
----------------
|
отключен RAsset = бага+фича
Давным давно (в 2.5) появился в системе модуль RAsset. И как и у любого, уважающего себя модуля, есть у него табличка RAssetParameters, к которой прилагается метод find
X++: public server static RAssetParameters find(boolean _forUpdate = false) { RAssetParameters assetParameters; ; assetParameters.selectForUpdate(_forUpdate); select firstonly assetParameters index Key where assetParameters.Key == 0; if (! assetParameters) { Company::createParameter(assetParameters); NumberSeqReference::construct(RAssetParameters::numberSeqModule()).load(); } return (assetParameters); } Все обращения к этому методу я не исследовал, но с одним часто сталкивался при оптимизациях PurchFormLetter_Invoice.updateNow() - как раз в цикле при создании строк. То есть на 1 строку приходной накладной, приходится 8 бесполезных обновлений NumberSeqReference. В Ax3 это приводит к блокировкам. В DAX4 оптимизм победил, но неприятный осадок в виде постоянных попыток создать ссылки остался. В DAX2009, наконец-то, добавили проверку на существование таблицы X++: ...
if (! assetParameters && ! assetParameters.isTmp())
{
... |
|
|
За это сообщение автора поблагодарили: ZVV (2), Logger (2), konopello (2), gl00mie (3). |
Теги |
ax2009, ax3.0, ax4.0, баг, основные средства, российская функциональность |
|
|