Получить список принтеров и текущее состояние его

1. SeverBaP 5 18.11.19 16:57 Сейчас в теме
Необходимо получить список принтеров подключенных к ПК у пользователя и определить возможность печати на нем. Суть в том чтобы по возможности перенаправлять печать документов на принтеры которые сейчас могут печатать, а не повисли или его вообще выключили.
На просторах интернета набрел на вот такое:
Функция ПолучитьСписокПринтеровПКПоПользователю()
	МассивПринтеров = Новый Массив;
	Попытка
		Locator     = Новый COMОбъект("WbemScripting.SWbemLocator");    
		ServicesSet = Locator.ConnectServer(".");
		ObjectSet   = ServicesSet.InstancesOf("Win32_Printer");
		Для каждого Item Из ObjectSet Цикл
			
			МассивПринтеров.Добавить(СокрЛП(Item.Caption));
			
		КонецЦикла;
		
	Исключение
	КонецПопытки;
	Возврат МассивПринтеров; 
КонецФункции
Показать

Тут все вроде просто получили просто весь список принтеров. А дальше когда необходимо распечатать табличный документ (к примеру) прописываем что-то в этом роде:
		Результат.ИмяПринтера = МассивПринтеров[0];
		Результат.напечатать();

Соответственно теперь в получение списка принтеров необходимо добавить отбор по статусу/состоянию принтера ...
Вроде если просматривать список атрибутов COM-Объекта можно найти свойство "PrinterStatus" которое имеет числовое значение, какие значение брать для отбора мне не понятно. Кто знает какие значения отбирать для получения принтера на котором сейчас можно печатать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот