Версия для печати темы (https://pro1c.org.ua/index.php?s=3e8cabf28bfbb42b933c3e6985631a35&showtopic=67555)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Печать документов на два разных принтера

Автор: kostya77 27.05.24, 9:50

Добрый день. В документа есть две печатные формы. Подскажите, как организовать печать одной фомы на принтер №1, а второй на принтер №2. Оба принтера подключены к одному компу

Автор: AnryMc 27.05.24, 10:28

Цитата
ТабличныйДокумент (SpreadsheetDocument)
ИмяПринтера (PrinterName)
Использование:
Чтение и запись.
Описание:
Тип: Строка.
Содержит имя принтера, известного в системе, на который будет выводиться табличный документ при печати.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер).
Использование в версии:
Доступен, начиная с версии 8.0.

Автор: denis84 27.05.24, 10:51

kostya77 @ Сегодня, 10:31 * ,
Добрый день! Через два разных табличных документа (печатные формы) в свойствах табличного документа можно указать принтер

Автор: kostya77 27.05.24, 10:55

AnryMc @ Сегодня, 11:28 * ,
Подскажите. как можно организовать, для пользователя, настройки выбора принтера для каждой печатной формы?

Автор: AnryMc 27.05.24, 11:05

kostya77 @ Сегодня, 11:55 * ,

Папример добавить 2 реквизита (для 2 печатных форм соответственно) и сделать подбор значения из списка установленных в системе.
Правда этот список нужно будет получить скриптом, напимер...

wmic printer list brief > "%userprofile%\Desktop\Printers.txt"

Потом парсить файл %userprofile%\Desktop\Printers.txt - создавая список имён для выбора

Или если список практически не меняется - задать имена вручную

Автор: volodya1122 27.05.24, 11:31

kostya77 @ Сегодня, 11:55 * ,


Ось мій варіант вибора принтера. в довіднику "Користувачів" в мене прописані назви принтерів які потрібно використовувати для різних варіантів друку (назву принтера необовязково вказувати повністю - головне щоб всі назви принтерів в компютері були різні)


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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua