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

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

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

Разберем подробно причинно-следственные связи этой проблемы и проанализируем последовательность шагов, необходимых для полной нормализации печати.

Причины неполадки и особенности хранения настроек печати в 1С

Рассмотрим, почему удаление устройства из системы и очистка временных файлов 1С не дают ожидаемого результата:

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

Шаг 1. Очистка настроек печати пользователя в 1С

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

Для очистки сохранившихся параметров выполнения печати выполним следующие действия:

  1. Перейдем в раздел Администрирование –> Настройки пользователей и прав –> Пользователи.
  2. Выберите учетную запись пользователя, у которого воспроизводится проблема.
  3. Нажмите кнопку Настройки и перейдите на вкладку Прочие настройки.
  4. Найдите пункт Настройки печати табличных документов и выполните их очистку.

Программно сбросить настройки печати конкретной формы или очистить параметры можно также через работу с синтаксисом ХранилищеСистемныхНастроек.

Шаг 2. Полная очистка драйверов и спулера печати Windows

Если очистка параметров внутри 1С не дала эффекта, а при вызове печати возникает ошибка отправки, проанализируем состояние подсистемы печати операционной системы.

  1. Остановите службу «Диспетчер печати» (Spooler).
  2. Очистите содержимое системной папки C:\Windows\System32\spool\PRINTERS.
  3. Перейдите в Управление печатью (команда printmanagement.msc) и удалите неиспользуемые драйверы старых лазерных и сетевых принтеров.
  4. Переустановите драйвер принтера этикеток. В свойствах установленного устройства перейдите на вкладку Дополнительно –> Настройки по умолчанию (Printing Defaults) и укажите корректные размеры этикетки, тип материала и ориентацию.

Шаг 3. Фиксация настроек печати в коде и макетах 1С

Выясним, как предотвратить слет параметров страницы при печати различных типов этикеток.

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

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


// Создаем объект табличного документа
ТабДок = Новый ТабличныйДокумент;

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

// Указываем явное имя принтера в системе (если требуется зафиксировать устройство)
ТабДок.ИмяПринтера = "TSC TDP-225";

// Задаем параметры страницы
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;

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

← На главную