RAssetParameters - бага
Обнаружил неприятную багу.
В методе
\Data Dictionary\Tables\RAssetParameters\Methods\find
стоит условие
if (! assetParameters)
а нужно
if (! assetParameters && !assetParameters.isTmp() )
Из-за этого при отключенном конфигурационном ключе на основные средства (или при отсутствии лицензии) при кажом вызове RAssetParameters::find() происходит инициализация номерных серий и как следствие идут блокировки forUpdate на таблице
NumberSequenceReference
Из-за этого могут быть блокировки клиентами друг друга на совсем безобидных операциях. Достаточно внутри длительной транзакции вызвать RAssetParameters::find()
Например, это имеет место при обработке накладной по закупке. (PurchFormLetter_Invoice.UpdateNow() )
P.S.
Ax 3.0
|