Да, именно так. В функции получения каталога файла, чтобы вернуть часть строки с начала и до символа-разделителя (например, обратного слеша), нужно заменить
Возврат Лев(ПутьКФайлу, ПозицияСимвола - 1);
на
Возврат Сред(ПутьКФайлу, 1, ПозицияСимвола - 1);
Потому что функция Лев() возвращает указанное количество символов с начала строки, а Сред() позволяет явно указать начальную позицию и длину подстроки, что более универсально и корректно в данном контексте.
Пример функции с этой заменой:
Функция ПолучитьКаталогФайла(Знач ПутьКФайлу) Экспорт
ПозицияСимвола = СтрДлина(ПутьКФайлу);
Пока ПозицияСимвола >= 1 Цикл
Если Сред(ПутьКФайлу, ПозицияСимвола, 1) = "" Тогда
Возврат Сред(ПутьКФайлу, 1, ПозицияСимвола - 1);
КонецЕсли;
ПозицияСимвола = ПозицияСимвола - 1;
КонецЦикла;
Возврат "";
КонецФункции
Такой код корректно вернёт путь каталога без имени файла.