Сменить текущий принтер по умолчанию на другой программно и обратно
Добрый день! На одном компе стоит принтер этикеток локальный и обычный принтер сетевой. По умолчанию в винде стоит обычный принтер, и все хорошо. Доки из 1С печатаются на обычный принтер. Но... при печати этикеток должен автоматически по умолчанию становиться принтер этикеток. Видимо нужно программно менять принтер по умолчанию во время печати этикетки, но как?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Вот код:
ТабДокументШтрих.ИмяПринтера="\\....\Gprinter GP-3120TN";
ТабДокументШтрих.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Штрих";
ТабДокументШтрих.Показать();
ИмяМакета="Штрих";
КоличествоЭкземпляров = 1;
НаПринтер = Ложь;
НепосредственнаяПечать = Ложь;
КлючОбъекта = "Общее/НастройкиПечатиТабличногоДокумента/ПАРАМЕТРЫ_ПЕЧАТИ_Штрих";
КлючНастройки = "";
Пользователь = " ";
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, КлючНастройки, Пользователь);
Показать
Была такая же проблема - нормальными способами побороть не смог.
Пришлось делать формирование табличного документа и отправку на принтер без предпросмотра. (ТабДок.ИмяПринтера, ТабДок.Напечатать()). В ВПФ не работает, лепил прям на кнопку на форме.
ИмяПараметровПечати - помогает для сохранения всех настроек, кроме имени принтера. Печатается в любом случае на последний выбранный принтер, хоть все и уверяют в обратном. платформа - 8.2, конфигурация - комплексная.
Пришлось делать формирование табличного документа и отправку на принтер без предпросмотра. (ТабДок.ИмяПринтера, ТабДок.Напечатать()). В ВПФ не работает, лепил прям на кнопку на форме.
ИмяПараметровПечати - помогает для сохранения всех настроек, кроме имени принтера. Печатается в любом случае на последний выбранный принтер, хоть все и уверяют в обратном. платформа - 8.2, конфигурация - комплексная.
ТабДокумент = Новый ТабличныйДокумент;
ТЗПринтеры=Новый ТаблицаЗначений;
ТЗПринтеры.Колонки.Добавить("ИмяПринтера");
принтеры = Новый COMОбъект ("WScript.Network");
prn = принтеры.EnumPrinterConnections();
i = 0;
Пока i < prn.Count()-1 Цикл
НовыйПринтер=ТЗПринтеры.Добавить();
НовыйПринтер.ИмяПринтера=prn.Item(i+1);
i = i + 2;
КонецЦикла;
Строка=ТЗПринтеры.ВыбратьСтроку("Выберите принтер");
ТабДокумент.ИмяПринтера=Строка.ИмяПринтера;
//Формируем Табдок
ТабДокумент.АвтоМасштаб=1;
ТабДокумент.Напечатать();
Показать
(14) У себя добавил в рабочее место выбор принтера, код под УФ, без таблиц значений:
&НаКлиенте
Процедура дор_ПринтерЧековНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
С = Новый СписокЗначений();
Принтеры = Новый COMОбъект ("WScript.Network");
prn = принтеры.EnumPrinterConnections();
i = 0;
Пока i < prn.Count()-1 Цикл
С.Добавить(prn.Item(i+1));
i = i + 2;
КонецЦикла;
ОО = Новый ОписаниеОповещения("дор_ПринтерЧековОкончаниеВыбора", ЭтаФорма);
С.ПоказатьВыборЭлемента(ОО, "Выберите принтер");
КонецПроцедуры
&НаКлиенте
Процедура дор_ПринтерЧековОкончаниеВыбора(ВыбранныйЭлемент, ДП) Экспорт
Если ВыбранныйЭлемент <> Неопределено Тогда
Объект.дор_ПринтерЧеков = ВыбранныйЭлемент.Значение;
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот