Все дело в том, что вы изменяете поле, входящее в состав кластерного индекса.
Axapta открывает динамический курсор при использовании forupdate. SQL сервер воспринимает запись с измененным кластерным индексом как новую и добавляет ее в открытый курсор. По-этому при фетче у вас постоянно подтягивается новая запись до тех пор, пока Axapta может изменить значение поля.
Что бы обойти этот эффект надо сделать так
X++:
RCashTrans RCashTrans;
RCashTrans RCashTransUpd;
ttsbegin;
while select RcashTrans
where
RcashTrans.DocType==1 &&
( ...)
{
RCashTransUpd = RCashTrans::findRecId(RCahsTrans.RecId, True);
RcashTransUpd.DocId+="/1";
RcashTransUpd.doUpdate();
}
ttscommit;
И еще в LedgerJournalTrans.RCashDocId также заносится номер кассового ордера
PS 2 Vadik извиняюсь, ссылку на статью заметил уже после написания ответа.