Почему принтер печатает на двух сторонах вверх ногами из 1С и как это исправить?

Программист 1С v8.3 (Обычные формы) Промышленность, строительство и АПК
← На главную

При печати двухсторонних печатных форм (особенно альбомной ориентации, таких как ТОРГ-12 или Акт об оказании услуг) из конфигураций на платформе 1С:Предприятие 8.2 или 1С:Предприятие 8.3 в режиме совместимости пользователи часто сталкиваются со сбоем: обратная сторона листа печатается вверх ногами. При этом из сторонних программ (например, Microsoft Excel) или из более новых конфигураций (1С:Бухгалтерия 3.0 на 8.3) двусторонняя печать работает корректно.

Проанализируем причины возникновения этой проблемы и разберем по шагам проверенные способы ее решения.

Выясним причину сбоя дуплексной печати

Рассмотрим, почему происходит сброс ориентации переплета именно при вызове диалога печати из 1С:

  1. Ограничения платформы 1С 8.2: В объекте ТабличныйДокумент платформы 8.2 отсутствует прямое программное управление осью переворота листа. Платформа формирует структуру DEVMODE для драйвера печати таким образом, что для альбомных документов («Ландшафт») способ двусторонней печати принудительно сбрасывается на переворот по короткой стороне («Переплет сверху»).
  2. Специфика драйверов сетевых принтеров: Драйверы HP PCL 6 и Universal Print Driver (UPD) чувствительны к вызовам настроек страницы из 32-битных приложений 1С. При повторном открытии диалога печати драйвер сбрасывает выбор пользователя обратно на значение по умолчанию.
  3. Кэширование настроек печатной формы: Платформа 1С сохраняет параметры страницы печатного документа в пользовательский кэш по значению свойства КлючПараметровПечати. Если однажды сохранилась некорректная конфигурация дуплекса, 1С будет подгружать её при каждом формировании документа, игнорируя системные настройки Windows.

Способ 1. Обновление платформы 1С до версии 8.3 (от 8.3.10 и выше)

Разберем наиболее эффективное решение со стороны платформы. Начиная с версии 8.3.3 в объект ТабличныйДокумент было добавлено программное управление типом двусторонней печати через свойство ТипДвустороннейПечати и системное перечисление ТипДвустороннейПечати.

Если конфигурация (например, 1С:Управление производственным предприятием 1.3) запущена в режиме совместимости с версией 8.2, этот механизм не работает на полную мощность. Для устранения ошибки выполним следующие шаги:

  1. Обновим технологическую платформу 1С:Предприятие до актуального релиза (не ниже 8.3.10).
  2. В режиме 1С:Предприятие в свойствах печатной формы или в коде формирования табличного документа зададим явный способ переворота страниц:

ТабличныйДокумент.ТипДвустороннейПечати = ТипДвустороннейПечати.ПереворотВлево;

Значение ПереворотВлево соответствует переворот страницы по длинному краю, что исключает переворачивание обратной стороны листа вверх ногами.

Способ 2. Создание дублирующего (логического) принтера в Windows

Если оперативно обновить платформу или отключить режим совместимости невозможно из-за доработок конфигурации, применим обходное решение на уровне операционной системы.

  1. Перейдем в Панель управления > Устройства и принтеры.
  2. Добавим новый принтер, выбрав тот же локальный или сетевой порт (IP-адрес), что и у существующего принтера.
  3. Переименуем новый принтер, например: HP_LJ400_Duplex_LongEdge.
  4. Откроем свойства созданного принтера и во вкладке Настройка печати жестко зададим двустороннюю печать с переворотом по длинному краю («Переворот влево»).
  5. В 1С при отправке документа на печать выберем этот созданный принтер. Поскольку настройки уже заданы в самой ОС, 1С не будет переопределять тип переплета.

Способ 3. Замена драйвера принтера на PostScript (PS) или PCL 5

Проанализируем работу драйверов печати HP. Драйверы формата **PCL 6** часто некорректно обрабатывают байтовую структуру настроек `DEVMODE`, передаваемую из 32-разрядных клиентов 1С 8.2.

  1. Скачаем с официального сайта производителя драйвер **HP Universal Print Driver PostScript (PS)** или **HP PCL 5**.
  2. Установим данный драйвер для физического принтера взамен PCL 6.
  3. Драйверы PostScript корректно воспринимают параметры ориентации листов и удерживают настройки переворота при печати из табличных документов 1С.

Способ 4. Сброс кэша параметров печати в 1С

Посмотрим, как очистить сохраненные пользовательские настройки, из-за которых 1С подтягивает старые параметры страницы.

Если настройки печатной формы зависли в пользовательском кэше, сбросим их программно в коде вызова печатной формы, изменив КлючПараметровПечати:


// Принудительно меняем ключ, чтобы 1С не читала старые настройки страницы
ТабличныйДокумент.КлючПараметровПечати = "УникальныйКлючПечати_ТОРГ12_" + Строка(Новый УникальныйИдентификатор);

Также пользователь может очистить сохраненные настройки печатных форм через меню Главное меню > Все функции > Стандартные > Хранилище настроек пользователей (или через интерфейс сброса пользовательских настроек печати).

Способ 5. Отключение диспетчера очереди печати (Spooler)

В некоторых случаях сброс параметров дуплекса происходит в момент передачи документа в службу спулинга Windows. Чтобы предотвратить сбой:

  1. Откроем **Свойства принтера** в Windows.
  2. Перейдем на вкладку **Дополнительно**.
  3. Переключим радиокнопку в режим «Печатать прямо на принтер» (отключив подсистему очереди печати).
  4. Сохраним изменения по кнопке Применить.

Применение одного из описанных способов (или их комбинации) позволяет полностью устранить проблему перевернутой двусторонней печати альбомных документов из 1С.

← На главную