Место хранение должно быть взято из того же повторения, что и инвентарный номер.
Правильный код должен выглядеть так:
0
REP
910^D
F
(if p(v910) then if p(v910^B) and p(v910^D) then &uf('+1W300#',v910^b), &uf('DEKS,?IN='v910^B,|?,(if p(v910) then if &uf('+1R300')=v910^b then v910^d,&uf('+1W300#'),break fi,fi)|d910), if &uf('+1R300')<>'' then v910^D fi fi fi#)
XXXXXXXXXXXXXXXXXXX
Обратите внимание, что этот алгоритм НЕЛЬЗЯ применять в случае, если библиотека использует многоэкземплярный учёт!
PS
Возможны небольшие огрехи. На проверну времени не хватило.