Как изменить автоматический выбор принтера в 1С при выводе документов на печать?

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

Часто возникает ситуация, когда при формировании конкретной печатной формы (например, личной карточки сотрудника Т-2 в 1С:Зарплата и Управление Персоналом) документ автоматически отправляется совершенно не на тот принтер, который нужен пользователю. При этом в параметрах страницы может отображаться правильное устройство. Рассмотрим подробнее, почему так происходит, и разберем по шагам все доступные способы решения этой проблемы.

Почему 1С запоминает «неправильный» принтер?

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

  1. Индивидуальная память печатных форм. 1С сохраняет настройки оборудования не глобально для всей конфигурации, а для каждой конкретной формы отдельно. За это отвечают параметры КлючПараметровПечати или ИмяПараметровПечати. Если пользователь один раз ошибочно отправил документ не на то устройство, система зафиксирует этот выбор в своей базе настроек и будет использовать его по умолчанию для этой формы.
  2. Приоритет системных настроек Windows. Для платформы приоритетными часто являются настройки самой операционной системы. Какой аппарат назначен по умолчанию в Windows, туда и может уйти задание при обычном нажатии на кнопку печати.
  3. Особенности терминального доступа (RDP). Если работа ведется на удаленном сервере, проброшенные принтеры могут менять свои суффиксы при каждом новом подключении (например, добавляется приписка «перенаправлено 2»). Из-за изменения имени система не находит нужный аппарат и переключается на устройство по умолчанию.

Способ 1: Точечная очистка настроек пользователя в 1С

Полная очистка настроек пользователя — мера радикальная, так как она удаляет все привычные виды списков и ширину колонок. Разберем более деликатный метод — удаление только зависших параметров печати.

  1. Перейдем в раздел Администрирование.
  2. Откроем пункт Настройки пользователей и прав и перейдем в справочник Пользователи.
  3. Откроем карточку сотрудника, у которого наблюдается проблема, и нажмем на ссылку Настройки в верхней панели навигации.
  4. Перейдем на вкладку Прочие настройки.
  5. Найдем строку Настройки печати табличных документов. Здесь необходимо нажать кнопку Очистить (либо найти в списке конкретную форму, например карточку Т-2, и удалить только ее).

Способ 2: Лайфхак для принудительной перезаписи кэша печати

Посмотрим на простой пример, как заставить 1С «забыть» старое устройство без привлечения системного администратора. Выясним последовательность действий:

  1. Сформируем проблемную печатную форму (карточку Т-2) и выведем ее на экран в режиме предварительного просмотра.
  2. Перейдем в главное меню программы: Файл — Параметры страницы.
  3. В открывшемся окне выберем правильный принтер.
  4. Обязательно изменим любой мелкий визуальный параметр. Например, увеличим или уменьшим отступ левого поля ровно на 1 миллиметр.
  5. Сразу после этого отправим документ на печать.

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

Способ 3: Очистка системного кэша и переустановка драйверов

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

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

Способ 4: Программное назначение принтера

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

Для программного управления выводом используется свойство ИмяПринтера объекта ТабличныйДокумент:


Процедура ПечатьДокумента()
    ТабличныйДок = Новый ТабличныйДокумент;
    // ... логика заполнения макета ...
    
    // Принудительно указываем имя принтера в системе
    ТабличныйДок.ИмяПринтера = "HP LaserJet M402"; 
    
    // Выводим на печать без дополнительных диалогов
    ТабличныйДок.Напечатать();
КонецПроцедуры

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

← На главную