buf2buf() не канает, т.к. у тебя 2 разные таблицы, хоть и поля в них одинаковые. Если устроит, то можно из RContractTable сделать временную таблицу методом setTmp(). Второй вариант использовать следующую конструкцию:
X++:
insert_recordset TmpRContractTable (<fields>) select <fields> from RContractTable
[where <>]
[join <. >]