2012 R3 (думаю в прошлых версиях аналогично)
Если делать лукап по временной таблице на основе постоянной и при этом не вставить никаких записей во времянку, что-то типа
X++:
InventTable inventTableTmp;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), _ctrl);
inventTableTmp.setTmp()
/*
заполняем времянку по какому-то алгоритму, но записей не нашли и ничего не вставили
*/
sysTableLookup.addLookupfield(fieldNum(InventTable, ItemId));
sysTableLookup.parmTmpBuffer(inventTableTmp);
sysTableLookup.performFormLookup();
то вместо ожидаемого пустого лукапа увидим в гриде все записи постоянной таблицы

Берем напильник, чиним класс SysTableLookupBase. Заводим глобальную переменную boolean useTmpBuffer
X++:
Common parmTmpBuffer(Common _buffer = tmpBuffer)
{
tmpBuffer = _buffer;
//-->
if (! prmisDefault(_buffer))
{
useTmpBuffer = true;
}
//<--
return tmpBuffer;
}
protected FormRun formRun()
{
//...строка 55
//-->
//if(useLookupValue && !tmpBuffer)
if(useLookupValue && ! tmpBuffer && ! useTmpBuffer)
//<--
{
}
//...строка 117
//-->
//if (tmpBuffer)
if (tmpBuffer || useTmpBuffer)
//<--
}