Почему в 1С 8.3 не работает двусторонняя печать и как настроить автоматический дуплекс?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

После перехода на платформу «1С:Предприятие 8.3» многие пользователи и системные администраторы сталкиваются с неприятной ситуацией: документы, которые раньше автоматически печатались с двух сторон листа, начинают выходить на отдельных страницах. При этом в других офисных программах двусторонняя печать продолжает работать штатно, а в свойствах самого принтера Windows дуплексный режим включен по умолчанию. Чтобы распечатать документ с двух сторон из 1С, приходится каждый раз вручную заходить в параметры страницы.

Разберем подробно, почему возникает такое поведение платформы, как устроена передача настроек печати в операционную систему и какие способы позволяют автоматизировать двустороннюю печать.

Причины сброса настроек дуплекса в платформе 1С 8.3

Выясним причину такого поведения. Начиная с версии 8.3, механизм взаимодействия платформы 1С с системной подсистемой печати Windows претерпел изменения:

  1. Переопределение параметров драйвера через структуру DEVMODE. При формировании табличного документа 1С инициализирует собственные параметры страницы и передает их в драйвер принтера напрямую. По умолчанию для нового табличного документа свойство двусторонней печати имеет значение «Не использовать» (односторонняя печать). В результате настройки из 1С принудительно перекрывают глобальные настройки драйвера принтера в Windows, даже если там жестко задан дуплекс.
  2. Раздельное хранение настроек. Настройка двусторонней печати должна быть явно указана в самой программе 1С: меню Файл — Параметры страницы — Двусторонняя печать. При этом на уровне драйвера принтера не должно быть конфликтующих принудительных переопределений.

Способ 1. Использование механизма сохранения настроек печати (ИмяПараметровПечати)

Проанализируем стандартный механизм платформы для запоминания настроек пользователя. Чтобы пользователю не приходилось при каждом открытии печатной формы заново выбирать двустороннюю печать, в конфигурации для табличного документа должно быть задано свойство ИмяПараметровПечати (или КлючПараметровПечати).

Если это свойство заполнено, платформа сохраняет пользовательские настройки страницы (включая ориентацию, поля и двустороннюю печать) в системном хранилище настроек. При последующем формировании этой же печатной формы сохраненные параметры восстанавливаются автоматически.

Разберем по шагам, как это работает в коде:


// Задаем уникальный ключ для сохранения настроек конкретной формы
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Накладная_Печать";

Если для печатной формы имя параметров печати уже задано, пользователю достаточно один раз открыть Файл — Параметры страницы, установить двустороннюю печать и нажать ОК. Настройки сохранятся в его профиле.

Способ 2. Программное управление двусторонней печатью в коде 1С

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

Посмотрим на пример установки дуплекса при формировании печатной формы:


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

// Либо с переворотом по короткому краю (для альбомной ориентации)
// ТабличныйДокумент.ДвусторонняяПечать = ТипДвустороннейПечати.ПереворотВверх;

Если требуется, чтобы документ подчинялся настройкам, заданным непосредственно в Windows-принтере, можно использовать значение ТипДвустороннейПечати.ИспользоватьНастройкиПринтера (доступно в зависимости от версии платформы).

Способ 3. Прямое управление печатью для принтеров Kyocera (язык PRESCRIBE)

Для сетевых принтеров и МФУ марки Kyocera существует аппаратный способ принудительного включения дуплекса. Устройства этого производителя поддерживают встроенный командный язык управления печатью PRESCRIBE.

Разберем, как применить этот способ:

  1. В настройках принтера в операционной системе устанавливаем язык эмуляции PCL 5e или KPDL.
  2. В макете печатной формы 1С в самом начале документа (например, в невидимой технической строке или шапке) добавляем текстовую команду управления.
  3. Для ячейки с командой вручную вводим название шрифта PRESCRIBE (если платформа выдаст предупреждение, что шрифт не найден в системе, подтверждаем выбор).

Текст управляющей последовательности для дуплекса с портретной ориентацией:

!R! SPO P; DUPX 1; EXIT;

Расшифровка команд языка:

  1. !R! — начало командной последовательности PRESCRIBE;
  2. PAGE; — перевод страницы (при необходимости);
  3. SPO P; — установка портретной ориентации (SPO L; — альбомная);
  4. DUPX 1; — включение двусторонней печати с переворотом по длинному краю (DUPX 0; — односторонняя, DUPX 2; — по короткому краю);
  5. RES; — сброс параметров к значениям по умолчанию после завершения задания;
  6. EXIT; — выход из режима обработки команд и возврат к печати документа.

Способ 4. Настройка драйверов и окружения Windows

Проанализируем системные факторы, влияющие на передачу команд дуплекса из 1С в принтер:

  1. Выбор правильного драйвера. Универсальные драйверы Kyocera KX Driver при вызове из 1С могут терять параметры разметки страниц. Рекомендуется использовать драйвер Kyocera Classic Universal Driver (PCL 5e / PCL 6) или драйвер эмуляции PostScript (KPDL). Также предпочтительнее использовать драйверы архитектуры Type 3 вместо Type 4 (KX v4).
  2. Отключение расширенных функций печати. В свойствах принтера Windows на вкладке «Дополнительно» снимите флажок «Включить дополнительные возможности печати» (Enable advanced printing features). Это отключит промежуточный EMF-спулинг и заставит драйвер корректно считывать параметры напрямую из потока данных 1С.
  3. Особенности работы в RDP и RemoteApp. При печати через механизм перенаправления Remote Desktop Easy Print флаги двусторонней печати часто сбрасываются. Решением является отключение политики Easy Print на сервере терминалов и установка идентичных нативных драйверов печати на сервере и на локальном компьютере.
  4. Очистка кэша пользователя. Если печатная форма ранее сохранила признак односторонней печати, изменения в конфигурации или драйвере могут не применяться из-за сохраненных пользовательских настроек. В этом случае поможет сброс настроек через Главное меню — Настройки — Сброс настроек или очистка пользовательского кэша 1С.
← На главную