вообще - по логике - должно все работать в такой последовательности (поправьте, если неверно понял исходные условия)
Имеем: Форму (к примеру MyForm) с датасорсом TmpTable, который ссылается на табличку TmpTable, объявленную как временная. На таблице TmpTable имеется статический метод Init, заполняющий эту таблицу и возвращающий ссылку на заполненную таблицу. Ссылка гарантированно заполняется (т.е. такой код
X++:
TmpTable t;
;
t = TmpTable::Init();
select firstonly count(recId) from t;
print t.recId;
pause;
заведомо показывает ненулевое количество записей).
Тогда в форме MyForm нужно перекрыть метод init формы (MyForm.init()) и после super() написать:
X++:
TmpTable_ds.cursor().setTmpData(TmpTable::Init())
Это не зависит от того где создана временная таблица. Просто в случае когда она создана на сервере - будет произведено копирование на клиента при вызове setTmpData(). При условии, конечно, что не потерян курсор.
Вот так не работает?