При выводе документов на печать пользователи часто сталкиваются с ситуацией, когда принтер с поддержкой дуплекса упорно печатает страницы на отдельных листах, несмотря на включенную галочку двухсторонней печати в свойствах устройства в операционной системе Windows. Разберем, почему платформа 1С игнорирует системные параметры и как правильно настроить печать с двух сторон.
Проанализируем техническую сторону работы платформы с печатными формами. Объект ТабличныйДокумент в 1С:Предприятии управляет параметрами печати автономно. При отправке сформированного документа на печать платформа передает драйверу собственный набор настроек страницы, который переопределяет параметры по умолчанию, заданные в операционной системе.
Если для конкретной печатной формы в 1С сохранен параметр «Односторонняя печать» (или значение дуплекса не определено явно), программа принудительно указывает принтеру печатать каждую страницу на новом листе. Кроме того, 1С кэширует параметры страницы для каждого пользователя и каждого вида документа по уникальному ключу ИмяПараметровПечати. Если однажды документ был распечатан с односторонней печатью, эта настройка применяется ко всем последующим формированиям формы.
Рассмотрим порядок действий для настройки дуплекса непосредственно в пользовательском интерфейсе 1С:ЗУП 3.1:
После выполнения этой операции платформа 1С сохранит выбранный параметр для текущего пользователя, и все последующие распечатки этого документа будут выводиться с двух сторон автоматически.
Если форма продолжает печататься некорректно из-за сбоя в кэше настроек, разберем по шагам, как сбросить сохраненные параметры:
Если требуется принудительно включить двухстороннюю печать для всех пользователей через расширение конфигурации или во внешней печатной форме, посмотрим на программные инструменты платформы. У объекта ТабличныйДокумент за управление дуплексом отвечает свойство ДвусторонняяПечать, принимающее значения системного перечисления ТипДвустороннейПечати.
Посмотрим на пример кода в модуле формирования печатной формы:
// Установка двухсторонней печати для книжной ориентации
ТабличныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево;
// Установка двухсторонней печати для альбомной ориентации
// ТабличныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВверх;
// Автоматический выбор режима печати
// ТабличныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.Авто;
Важный момент при печати комплектов документов: если на двух сторонах листа необходимо распечатать несколько разных документов (например, заявление и приложение к нему), их обязательно нужно выводить в один общий ТабличныйДокумент, разделяя страницы методом ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(), либо компоновать через объект ПакетОтображаемыхДокументов. Если отправлять каждый документ на печать отдельным вызовом метода Напечатать(), принтер будет воспринимать их как раздельные задания и напечатает каждый документ на новом листе.
В терминальных сессиях (RDP) перенаправленные принтеры с универсальными драйверами (Easy Print) могут некорректно обрабатывать команды управления дуплексом от 1С. В таких случаях рассмотрим альтернативный системный подход: