Не совсем понял, в чем проблема, но на всякий случай приведу код - лукап номенклатур, которые не заблокированы по соответствующему модулю
X++:
client static void LookupItemIdOnType(FormStringControl _fc, ModuleInventPurchSales _module = ModuleInventPurchSales::Invent)
{
sysTableLookup sysTableLookup;
Query query;
QueryBuildDataSource queryBuildDataSource;
QueryBuildDataSource queryBuildDataSourceModule;
;
sysTableLookup = sysTableLookup::newParameters(tableNum(InventTable), _fc);
sysTableLookup.addLookupfield(fieldNum(InventTable, itemId));
sysTableLookup.addLookupfield(fieldNum(InventTable, itemName));
query = new Query();
queryBuildDataSource = query.addDataSource(tableNum(InventTable));
queryBuildDataSourceModule = queryBuildDataSource.addDataSource(tableNum(InventTableModule));
queryBuildDataSourceModule.addLink(fieldNum(InventTable, ItemId), fieldNum(InventTableModule, ItemId));
queryBuildDataSourceModule.addRange(fieldNum(InventTableModule, ModuleType)).value(queryValue(_module));
queryBuildDataSourceModule.addRange(fieldNum(InventTableModule, Blocked)).value(queryValue(NoYes::No));
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
На самом деле код сложнее, здесь упрощен под Вашу конкретную задачу.
Как видите, фильтр накладывается на доп. таблицу, при этом поле не выводится в лукапе.