Честно говоря не знаю зачем столько кода. Для нахождения исходной операции по товарам достаточно функции из 7 строк:
GetFistItemEntry(ItemEntryNo : Integer) Result : Integer
ItemLedgerEntry.GET(ItemEntryNo);
IF ItemLedgerEntry."Entry Type" = ItemLedgerEntry."Entry Type" :: Transfer THEN
BEGIN
ItemAppEntry.RESET;
ItemAppEntry.SETRANGE("Item Ledger Entry No.",ItemEntryNo);
IF ItemAppEntry.FIND('-') THEN Result := GetFistItemEntry(ItemAppEntry."Transferred-from Entry No.");
END
ELSE Result := ItemEntryNo;
|