Имя: Пароль:
1C
 
1C 7.7 Процедура ФС.ВыбратьФайл(0, ИмяФайла - макс.длина 63 символа?
0 DmSk
 
16.05.11
10:39
1C 7.7 Процедура  ФС.ВыбратьФайл(0, ИмяФайла, ИмяПути, ..)
у меня получилось, что макс.длина ИмениФайла 63 символа ?
1 andrewalexk
 
16.05.11
10:41
:) это да...есть приблуда которая расширяет длину имени..но и она глючит
2 DmSk
 
16.05.11
10:42
может самому компоненту на дельфи написать ....
3 1Сергей
 
16.05.11
10:45
тебе что, 63 символа мало?
4 smaharbA
 
16.05.11
10:47
делается штатно
5 DmSk
 
16.05.11
10:47
цепляют вордовские пользовательские документы, а там очень длинные названия, так как в названия включают отдел/подразделения и т.д.
6 DmSk
 
16.05.11
10:47
(4) как ?
7 smaharbA
 
16.05.11
10:52
//*******************************************
Процедура Сформировать()
   Перем ИмяФайла,А,ИмяНачКаталога;
   ФС.УстТекКаталог(РасположениеФайла()+"\..\");
   Стр="C:\Program Files\Windows Media Player\Windows Media Player\Windows Media Player\Windows Media Player\Windows Media Player\Windows Media Player\Windows Media Player\Windows Media Player\";
   ИмяФайла="WindowsMediaPlayer-1-PlayerWindowsMediaPlayer-2-WindowsMediaPlayer-3.txt";
   Стр=СтрЗаменить(Стр,"\","" "");
   Для Сч=1 По СтрКоличествоСтрок(Стр) Цикл
       ИмяНачКаталога=ИмяНачКаталога+СтрПолучитьСтроку(Стр,Сч)+"\";
       Если ФС.СуществуетФайл(ИмяНачКаталога+"*")=0 Тогда
           фс.СоздатьКаталог(ИмяНачКаталога);
       КонецЕсли;
   КонецЦикла;
   Сообщить(СтрДлина(ИмяФайла));
   ЗначениеВФайл(ИмяНачКаталога+ИмяФайла,ПолучитьПустоеЗначение(),0);
   ИмяФайла="";
   Если ФС.ВыбратьФайл(0,ИмяФайла,ИмяНачКаталога,"Укажите файл для загрузки","(*.txt)|*.txt","txt")=0
   Тогда
     Возврат;
   КонецЕсли;
   Сп=СоздатьОбъект("СписокЗначений");
   Файл=ФС.НайтиПервыйФайл(ИмяНачКаталога+ИмяФайла+"*");
   Пока ПустоеЗначение(Файл)=0 Цикл
       ФС.АтрибутыФайла(Файл,,А);
       Если Сред(А,4,1)="0" Тогда
           Сп.ДобавитьЗначение(Файл);
       КонецЕсли;
       Файл=ФС.НайтиСледующийФайл();
   КонецЦикла;
   Файл=Сп.ПолучитьЗначение(1);
   Если Сп.РазмерСписка()>1 Тогда
       Сп.ВыбратьЗначение(Файл,"Выберите Файл");
   КонецЕсли;
   Сообщить(ИмяНачКаталога+Файл);
КонецПроцедуры
8 Ёпрст
 
гуру
16.05.11
11:10
(7) :)
а если будет сотня файлов с различием в пару конечных символов, усё, ппц котёнку ?
:)
9 andrewks
 
16.05.11
11:13
а как с этим дела в FileSystemObject?
10 DmSk
 
16.05.11
11:14
(8) тогда у него реализован повторный выбор
   Если Сп.РазмерСписка()>1 Тогда
       Сп.ВыбратьЗначение(Файл,"Выберите Файл");
   КонецЕсли;
11 smaharbA
 
16.05.11
11:19
(8) это да, тут конечно фигово, лучше реализовать свою обработку по выбору файла
12 1Сергей
 
16.05.11
11:19
(7) не понятно для чего создаются каталоги и файл
13 smaharbA
 
16.05.11
11:20
(9) оно диалога не имеет, есть ком-диалог, но он требует лицензирования и впиндюривание лицензии как бы наверное не совсем почестному )))
14 smaharbA
 
16.05.11
11:20
(12) для примеру
15 Кириллка
 
16.05.11
11:20
(12)чтобы показать, что путь длиный и файл не короткий :)
16 Ахиллес
 
16.05.11
11:25
Попробуй использовать короткое имя файла
http://support.microsoft.com/?kbid=175512
17 Rie
 
16.05.11
11:40
(16) kernel32.dll - уже впечатляет :-)
18 Ахиллес
 
16.05.11
11:44
(17) Я не вникал, основная мысль получить короткое имя файла вот с такими закорючками ~ и скормить его одинэсу.
А уж как автор это сделает это его проблемы. Вроде на виндовс скрипт тоже такое можно, не помню.
19 palpetrovich
 
16.05.11
12:00
(0) мне кажеться нужно создать общий каталог в корне диска и не парить мозги себе и одинэске ...гибче быть нужно :)
20 1Сергей
 
16.05.11
12:05
(19) и чем это поможет?
21 Ахиллес
 
16.05.11
12:07
(20) КО как бы намекает, что 63 символа это превышение по полный путь к файлу, может там ещё пятикратная вложенность каталогов с такой длинной имён. Всё таки трудно дать название файлу длиннее 63 символов.
22 1Сергей
 
16.05.11
12:08
(21) см (5)
23 Ахиллес
 
16.05.11
12:10
(22) А пофиг. Семерки под рукой нет, но, я уверен, что ограничение относится к полному пути файла + имя файла, а не только к одному имени файла.
24 1Сергей
 
16.05.11
12:13
(23) а вот и не прав
25 andrewks
 
16.05.11
13:05
кстати, от очень длинных имён даже у хрюши крыша едет
26 Cthulhu
 
16.05.11
13:27
- Программа "превращает" все стандартные диалоги открытия/сохранения файлов
   в Explorer-Style диалоги с Places bar панелью слева.
 - В левой панели имеется возможность настроить две дополнительных кнопки
   помимо пяти стандартных.
 - Запоминаются пути последних открытых/сохранённых файлов.
 - Внизу диалога добавлен статус бар, отображающий текущую открытую папку.
 - В список фильтров диалога открытия файла добавлен пункт "Все файлы"
 - В верхней панели диалога добавлена настраиваемая кнопка "Избранное"

  В качестве дополнительных возможностей:
!!!!!!!   - программа исправляет баг диалога выбора файла в 1С 7.7 (ФС.ВыбратьФайл()), который обрезает имя
!!!!!!!     выбранного файла до 63-х символов  
 - возможность "отключить" в диалоге контекстное меню на списке файлов, то есть через диалог
   нельзя скопировать, удалить, открыть другой файл, итд. Таким образом, остается возможность
   сохранять печатные формы отчетов, но при этом файловые операции будут недоступны.
  - возможность заблокировать все диалоги открытия\сохранения файла для режима "предприятие 7.7"
    а также вставки картинок и OLE объектов в таблицы.
  - возможность заблокировать вообще все диалоги в системе

15.10.2010

Появилась полноценная внешняя компонента почти с тем-же функционалом

http://www.1cpp.ru/forum/YaBB.pl?num=1242732564/1#1