После перехода на платформу «1С:Предприятие 8.3» многие пользователи и системные администраторы сталкиваются с неприятной ситуацией: документы, которые раньше автоматически печатались с двух сторон листа, начинают выходить на отдельных страницах. При этом в других офисных программах двусторонняя печать продолжает работать штатно, а в свойствах самого принтера Windows дуплексный режим включен по умолчанию. Чтобы распечатать документ с двух сторон из 1С, приходится каждый раз вручную заходить в параметры страницы.
Разберем подробно, почему возникает такое поведение платформы, как устроена передача настроек печати в операционную систему и какие способы позволяют автоматизировать двустороннюю печать.
Выясним причину такого поведения. Начиная с версии 8.3, механизм взаимодействия платформы 1С с системной подсистемой печати Windows претерпел изменения:
Проанализируем стандартный механизм платформы для запоминания настроек пользователя. Чтобы пользователю не приходилось при каждом открытии печатной формы заново выбирать двустороннюю печать, в конфигурации для табличного документа должно быть задано свойство ИмяПараметровПечати (или КлючПараметровПечати).
Если это свойство заполнено, платформа сохраняет пользовательские настройки страницы (включая ориентацию, поля и двустороннюю печать) в системном хранилище настроек. При последующем формировании этой же печатной формы сохраненные параметры восстанавливаются автоматически.
Разберем по шагам, как это работает в коде:
// Задаем уникальный ключ для сохранения настроек конкретной формы
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Накладная_Печать";
Если для печатной формы имя параметров печати уже задано, пользователю достаточно один раз открыть Файл — Параметры страницы, установить двустороннюю печать и нажать ОК. Настройки сохранятся в его профиле.
Рассмотрим вариант, когда необходимо гарантировать двустороннюю печать для всех пользователей без ручной настройки интерфейса. Для этого у объекта ТабличныйДокумент предусмотрено свойство ДвусторонняяПечать.
Посмотрим на пример установки дуплекса при формировании печатной формы:
// Установка двусторонней печати с переворотом по длинному краю
ТабличныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево;
// Либо с переворотом по короткому краю (для альбомной ориентации)
// ТабличныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВверх;
Если требуется, чтобы документ подчинялся настройкам, заданным непосредственно в Windows-принтере, можно использовать значение ТипДвустороннейПечати.ИспользоватьНастройкиПринтера (доступно в зависимости от версии платформы).
Для сетевых принтеров и МФУ марки Kyocera существует аппаратный способ принудительного включения дуплекса. Устройства этого производителя поддерживают встроенный командный язык управления печатью PRESCRIBE.
Разберем, как применить этот способ:
Текст управляющей последовательности для дуплекса с портретной ориентацией:
!R! SPO P; DUPX 1; EXIT;
Расшифровка команд языка:
!R! — начало командной последовательности PRESCRIBE;PAGE; — перевод страницы (при необходимости);SPO P; — установка портретной ориентации (SPO L; — альбомная);DUPX 1; — включение двусторонней печати с переворотом по длинному краю (DUPX 0; — односторонняя, DUPX 2; — по короткому краю);RES; — сброс параметров к значениям по умолчанию после завершения задания;EXIT; — выход из режима обработки команд и возврат к печати документа.Проанализируем системные факторы, влияющие на передачу команд дуплекса из 1С в принтер: