02.03.2016, 12:58 | #1 |
Участник
|
Влияние selectLocked(false) на возвращаемый курсор
Добрый день, коллеги!
Столкнулись с непонятным. Имеем запись в SalesTable и поле в ней (поле добавленное, не из стандарта). Визуально: - Смотрим через обозреватель таблицы - видим значение в поле. - Смотрим через форму - видим значение в поле. - Смотрим через "Паспорт записи" - видим значение в поле. В коде: - Ищем запись через SalesTable::findRecId() - видим значение поля. - Ищем запись через SalesTable::find() - не видим значение поля. Раскопки привели к тому, что SalesTable::findRecId() не использует salesTable.selectLocked(). То есть, используется значение по-умолчанию (true). А вот SalesTable::find() использует, причём выставляет этот флаг равным false. Имитация на уровне запроса SQL напрямую с NOLOCK и без этой инструкции всегда возвращают корректное значение поля (как и ожидается). Кто-нибудь сталкивался в подобными странностями? И как их обойти?
__________________
MS Dynamics AX 2009 Kernel 5.0.1600.4110 Application 5.0.1500.6491 |
|