извините, а что это влечеть - время выборки или рост используемой памяти ?
При перечеслении по порядку только нужных полей в определении вн. таблицы и непосредственно в синтаксисе запроса для выборки в нее с использ. конструкции INTO TABLE сокращается и то и другое. Дебиторка лежит в BSID(отк.поз.) и в BSAD(закр.), соответственно кредиторка в BSIK/BSAK. Налог можно подсчитать вытягивая процентную ставку (не обращайть внимание на SELECT...ENDSELECT, код древнее поповской собаки, оптимизируете, если что):
SELECT K ~ kbetr INTO k _ nds from
A003 as A inner join KONP as K on A~KNUMH = K~knumh
where A~aland = 'RU' and A~mwskz = <l_accit>-mwskz.
ENDSELECT.
if k_nds = 0.
k_nds = 1.
else.
k_nds = 1 + k_nds / 1000.
endif.
Поскольку данные приходиться добивать точечными запросами для получения налоговых показателей (каких, кстати, помимо указ-го в 1-м посте?), а прога валиться в дамп по нехватке памяти, то нужно вычислить момент, когда это происходит, и если это основная выборка с-фактур, то тогда несколько вариантов:
1) увеличение памяти (базис не в восторге будет)
2) SELECT...ENDSELECT с обработкой и сливом внутри него уже подготовленных данных в итоговую вн. таблицу
3) если и п.2 не поможет, то настаивать на п.1 или менять подход к решению задачи вплоть до постановки
Если дампит в процессе обработки выбранных с-ф., то можно:
1) дополнить вн. таблицу с-ф., получ. при первой выборке, полями так, чтобы ее можно было выводить как итоговую, т.е. работать только с ней используя LOOP AT itab_sf ASSIGNING <fs_itab>...ENDLOOP, где <fs_itab> LIKE LINE OF itab_sf.
2) после выборки с FOR ALL ENTRES очистить вспомогательную вн. табл.: FREE gt_nn
Больше пока ничего на ум нейдет, т.к. не знаю конкретной задачи