Shaitan-Babay, попробуйте чуть по другому код написать.
Код:
recFile.RESET;
recFile.SETRANGE(Path, 'c:\for_exchange\');
recFile.SETRANGE("Is a file", TRUE);
IF recFile.FINDFIRST THEN
REPEAT
i += 1;
UNTIL recFile.NEXT = 0;
Отличия только в том, что используется SETRANGE вместо SETFILTER, и FINDFIRST вместо FIND(-). Еще у меня стояло вначале кода CLEAR(recFile), но работает и без этого.
Я вынес этот кусочек в отдельную функцию в кодеюните и запускал с кнопки на форме. Все работает и возвращает количество файлов в папке, при повторном запуске, даже не закрывая формы, все отрабатывает как надо. Может у вас при повторном прогоне фильтры накладываются не такие, например в конце пути нет слэша?