Имя: Пароль:
1C
1С v8
Возможно ли повлиять на настройки печати?
0 НеПридумалаНик
 
10.03.17
11:56
Можно ли повлиять на настройки принтера? Не на параметры страницы табличного документа, а именно на настройки принтера.
Необходимо: выводить документ с настройками:
2 копии
разобрать на копии = Истина
2 страницы на лист (страницы - портрет, лист - ландшафт)
двусторонняя печать

Сложность в том, что когда задаешь параметры для ТабДок средствами 1С, то упорно получается: (страницы - портрет, лист - портрет) или (страницы - ландшафт, лист - портрет), в зависимости от ориентации страницы, т.е. сам лист всегда портрет (!!!).
А если позволить пользователю самостоятельно установить параметры в настройках принтера ( с режимом ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать) ), то все получается как надо.
Может с помощью WMI, WinAPI, GDI...
1 НеПридумалаНик
 
10.03.17
12:52
... в отчаянии
2 HardBall
 
10.03.17
13:40
(0) YAGNI
3 НеПридумалаНик
 
10.03.17
13:53
(2) а куда тогда копать?
4 НеПридумалаНик
 
10.03.17
13:54
(2) сейчас смотрю PrintDlgEx... тоже YAGNI?
5 НеПридумалаНик
 
10.03.17
14:30
неужели всё так просто, что даже не внимания не стОит этот вопрос? (((
6 Cyberhawk
 
10.03.17
14:31
"Сложность в том, что когда задаешь параметры для ТабДок средствами 1С, то упорно получается: (страницы - портрет, лист - портрет) или (страницы - ландшафт, лист - портрет), в зависимости от ориентации страницы, т.е. сам лист всегда портрет (!!!). " // Показывай
7 mistеr
 
10.03.17
14:55
(0) Как вариант, печатать на PDF принтер. Многие из них умеют колбасить по-всякому.
8 НеПридумалаНик
 
10.03.17
15:05
не очень понимаю, что показывать, хочется ту кучу испорченной макулатуры показать... ограничусь кодом


    Если ЭлементыФормы.АвтоматическийРежим.Значение = Истина Тогда //если этот элемент формы Истина, то Напечатать повторяется каждую минуту
        ТабДок.ИмяПринтера = ЭлементыФормы.Принтер.Значение; //принтер выбирается пользователем
        
        
        //Если Напечатано = 0 Тогда //сначала предполагалось, что вначале заданные пользователем свойства печати сохраняются на весь период работы отчета, но надежды не оправдались
        //    
        //    ТабДок.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
        //    
        //Иначе
            
            ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; //здесь все варианты были - ожидаемого результата не получилось
            ТабДок.ЭкземпляровНаСтранице = 2; //действительно печатает две стр на листе, но на портретном листе друг под другом (страницы - портрет, лист - портрет)
            ТабДок.КоличествоЭкземпляров = 2;
            ТабДок.РазборПоКопиям = Истина;
            ТабДок.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево; //это работает
            ТабДок.РазмерСтраницы = ЭлементыФормы.Формат.СписокВыбора.НайтиПоЗначению(ЭлементыФормы.Формат.Значение).Представление;
            ТабДок.АвтоМасштаб = Истина;
            

            ТабДок.Напечатать();

        //КонецЕсли;
        
        Напечатано = Напечатано + 1;
        
    Иначе    
        
        Показать(ТабДок);
    КонецЕсли;
9 НеПридумалаНик
 
10.03.17
15:07
(6) -> (8)
10 НеПридумалаНик
 
10.03.17
15:09
(7) тут автоматическая печать, т.е. печатаются готовые документы раз в минуту, предварительно проверив есть ли они. Пользователей как раз и хотят освободить от установки параметров печати каждого документа
11 НеПридумалаНик
 
10.03.17
15:12
(6) тут происходит установка параметров страницы табличного документа. Я же хочу докопаться до стандартных настроек принтера
12 HardBall
 
10.03.17
16:04
Попробуй ТабДок.КлючПараметровПечати = "Печать";
13 mistеr
 
10.03.17
16:50
(10) И что? Я, к примеру, пользуюсь PDFCreator, у него есть опция сразу выкидывать полученный PDF  на принтер.
14 mistеr
 
10.03.17
16:51
(11) Сдается мне, что "2 страницы на лист" это не стандартная настройка, а вендоро-зависимая. Соответственно, через WinAPI ее не выставить.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший