Роман, Ваш код, касающийся триггеров получения данных, выглядит вполне работоспособным. Думаю, дело в наполнении временной таблицы.
Я набросал примерчик, в котором демонстрируется подмена фильтра по полю "Комплект" в справочнике товаров.
Код:
OnFindRecord(Which : Text[1024]) : Boolean
IF GETFILTER("Bill of Materials") = FORMAT(TRUE) THEN BEGIN
IF NOT BOMcollected THEN
CollectBills();
TempItem.COPY(Rec);
Found := TempItem.FIND(Which);
IF Found THEN
Rec := TempItem;
EXIT(Found);
END ELSE
EXIT(FIND(Which));
OnNextRecord(Steps : Integer) : Integer
IF GETFILTER("Bill of Materials") = FORMAT(TRUE) THEN BEGIN
TempItem.COPY(Rec);
ResultSteps := TempItem.NEXT(Steps);
IF ResultSteps <> 0 THEN
Rec := TempItem;
EXIT(ResultSteps);
END ELSE
EXIT(NEXT(Steps));
//---------------------------------------
CollectBills()
IF BOM.FIND('-') THEN REPEAT
ParentItem.GET(BOM."Parent Item No.");
TempItem := ParentItem;
TempItem."Search Description" := 'Temp '+TempItem."No.";
TempItem.INSERT;
BOM."Line No." := 2147483647; //Maximum Integer
UNTIL BOM.NEXT=0;
BOMcollected := TRUE;