Получение списка принтеров и Подключение сетевого принтера Для работы с сетевыми ресурсами в WSH предназначен объект WshNetwork. Из "1С:Предприятие" можно напрямую управлять сетевыми ресурсами, в том числе и принтерами.
Получить список принтеров
Код 1C v 8.х Функция ПолучитьСписокПринтеров()
СписокПринтеров = Новый СписокЗначений;
СписокПринтеров. Очистить( ) ;
Принтеры = Новый COMОбъект( «WScript. Network») ;
Prn = Принтеры. EnumPrinterConnections( ) ;
й = 0 ;
Пока й < Prn. Count( ) – 1 Цикл
СписокПринтеров. Добавить( Prn. Item( й + 1 ) ) ;
й = й + 2 ;
КонецЦикла ;
Принтер = СписокПринтеров. ВыбратьЭлемент( ) ;
Если Принтер < > Неопределено Тогда
……
Сообщить( Принтер. Значение) ;
……
КонецЕсли ;
КонецФункции
Подключение сетевого принтера
Код 1C v 8.х
Сеть = Новый СОМОбъект( "Wscript.Network" ) ;
Попытка
Сеть. AddWindowsPrinterConnection( "\\ИмяСервера\ИмяПринтера" ) ;
Сеть. SetDefaultPrinter( "\\ИмяСервера\ИмяПринтера" ) ;
Исключение
Сообщить( "Невозможно произвести подключение" ) ;
КонецПопытки ;
Объект WshNetwork позволяет определить список подключенных сетевых
принтеров . Для этого используется метод EnumPrinterConnections, который возвращает коллекцию
принтеров . Данную коллекцию можно перебрать с помощью конструкции
Код 1C v 8.х Для каждого . . . из . . . Цикл . . . КонецЦикла
Категория:
COM-объекты, WMI, WSH Получить имя принтера выбранного по умолчанию Код 1C v 7.x
Функция Hex(Пар)
Результат= "" ;
Пока Пар> 0 Цикл
Результат= Сред( "0123456789ABCDEF" , Пар+ 1 , 1 ) + Результат;
Пар= Цел( Пар/ 16 ) ;
КонецЦикла ;
Возврат "" + Результат;
КонецФункции
Функция ПолучитьПринтерПоУмолчанию()
ПринтерПоУмолчанию= "" ;
Scr = CreateObject( "MSScriptControl.ScriptControl" ) ;
Scr. Language = "javascript" ;
Scr. Timeout= - 1 ;
КоллекцияПринтеров = Service. ExecQuery( "S_elect Name,Attributes from Win32_Printer" ) ;
Scr. AddObject( "o" , КоллекцияПринтеров) ;
e= Scr. eval( "new Enumerator(o);" ) ;
Пока e. atEnd( 0 ) = 0 Цикл
БайтАтрибута= Прав( Hex( e. item( 0 ) . Attributes) , 1 ) ;
Если ( ( БайтАтрибута> "3" ) И ( БайтАтрибута< "8" ) ) или ( БайтАтрибута> "B" ) Тогда
ПринтерПоУмолчанию= e. item( 0 ) . Name;
Прервать;
КонецЕсли ;
e. moveNext( 0 ) ;
КонецЦикла ;
Возврат ПринтерПоУмолчанию;
КонецФункции
Категория:
COM-объекты, WMI, WSH