Как исправить отправку всех печатных форм на специальный принтер после программной печати в 1С 8.3?

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

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

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

Выясним причину проблемы

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

  1. Запоминание принтера в сеансе 1С: Если у объекта ТабличныйДокумент программно заполнено свойство ИмяПринтера, платформа 1С 8.3 запоминает его как текущий принтер сеанса. Если для последующих табличных документов свойство ИмяПринтера явно не задано, система подставляет последний использованный принтер текущего сеанса, вместо того чтобы запрашивать данные у операционной системы.
  2. Использование единых параметров печати: Если у разных печатных форм не заданы индивидуальные ключи сохранения параметров, платформа использует общие настройки печати, в результате чего заданный принтер переопределяет стандартный выбор для всех форм.
  3. Автоматическое управление принтерами в Windows: В современных операционных системах по умолчанию может быть включена опция «Разрешить Windows управлять принтером по умолчанию». При отправке задания на любой принтер ОС может автоматически назначить его системным принтером по умолчанию.

Способ 1. Использование индивидуальных параметров и ключей печати

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

Рассмотрим пример кода при формировании специальной печатной формы:


ТабДок = Новый ТабличныйДокумент;
// Указываем уникальное имя параметров печати для специальной формы
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СпецФорма_Этикетка";
ТабДок.ИмяПринтера = "Zebra_Printer";
ТабДок.Напечатать();

Для всех остальных стандартных печатных форм в вашей конфигурации также должно быть заполнено свойство ИмяПараметровПечати со своим уникальным идентификатором:


ТабДокСтандартный = Новый ТабличныйДокумент;
ТабДокСтандартный.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Накладная_ТОРГ12";
// ИмяПринтера НЕ заполняем — платформа будет использовать принтер по умолчанию для этой формы

Благодаря этому платформа 1С будет хранить настройки печати изолированно для каждого типа документа и не станет применять принтер спецформы к обычным накладным или отчетам.

Способ 2. Явный сброс свойства ИмяПринтера перед печатью

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


// Перед отправкой обычного документа на печать:
ТабДокумент.ИмяПринтера = "";

Это сбрасывает привязку к принтеру сеанса, зафиксированному предыдущим вызовом спецформы.

Способ 3. Отключение автоматического управления принтерами в Windows

Если проблема вызвана поведением операционной системы на рабочих местах пользователей, выполните следующие шаги:

  1. Откройте параметры Windows (сочетание клавиш Win + I).
  2. Перейдите в раздел Устройства — Принтеры и сканеры.
  3. Снимите флаг «Разрешить Windows управлять принтером по умолчанию».
  4. Явно выберите нужный основной принтер и нажмите кнопку «Использовать по умолчанию».

Способ 4. Очистка сохраненных настроек печати пользователя

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

  1. Перейдите в раздел Администрирование — Настройки пользователей и прав.
  2. Выберите Персональные настройки пользователей (или настройки конкретного пользователя).
  3. Выполните команду Очистить настройки печати табличных документов.

Применяя указанные методы — разделение параметров печати через ИмяПараметровПечати и своевременную очистку свойства ИмяПринтера — вы обеспечите стабильную и корректную печать документов на нужные устройства без сбоев в работе пользователей.

← На главную