Имя: Пароль:
1C
1С v8
v82: Как получить список дисков из 1С на тонком клиенте
,
0 AlecoZAV
 
26.09.11
08:46
Сабж
Диски интересуют только локальные
1 AlecoZAV
 
26.09.11
08:58
ФСО = Новый COMОбъект("Scripting.FileSystemObject");
   Диски = ФСО.Drives;
   Для каждого Диск Из Диски Цикл
       Сообщить(Диск.DriveLetter+":\");
       Сообщить(Диск.DriveType); //2-локальный
   КонецЦикла;

а без ФСО можно еще как нибудь?
2 Kookish
 
26.09.11
09:08
Ну назови как-нибудь по-другому. :)
Чем тебе этот способ не нравится?
Вот я всегда поражаюсь народу. Есть задача. Есть ее прямое и обкатанное решение. Но всегда найдется чудик, который спросит: "А по-другому нельзя? Меня этот вариант не устраивает."
3 orefkov
 
26.09.11
09:14
Если все диски, то можно так:

Для Номер = 0 По 25 Цикл
   Файл = Новый Файл(Символ(КодСимвола("A") + Номер) + ":\");
   Если Файл.Существует() И Файл.ЭтоКаталог() Тогда

Еще можно через wmi
http://tinyurl.com/5sbex67

Только как говориться, от добра добра не ищут...
4 AlecoZAV
 
26.09.11
09:25
(2) (3) есть сомнение что мой способ везде работать будет, а вариант (3) - класс
спс
5 aleks-id
 
26.09.11
09:25
ИмяКомпьютера=".";
ServiceSet=GetCOMObject("winmgmts:{impersonationLevel=impersonate}!\\"+ИмяКомпьютера+"\root\cimv2");
DrivesSet=ServiceSet.Get("Win32_DiskDrive");

   Попытка
       Items=ServiceSet.ExecQuery("Select * from Win32_DiskDrive");
   Исключение
       Сообщить(ОписаниеОшибки());
       Отказ=Истина;
       возврат;
   КонецПопытки;    
   ЛокальныеДиски.Очистить();
   Для Каждого стр Из Items Цикл
       новстр=ЛокальныеДиски.Добавить();
       новстр.Имя = стр.Name;
   КонецЦикла;
6 Fragster
 
гуру
26.09.11
09:26
(1)(5) а теперь в веб-клиенте!
7 AlecoZAV
 
26.09.11
09:28
(6) веб клиент не нужен, для него (3)
8 AlecoZAV
 
26.09.11
09:29
(3)(5) - спасибо за отклик
тема закрыта
9 aleks-id
 
26.09.11
09:31
(6) а что, в веб-клиенте не отработает? ;)
10 orefkov
 
26.09.11
09:39
Очень прикольно в вэбклиенте под убунтой например диски искать...