При работе с типовыми конфигурациями 1С (например, «1С:Управление торговлей 11») пользователи часто сталкиваются с неполадками при смене оборудования: после подключения нового принтера этикеток документы продолжают отправляться на старый сетевой принтер, даже если он был удален из операционной системы Windows. Обычная очистка локального кэша 1С в папках AppData в таком случае не помогает.
Разберем подробно причинно-следственные связи этой проблемы и проанализируем последовательность шагов, необходимых для полной нормализации печати.
Рассмотрим, почему удаление устройства из системы и очистка временных файлов 1С не дают ожидаемого результата:
ХранилищеСистемныхНастроек индивидуально для каждого пользователя.УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер().ИмяПараметровПечати, настройки последней напечатанной этикетки будут перетирать конфигурацию предыдущей.Посмотрим, как удалить устаревшие параметры печати из базы данных без сброса основных настроек программы.
Для очистки сохранившихся параметров выполнения печати выполним следующие действия:
Программно сбросить настройки печати конкретной формы или очистить параметры можно также через работу с синтаксисом ХранилищеСистемныхНастроек.
Если очистка параметров внутри 1С не дала эффекта, а при вызове печати возникает ошибка отправки, проанализируем состояние подсистемы печати операционной системы.
C:\Windows\System32\spool\PRINTERS.printmanagement.msc) и удалите неиспользуемые драйверы старых лазерных и сетевых принтеров.Выясним, как предотвратить слет параметров страницы при печати различных типов этикеток.
Чтобы настройки этикеток разного формата не сбивали друг друга, при программном формировании печатных форм необходимо явно задавать уникальное значение для свойства ИмяПараметровПечати и, при необходимости, принудительно назначать имя целевого принтера.
Рассмотрим пример правильной настройки объекта ТабличныйДокумент перед отправкой на печать:
// Создаем объект табличного документа
ТабДок = Новый ТабличныйДокумент;
// Задаем уникальный ключ сохранения настроек для конкретного вида этикетки
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЭТИКЕТКИ_58х40";
// Указываем явное имя принтера в системе (если требуется зафиксировать устройство)
ТабДок.ИмяПринтера = "TSC TDP-225";
// Задаем параметры страницы
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
Использование уникального значения ИмяПараметровПечати гарантирует, что 1С сохранит конфигурацию страницы (размер бумаги, поля, ориентацию) отдельно для каждого типа этикетки и не будет сбрасывать их при переключении между номенклатурными позициями.