Если возникнет проблема при работе с файлами, длина полного имени которых превышает 250 символов (примерная величина по различным источникам), Вы можете использовать приведенный ниже прием. Он заключается в прибавлении перед полным путем символов "\\?\".
Для OneScript начиная с версии 1.8.0 был сделан переход на .NET Framework 4.8 в котором длинные имена обрабатываются правильно. Но всё таки иногда необходимо подкорректировать длинный путь вот таким способом.
Привожу пример работы с длинными именами.
// Разместите в подкаталогах текстовые файлы и Вы сможете прочитать их сожержимое.
// Подкаталогами с длинными именами можно управлять без проблем (создавать/удалять) например
// файловым менеджером Unreal Commander. В примере подразумевается дерево каталогов согласно
// переменным Стр1, Стр2, Стр3, Стр4, Стр5, Стр6.
Процедура Содержимое(ДлинныйПуть)
Сообщить("ДлинныйПуть = " + ДлинныйПуть);
Файлы = НайтиФайлы(ДлинныйПуть, "*", Ложь);
Для А = 0 По Файлы.ВГраница() Цикл
ТекущийФайл = Файлы[А];
Если ТекущийФайл.ЭтоКаталог() Тогда
Содержимое(ТекущийФайл.ПолноеИмя);
Иначе
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.Прочитать(ТекущийФайл.ПолноеИмя);
Текст = ТекстДок.ПолучитьТекст();
Сообщить("Текст = " + Текст);
КонецЕсли
КонецЦикла;
КонецПроцедуры
Стр1 = "C:\000\ОченьДлинныйОченьДлинныйОченьДлинныйПутьОченьДлинныйОченьДлинныйОченьДлинныйПуть\";
Стр2 = "ОченьДлинныйОченьДлинныйОченьДлинныйПутьОченьДлинныйОченьДлинныйОченьДлинныйПуть\";
Стр3 = "ОченьДлинныйОченьДлинныйОченьДлинныйПутьОченьДлинныйОченьДлинныйОченьДлинныйПуть\";
Стр4 = "ОченьДлинныйОченьДлинныйОченьДлинныйПутьОченьДлинныйОченьДлинныйОченьДлинныйПуть\";
Стр5 = "ОченьДлинныйОченьДлинныйОченьДлинныйПутьОченьДлинныйОченьДлинныйОченьДлинныйПуть\";
Стр6 = "ОченьДлинныйОченьДлинныйОченьДлинныйПутьОченьДлинныйОченьДлинныйОченьДлинныйПуть\";
Сообщить("" + СтрДлина(Стр1 + Стр2 + Стр3 + Стр4 + Стр5 + Стр6));
Файлы = НайтиФайлы(Стр1, "*", Ложь);
Для А = 0 По Файлы.ВГраница() Цикл
ТекущийФайл = Файлы[А];
Если ТекущийФайл.ЭтоКаталог() Тогда
Содержимое("\\?\" + ТекущийФайл.ПолноеИмя);
Иначе
ТекстДок = Новый ТекстовыйДокумент;
ТекстДок.Прочитать("\\?\" + ТекущийФайл.ПолноеИмя);
Текст = ТекстДок.ПолучитьТекст();
Сообщить("Текст = " + Текст);
КонецЕсли
КонецЦикла;