Переход с платформы 8.2 на 8.3 часто сопровождается неожиданными изменениями в поведении привычных механизмов. Одной из самых распространенных проблем является отказ или некорректная работа двухсторонней печати (дуплекса) — для решения этой задачи пригодится обработка пакетной печати с поддержкой дуплекса. Пользователи и системные администраторы замечают, что настройки, выставленные в драйвере принтера по умолчанию, игнорируются, а документы выходят на печать на отдельных листах. Разберем подробно, почему это происходит и как вернуть привычный функционал.
Проанализируем ситуацию: в старых версиях платформы (8.2 и ранее) 1С практически не вмешивалась в работу драйвера принтера. Программа передавала графические данные, а за параметры дуплекса, лотков и качества отвечала системная служба печати Windows и настройки самого драйвера. Начиная с версии 8.3.3.721, логика существенно изменилась.
В объект ТабличныйДокумент было добавлено встроенное свойство ДвусторонняяПечать. Теперь платформа 1С пытается самостоятельно управлять механизмом переворота страниц, посылая явные команды принтеру через структуру DevMode. Выясним причину конфликта: если в настройках страницы 1С указано, что печать односторонняя, программа принудительно «перебивает» настройки драйвера принтера, даже если в самой Windows жестко задан дуплекс. Происходит конфликт приоритетов, в котором настройки приложения оказываются выше настроек операционной системы.
Для большинства случаев проблему можно решить без привлечения программиста, изменив настройки непосредственно в интерфейсе программы. Рассмотрим этот процесс по шагам:
Важный нюанс: эти настройки сохраняются в профиле пользователя для каждого конкретного типа документа. Если вы настроили печать для «Счета на оплату», это не означает, что она автоматически заработает для «УПД». Процедуру придется повторить для основных печатных форм.
Иногда пользователи сталкиваются с тем, что вторая страница печатается «вверх ногами» относительно первой. Это особенно актуально для широких отчетов в альбомной ориентации. Проанализируем, как с этим бороться.
В параметрах страницы 1С при альбомной ориентации попробуем установить значение Переворот вверх. Одновременно с этим в настройках самого принтера (через свойства драйвера в Windows) необходимо убедиться, что дуплекс настроен по короткому краю. Сочетание этих двух параметров обычно позволяет добиться корректного расположения текста на обеих сторонах листа.
В современных конфигурациях, таких как «Бухгалтерия предприятия 3.0» или «Управление торговлей 11», используется Библиотека стандартных подсистем (БСП). Она кэширует настройки печати в хранилище общих настроек. Если один раз произошел сбой, некорректный параметр может «приклеиться» к пользователю. Посмотрим, как это исправить административными методами:
Перейдем в раздел Администрирование — Настройки пользователей и прав. Найдем конкретного пользователя, выберем Настройки и на вкладке Прочие настройки найдем записи, связанные с печатью нужного документа. Удаление этих записей приведет к сбросу параметров страницы к заводским значениям, после чего их можно будет задать заново по инструкции из первого решения.
Если необходимо, чтобы двухсторонняя печать включалась автоматически для всех пользователей программно, следует внести изменения в модуль печати. Для объекта ТабличныйДокумент мы можем задать свойство ДвусторонняяПечать, используя системное перечисление ТипДвустороннейПечати.
Рассмотрим пример кода:
// В процедуре формирования печатной формы
ТабДокумент = Новый ТабличныйДокумент;
// ... заполнение документа данными ...
// Устанавливаем тип двухсторонней печати
// Варианты: ПереворотВлево, ПереворотВверх, Односторонняя, ИспользоватьНастройкиПринтера
ТабДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВлево;
ТабДокумент.Показать();
Разберем подробнее: использование ТипДвустороннейПечати.ИспользоватьНастройкиПринтера теоретически должно возвращать управление драйверу, но на практике в релизах платформы 8.3.24 и 8.3.25 это часто работает как «Односторонняя». Поэтому рекомендуется явно прописывать ПереворотВлево для документов, которые гарантированно должны быть напечатаны на двух сторонах — упростить управление выводом на печать помогут внешние печатные формы с настройкой параметров страницы.
Выясним причину, если вышеуказанные способы не помогают. Проблема может крыться в механизме проброса принтеров через RDP (Remote Desktop Protocol). При использовании технологии EasyPrint настройки DevMode часто передаются в урезанном виде, и 1С 8.3 не может корректно сообщить серверу печати о необходимости использования дуплекса.
Проанализируем ситуацию с драйверами (отдельного внимания заслуживают случаи, когда настраивается печать на мобильных принтерах по bluetooth и сети):
Таким образом, основное решение проблемы двухсторонней печати в 1С 8.3 заключается в переносе ответственности за эту функцию с драйвера Windows на саму платформу через меню Параметры страницы или программную установку свойств ТабличногоДокумента.