Управление настройками принтера из 1С #410247


#0 by casufi
Нужно распечатать два екземпляра документа на одной странице А4, в настройках принтера для этого есть галочка - несколько экземпляров на странице. В крайнем случае можно задать в настройках принтера формат листа - А5 и расположение альбомное, а в свойствах страницы в 1С просто задать формат листа - А5. Хочется всем этим управлять програмно из 1С, чтобы бухгалтер не лез в настройки принтера, никто не сталкивался с подобной задачей ?
#1 by smaharbA
создай сколько надо настроек столько и принтеров
#2 by miki
ПараметрыСтраницы+ Один раз настроить.
#3 by Дуб
управляй программно. Что мешает?
#4 by casufi
Во первых в ПараметрыСтраницы я не нашел опции - формат бумаги, во вторых, если в параметрах страницы интерактивно выставить формат А5, и ориентацию ландшафт, то направление текста от этого не поменяется, нужно выставлять в параметрах страницы формат А5- портрет, а в настройках принтера формат А5, ландшафная ориентация страницы, для рядового бухгалтера этот набор действий - черная магия.
#5 by miki
если бумажки разные - то . если только масштаб/ориентация - хватит и
#6 by casufi
Как подключить один сетевой принтер два раза ? У меня не получилось. И еще, я не нашел как программно или в конфигураторе задать размер листа для печатной формы.
#7 by miki
размер листа, дуплекс-шмуплекс-цвет-экономод - для другого принтера. Принтер и "устройство печати" - вещи разные. Принтер надо не подключать, а создавать. Позови того, кто умеет, как вариант.
#8 by casufi
Если принтер локальный или к нему можно подключиться по HTTP или CUPS, то такой номер пройдет. А вот обычный принтер, который расшарен на виндовой машине, через "Создать принтер" никак не подключишь.
#9 by miki
нЕгде сейчас попробовать, но почему не подключишь? Расшарь несколько, как вариант...
#10 by casufi
Может можно распечатать сформированную таблицу через WSH cкрипт, а в нем задать настройки принтера ?
#11 by miki
это к
#12 by povar
кто вам такое сказал ?
#13 by povar
можно создать сколько угодно принтеров  с разными настройками, на одном порту печати
#14 by casufi
Я так думаю, гораздо еффективнее написать на WSH скриптик, в который в виде объекта будет передаваться таблица. Как управлять настройками принтера в VBS я нашел, вопрос в том, как теперь из скрипта таблицу распечатать.
#15 by povar
не знаю на счет эффективности, но вот проще сделать через пользовательские настройки
#16 by Kreont
У меня счас так и есть, в винде создано два принтера у одного дуплекс включен у второго выключен :( И при печати просто использую который надо, но сразу предупр. очень так неудобно : пользователь может неправильно указать, та и в винде может переименовать принтер
#17 by Kreont
Можете кто-нить код опубликовать примера на WSH выбора принтера и изменения настроек на лету?
#18 by povar
вот примерно так, хоть и не WSH
#19 by dk
"помммеедленнее, я запииисываю" (с) у меня тоже с сетевым принтером такой фокус не проходит, колись :)
#20 by dk
хотя ...
#21 by casufi
Спасибо, очень похоже на правду, была бы карма поставил бы Вам много плюсов.
#22 by casufi
Проблема таки есть. Команда rundll32 printui.dll,PrintUIEntry /Sr /n "Принтер" /a "ФайлНастроек.dat" не работает для сетевых принтеров.
#23 by miki
ругается как нить? попробуй прописать их в dns
#24 by casufi
Ругается "Невозможно завершить операцию". Не совсем понял что прописать в DNS, имя компьютера на котором висит принтер, я его отлично пингую и без этого.
#25 by miki
я хз как работает команда из , предположил, что не находит по имени...
#26 by miki
пусть аутор метода разбирается :) может тут, что поможет:
#27 by Kreont
или тут почитать rundll32 printui.dll,PrintUIEntry /?
#28 by miki
Там есть указание на ключик реестра, который, если отсутствует, может давать
#29 by casufi
сам то читал ? Сформулирую вопрос по другому. Если у кого есть возможность попробовать работает ли команда rundll32 printui.dll,PrintUIEntry /Sr /n "Принтер" /a "ФайлНастроек.dat" для сетевых принтеров, попробуйте, и отпишитесь если работает. Имя принтера можно взять скриптом Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & "." & " ootcimv2") Set colInstalledPrinters =  objWMIService.ExecQuery ("Select * from Win32_Printer") strInfo=vbNullString For Each objPrinter in colInstalledPrinters If objPrinter.Default = True Then strInfo = strInfo & objPrinter.Name&vbCrLF Next
#30 by casufi
Ключики в реестре только что проверил, присутствуют для всех принтеров, юзер имеет право в них писать, проверил командой reg export HKEY_CURRENT_USERPrintersDevModePerUser Set.reg reg import Set.reg Меня бы устроил вариант с експортом и импортом ветки реестра, но после этой операции юзер должен залогиниться и разлогиниться в свой акаунт, только тогда новые настройки подхватятся.
#31 by Kreont
>29 у меня для сетевого работает (HP 4300)
#32 by casufi
Похоже все зависит не от того, сетевой принтер или нет, а от конкретной марки принтера. У меня этот метод не работает на HP 1100 лазерном, но отлично работает на МФУшке Canon.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С