Почти... почти...
Вот пример запроса из InventUpd_Financial.updateFinancialReceipt(), отсекающего недопустимые статусы:
PHP код:
while select forupdate inventTrans
Index hint TransIdIdx
where inventTrans.inventTransId == movement.transId() &&
inventTrans.statusIssue == StatusIssue::None &&
inventTrans.statusReceipt == StatusReceipt::Received
{
Ваш запрос берет лишнее в случае частичной отгрузки/резервирования/регистрации и т.п.
И последняя [уже придирка] к несчастным 4 строчкам кода: if (inventTrans) лишено смысла, т.к. внутрь цикла while select можно войти только тогда, если запрос успешно вернул очередную проводку. if будет выполняться всегда.