Имя: Пароль:
1C
1С v8
Как заставить печатать документы только на конкретный принтер
0 SeregaMW
 
06.10.14
17:56
УТ 10.3
Захожу в общею форму печати документов при нажатии на кнопку печати получаю табличный документ и задаю ему имя принтера и формат бумаги, выдает ошибку так как параметры ИмяПринтера и РазмерЛиста имеют тип не определено (
1 Ёпрст
 
06.10.14
17:57
нам отсюда не видно, где задаешь
2 SeregaMW
 
06.10.14
17:58
Процедура ДействияФормыПечать(Кнопка)
    ПечатныйДокумент.РазмерСтраницы = "А4";
    ЭлементыФормы.ПолеТабличногоДокумента.Напечатать(Ложь);
КонецПроцедуры
3 Ёпрст
 
06.10.14
18:05
мот  полютабличного документа будешь параметры указывать ?
4 Ёпрст
 
06.10.14
18:08
ЭлементыФормы.ПолеТабличногоДокумента.ИмяПринтера = ПечатныйДокумент.ИмяПринтера;

так хотя бы.. ну или напрямую, задавай, че хочешь
5 Ёпрст
 
06.10.14
18:09
Там же в приоткрытии тупо область вставляется..и усё - ПечатныйДокумент больше не используется никак, он сам по себе, а ПолеТабличногоДокумента само по себе..и они не связаны никак.
6 SeregaMW
 
07.10.14
08:48
(5) В ПолеТабличногоДокумента ситуация аналогичная, ИмяПринтера и РазмерСтраницы тоже имеют тип не определено (
7 butterbean
 
07.10.14
08:51
(6) нужно сначала вывести все в таб документ, потом уже задавать имя принтера и бумагу, а потом печатать
8 SeregaMW
 
07.10.14
09:05
(7)
не много не понял как сделать, пишу так
    ЭлементыФормы.ПолеТабличногоДокумента.Вывести(ПечатныйДокумент);
    ЭлементыФормы.ПолеТабличногоДокумента.Напечатать(Ложь);
Результат тот же
9 ИС-2
 
naïve
07.10.14
09:11
Функция УстановитьПринтерДляПечати(ИмяПринтера)
        ОбъектСеть = Новый COMОбъект("WScript.Network");
            ОбъектСеть.SetDefaultPrinter(ИмяПринтера);
КонецФункции


Функция ПолучитьСписокДоступныхПринтеров()
    Список = Новый СписокЗначений;
        Попытка
            КОМОбъект =  Новый COMОбъект ("WScript.Network");
            Принтеры =  КОМОбъект.EnumPrinterConnections();
            шшш = 0;
            Пока шшш < Принтеры.Count()-1 Цикл
                Список.Добавить(Принтеры.Item(шшш+1), Принтеры.Item(шшш+1));
                шшш = шшш + 2;
            КонецЦикла;
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    возврат Список;
КонецФункции
10 SeregaMW
 
07.10.14
09:35
(9) Ставит принтер по умолчанию.
У меня проблема в том что после печати на принтере этикеток, печатаешь документ на принтере А4 а размер документа остается как этикетка.
11 SeregaMW
 
07.10.14
09:36
(10) Для этого при печати А4 хочу принудительно задавать размерЛиста
12 ИС-2
 
naïve
07.10.14
09:42
(10) сохрани в переменную принтер, который был по умолчанию до начала печати
13 Krolik Bezobraznik
 
07.10.14
10:17
Сделай реквизит в котором будет храниться имя принтера. Сделай кнопку для выбора принтера из формы. Результат выбора сохрани в реквизит. Реквизит сделай сохраняемым. При открытии формы подтягивай принтер и при нажатии на печать будет тебе счастье.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший