25.07.2007, 12:00 | #1 |
Участник
|
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 |
|