Имя: Пароль:
1C
 
Дуплексная печать в 1С
0 Vinny
 
06.07.06
00:20
Нужно организовать потокувую печать докуменов из 1С без пред. просмотра, сразу на принтер. Ну и дуплексная печать нужна, есс-но
Вопрос не новый, но тем не менее
Порывшись в инете узнал теоритечески о 3 методах
1. Физический принтер расшаривается как 2 логических, на каждом из них устанавливается свои параметры по умолчанию... Однако админы говорят - загнется спулер печати пол Win NT4.0 Serv
2. PCL команды, ESC последовательности... только непонятно как их отправлять при печати из 1С табличек... прописать их в ячейке не получает - принтер их просто печатает, не воспринимает как управляющие команды
3. rundll32 printui.dll,PrintUIEntry ... и т.д. читаем, сохраняем в файл настройки. Все хорошо, а при попытке записи ошибка... что то типа "невозможно завершить команду" или типа того.
Что посоветуете, пока первый вариант не обсуждаем, итересно чисто программное решение
1 SKrin
 
06.07.06
00:24
чето я не понял
зачем все так сложно?
есть Напечатать, ОпцииПечати и ПараметрыСтраницы
2 Vinny
 
06.07.06
00:29
попробуй - узнаешь...
Напечатать(0) и Напечатать(1) приводят к разному результату.
Напечатать(1) не катит - времени на это нет...
А на принтер идет толпой поток заданий - что то в альбоме, что то в ладншафте, что то в дуплексе, а что то и нет.. И всем нужно программно управлять. А в 1С нет программного способа включить/отключить дуплекс.
3 SKrin
 
06.07.06
00:32
что ты подразумеваешь под дуплексом в печати?
4 Vinny
 
06.07.06
00:34
Двухсторонюю печать
5 SKrin
 
06.07.06
00:42
(4) я так понимаю, что это настройки драйвера принтера
может все-таки попробуешь ОпцииПечати, параметр <ИмяОпцийПечати>
6 SKrin
 
06.07.06
00:43
"Напечатать(1) не катит - времени на это нет..." - это как?
7 Vinny
 
06.07.06
00:46
Опции(<ВыводСетки>,<ВыводЗаголовков>,<ФиксСтрок>,<ФиксСтолбцов>,<ИмяОпцийПечати>,<ИмяСохрРазмОкна>,<ФлагЧБПросмотра>,<НаправлПерехода>)
Тут и пол слова про дуплексную печать нету...

Напечатать(<?>);
Синтаксис:
Напечатать(<Флаг>)
Назначение:
Напечатать таблицу без предварительного просмотра (печать без открытия окна редактирования).
Параметры:
<Флаг> - необязательный параметр. Режим запроса диалога печати: 1 - запрашивать диалог печати (по умолчанию), 0 - не запрашивать.
Замечание:
Метод может использоваться при работе с таблицей в режиме ввода данных.

После вывода диалога от юзверя требуется напрячься, полезь в настройки принтера, поставить (или снять) галочку "двухстороняя печать"... Что при большом потоке документов не пройдет из за банальной нехватки времени.
8 SKrin
 
06.07.06
00:59
(7)
1. ключевое слово <ИмяОпцийПечати>
один раз задаешь параметры принтера и сохраняешь под нужным именем
а потом просто указываешь имя опиций при печати

2. для каждого документа настройки принтера сохраняются, т.е. если для одного дока нужна двух-яя печать, то один раз указал и все, потом при печати этого дока настройки сохраняются
и так для каждго дока
9 Vinny
 
06.07.06
01:03
Ты сам пробовал?
Давай в аську выходи. я тебя счас там найду - поговорим
10 SKrin
 
06.07.06
01:08
(9) конкретно для двухстороннейпечати не пробовал
но пробовал на цветном принтере, натсройка "цветная/ЧБ печать"
разукрасил макеты двух доков
для одного установил ЧБ печать, для другого цветная
при печати, не заходя в настройки принтера они печатаются так, как я указал раннее
11 Vinny
 
06.07.06
08:28
Up
12 Vinny
 
06.07.06
08:40
Попробую, но сомневаюсь я сильно
13 Vinny
 
06.07.06
08:50
У меня в принтере 2 пользовательских настройки сохранено "duplex" "noduplex"
В сч/ф указано имя опций печати "duplex".
Не работает :(
14 Токс
 
06.07.06
09:13
Попробуй установить 2 принтера в системе и настроить один на дуплекс, другой на одностороннюю и менять имя принтера в ПараметрыСтраницы()...
ЗЫ Тоже не пробовал - нет у меня двухстороннего принтера... бедный я, как старушка Ю...
15 Vint Kras
 
06.07.06
09:13
(13) два принтера поставь, как Токс посоветовал, работает на ура
16 Ёпрст2
 
06.07.06
09:16
(15) +1
ЗЫ: Один и тот же принтер ставь как 2 в системе - один с дуплексом, другой без...
у меня работает.
17 Vinny
 
06.07.06
09:19
Граждане, не катит первый способ... но кажется есть прогресс в 3-ем...
Перестало ошибку выдавать, ставит нужный набор. счас в печати попробую реальной
18 mrkorn
 
06.07.06
09:33
(13) не забывай, что ОпцииПечати записываються тогда, когда ты мняешь настройки печати, те вручную распечатываешь док, с названием нужной ОпцииПечати.

Если еще не печатал на этой опции, то автоматом док не напечатаеться...

а еще, smaharbA, подсказывал, что сетевое имя принтера нужно делать как можно короче, тк метод капризный и настройки могут слетать из-за этого.

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

это штатно

если дружишь со скриптами, то настройки можно прописывать сразу в реестр,
когда настраеваешь печать.
19 Vinny
 
06.07.06
10:03
Ну, вроде наступила некотрая ясность ...
Итак, ОпцииПечати - это не настройки принтера совсем, а настройки документа - поля, ориентация и т.п. Дуплексная печать - это возможность принтера, а не свойство документа - ловить там нечего. Настрйоки эти хранятся в реестре HKEY_USERS\<ID пользоватеья>\Software\1C\1Cv7\7.7\<Имя базы>\V7\_dmytry_ba\Moxel\<Имя настройки>
Причем там становится непусто, если натройки отличаются от дефолнтых для 1С.

Зато третий метод заработал. Интересно... видимо 1С читает настройки принтеров в память и держит их там, обновляя при отображении страницы на листе... Пожтому если просто печатать не показывая, то все манипуляции с настройками принтера игнорятся.. А вот конструкция типа
   Таб.Показать("Сформировать", "",0);
   Таб.Показать("Сформировать", "",-1);
   Таб.Напечатать(0);
Приводит к результату - если стоит в притнере дуплек - идет дуплекс, если не стоит - печатает односторонне
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.