Имя: Пароль:
1C
1С v8
Ошибка при открытии файла DBF
0 Azgerd
 
13.03.19
13:43
Здравствуйте!
В конфигурации на платформе 8.2 Во внешней обработке (обычная форма) есть код:
<code>
БДШ = Новый XBase;
БДШ.ОтображатьУдаленные = Ложь;
БДШ.Кодировка = КодировкаXBase.ANSI ;
FSO = Новый COMObject("Scripting.FileSystemObject");
КаталогБД = ЭлементМассива.Путь;
ПутьБДШ = ЭлементМассива.ПолноеИмя;
БДШ.ОткрытьФайл(fso.GetFile(ПутьБДШ).ShortPath,,0);
</code>
Название файла DBF в (ПутьБДШ) имеет больше 8 символов типа 000001000005000.dbf. Вопрос: у одних клиентов этот файл открывается нормально, у других тот же самый файл не открывается, выдаёт ошибку:
ВнешняяОбработка.sh81_prih.Форма.Форма.Форма(770)}: Ошибка при вызове метода контекста (ОткрытьФайл)
        БДШ.ОткрытьФайл(fso.GetFile(ПутьБДШ).ShortPath,,0);
по причине:
Длина имени файла превысила 8 символов.
Почему у одних клиентов с одной и той же конфигурацией система съедает длиный файл а у других нет?
1 RomanYS
 
13.03.19
13:55
(0) судя по СП требование на имя файла - есть. Если где-то работает, значит ошибка.

А зачем вот это FSO = Новый COMObject("Scripting.FileSystemObject"), чем встроенный объект Файл не угодил?
2 Azgerd
 
13.03.19
14:00
(1) Обработку не я писал, но вот это все "FSO = Новый COMObject("Scripting.FileSystemObject")", насколько я понял и позволяет открывать длинные файлы.
Вся эта байда у 8 - ми клиентов работает, а у двух нет... Так что это вряд ли ошибка, скорее всего дело в каких-то настройках.
3 RomanYS
 
13.03.19
14:16
(2) Аа, понял!
Ну так смотри, что ShortPath возвращает на проблемных компах.
4 Garykom
 
гуру
13.03.19
14:21
Переименовать файл (скопировать в новый с коротким именем) не судьба перед тем как читать его?
5 Azgerd
 
13.03.19
14:24
(4) Да уже собираюсь сделать так, но все же интересно что за фигня! Почему у одних работает у других нет, причина должна же быть.
6 RomanYS
 
13.03.19
14:25
(5) Ну судя по ошибке ShortPath не вернула то, что должна
7 Гость из Мариуполя
 
гуру
13.03.19
14:27
(5) фигня вопрос. В реестре отключены короткие имена. В яндексе инфы навалом
вот, навксидку
https://support.microsoft.com/ru-ru/help/121007/how-to-disable-8-3-file-name-creation-on-ntfs-partitions
8 Гость из Мариуполя
 
гуру
13.03.19
14:30
(5) + а, к примеру,  вот как пересоздать короткие имена
http://moonlightsoft.blogspot.com/2015/12/windows.html
9 Azgerd
 
13.03.19
15:58
10 Azgerd
 
13.03.19
16:00
Пришлось копировать исходный файл в короткий файл.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.