вообще на форуме уже обсуждался вопрос про использование неявного преобразования (не могу найти ссылку

), и в частности про условие существования записи в таблице.
Т.е. использование синтаксиса :
или
X++:
if (inventTrans.RecId != 0)
связано это с тем, что определенное отрицательное значение RecId дает значение false, поэтому неявное преобразование приведет к тому что запись на самом деле есть, а условие не отработает. Поэтому необходимо всегда использовать вариант:
X++:
if (inventTrans.RecId != 0)
ну или в Вашем случае
X++:
where (rHRMOrderTrans.RecId == 0 || rHRMOrderTrans.RecId == orderTrans.RecId)