Хождение по записям в navision это процесс длительный и не блпгодарный, при большом наборе данных. Средствами C/AL скорости не добьетесь.
Постарайтесь переделать логику отчета под FlowFields. Это можно сделать с помощью дополнительной таблицы специально для одного отчета.
Еще как вариант использовать T-SQL. Параметр зачем передавать? Сделать свою форму запроса параметров отчета.
P.S.
На мой взгляд оптимизация таких отчетов нужна только в случае использования отчета хотябы раз в неделю.
У меня бывали случаи, что просили оптимизировать отчет, который запускался раз в месяц и работал сутки.
На такие пожелания надо вежливо разьяснять, что один день не так уж и много