Книга знаний

1С:Предприятие / Приемы программирования

Отправка документов напрямую на принтер

Отправляем документ на нужный принтер без появления диалогового окна "Выбор принтеров"Автор статьи: Dimasik2007 | Редакторы: ReLock
Последняя редакция №2 от 12.01.11 | История
URL: http://kb.mista.ru/article.php?id=677

Ключевые слова: Принтер


Чтобы иметь возможность отправлять документы на необходимые принтеры программным путем, необходимо следующее (платформа 8.0, Управление торговлей, ред. 10.2):

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

2) на шаге 1 имеем список принтеров

3) идем в "Общий модуль РаботаСДиалогами" и ищем функцию

Процедура НапечататьДокумент(ПечДокумент, КоличествоЭкземпляров = 1, НаПринтер = Ложь, Заголовок = "") Экспорт


4) Добавляем в нее дополнительный параметр - имя принтера
Процедура НапечататьДокумент(ПечДокумент, КоличествоЭкземпляров = 1, НаПринтер = Ложь, Заголовок = "", ИмяПринтера = "") Экспорт



5) ищем строчку "если НаПринтер Тогда..." и добавляем после нее


       
если не (СокрЛПП(ИмяПринтера) = "")    
            ПечДокумент.ИмяПринтера = ИмяПринтера;
        конецесли;
 

6) для каждого объекта, который мы будем печатать, правим функцию "Печать"
По умолчанию параметры следующие:
Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт
как на шаге 3 добавляем параметр
ИмяПринтера

И не забываем добавить его в
 
 НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, СформироватьЗаголовокДокумента(ЭтотОбъект, ЭтотОбъект.Метаданные().Представление()),ИмяПринтера);

(она будет в самом конце)

7) и в нашем обработчике вызваем функцию печать с нашими параметрами, например,
Реализация.Печать(МакетРеализации, , истина, ЭтаФорма.ЭлементыФормы.Принтеры1.ВыделенныйТекст );


P.S. Имя принтера (на компьютере, к которому он подключен) должно быть без пробелов! Иначе вся программная реализация печати коту под хвост (печать уходит в никуда)!

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика