Сменить текущий принтер по умолчанию на другой программно и обратно

1. Умочка 27.04.15 10:05 Сейчас в теме
Добрый день! На одном компе стоит принтер этикеток локальный и обычный принтер сетевой. По умолчанию в винде стоит обычный принтер, и все хорошо. Доки из 1С печатаются на обычный принтер. Но... при печати этикеток должен автоматически по умолчанию становиться принтер этикеток. Видимо нужно программно менять принтер по умолчанию во время печати этикетки, но как?
adhocprog; +1 Ответить
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1534 27.04.15 10:13 Сейчас в теме
(1) Умочка, кажись в кто-то писал что если в новой ПФ выбрать другой принтер по умолчанию. То и будет с него печатать. Проверьте и сообщите результат.

Т.е. с ПФ1 будет сетевой, а с ПФ2 будет локальный.
3. spacecraft 27.04.15 10:34 Сейчас в теме
(1) Умочка, как правило достаточно один раз указать настройки печати (в том числе и принтер) при печати из нужного типа документа, и 1С сама запомнит для всех документов этого типа куда и как печатать.
4. Xershi 1534 27.04.15 10:36 Сейчас в теме
(3) spacecraft, тогда мой вариант для 1 документа у нее не заработает?
5. spacecraft 27.04.15 10:45 Сейчас в теме
(4) Xershi, точно не скажу. Там идет настройка по внутреннему идентификатору печатной формы. Скорее всего прокатит, но надо пробовать. Только делать предварительно принтер по-умолчанию нет смысла.
6. spacecraft 27.04.15 10:52 Сейчас в теме
(4) Xershi, еще можно указать сам принтер, при выводе табличного документа. Но это надо лезть в конфигуратор и править код. И не проверял, как это будет работать с БСП.
7. Умочка 28.04.15 06:50 Сейчас в теме
так я и лезу в конфтгуратор и пралю код. Все это по умолчанию ПФ не работает почему то
8. Умочка 28.04.15 06:52 Сейчас в теме
Вот код:
ТабДокументШтрих.ИмяПринтера="\\....\Gprinter GP-3120TN";
    ТабДокументШтрих.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Штрих";

    ТабДокументШтрих.Показать();

ИмяМакета="Штрих";
КоличествоЭкземпляров = 1; 
НаПринтер = Ложь;
НепосредственнаяПечать = Ложь;

КлючОбъекта = "Общее/НастройкиПечатиТабличногоДокумента/ПАРАМЕТРЫ_ПЕЧАТИ_Ш­трих";

КлючНастройки = ""; 

Пользователь = " ";
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, КлючНастройки, Пользователь);
Показать
9. Умочка 28.04.15 06:53 Сейчас в теме
мне бв как-нить чтоб после этой процедуры сбросился этот локальный принтер. Плиииииииииииииииииииииз, помогите!!!!!!!!
10. Умочка 28.04.15 07:05 Сейчас в теме
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, КлючНастройки, Пользователь);
не помогает, даже при печатание других доков, по умолчанию встал принтер Gprinter GP-3120TN ((((((
11. 32ops 197 28.04.15 07:07 Сейчас в теме
Была такая же проблема - нормальными способами побороть не смог.
Пришлось делать формирование табличного документа и отправку на принтер без предпросмотра. (ТабДок.ИмяПринтера, ТабДок.Напечатать()). В ВПФ не работает, лепил прям на кнопку на форме.
ИмяПараметровПечати - помогает для сохранения всех настроек, кроме имени принтера. Печатается в любом случае на последний выбранный принтер, хоть все и уверяют в обратном. платформа - 8.2, конфигурация - комплексная.
12. Умочка 28.04.15 07:24 Сейчас в теме
что если без предпросмотра, то прежний принтер так и остается прежним?
13. 32ops 197 28.04.15 07:42 Сейчас в теме
14. 32ops 197 28.04.15 07:55 Сейчас в теме
    ТабДокумент = Новый ТабличныйДокумент;
    ТЗПринтеры=Новый ТаблицаЗначений;
    ТЗПринтеры.Колонки.Добавить("ИмяПринтера");
    принтеры =  Новый COMОбъект ("WScript.Network");
    prn =  принтеры.EnumPrinterConnections();
    i = 0;
    Пока i < prn.Count()-1 Цикл
        НовыйПринтер=ТЗПринтеры.Добавить();
        НовыйПринтер.ИмяПринтера=prn.Item(i+1);
        i = i + 2;
    КонецЦикла;

    Строка=ТЗПринтеры.ВыбратьСтроку("Выберите принтер");
    ТабДокумент.ИмяПринтера=Строка.ИмяПринтера;
//Формируем Табдок

    ТабДокумент.АвтоМасштаб=1;
    ТабДокумент.Напечатать();

Показать
fixin; adhocprog; konstantin_p; userMKA; svilsa; rpashkovsky; RomanKod; creatermc; Somebody1; +9 Ответить 1
16. fixin 4280 13.11.23 21:03 Сейчас в теме
(14) У себя добавил в рабочее место выбор принтера, код под УФ, без таблиц значений:

&НаКлиенте
Процедура дор_ПринтерЧековНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    С = Новый СписокЗначений();
    Принтеры =  Новый COMОбъект ("WScript.Network");
    prn =  принтеры.EnumPrinterConnections();
    i = 0;
    Пока i < prn.Count()-1 Цикл
        С.Добавить(prn.Item(i+1));
        i = i + 2;
    КонецЦикла;
    ОО = Новый ОписаниеОповещения("дор_ПринтерЧековОкончаниеВыбора", ЭтаФорма);
    С.ПоказатьВыборЭлемента(ОО, "Выберите принтер");
КонецПроцедуры

&НаКлиенте
Процедура дор_ПринтерЧековОкончаниеВыбора(ВыбранныйЭлемент, ДП) Экспорт
    Если ВыбранныйЭлемент <> Неопределено Тогда
        Объект.дор_ПринтерЧеков = ВыбранныйЭлемент.Значение;    
    КонецЕсли;
КонецПроцедуры


Показать
15. Умочка 28.04.15 09:14 Сейчас в теме
спасибочки!!!!!!!!!!!!!!!!!!!Помогло!!!!!!!!!!!!!!!!
17. user856012 14 13.11.23 22:21 Сейчас в теме
М-да... восемь с половиной лет прошло. Но гениям спешить некуда - у них впереди вечность!
user2104287; Dansur; +2 1 Ответить 1
18. mikeA 1 12.12.24 12:11 Сейчас в теме
(17) Мало того, в текущих реалиях
Новый COMОбъект
скорее всего вызовет ошибку.
Оставьте свое сообщение

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