Почему в 1С:Управление торговлей 10.3 печать этикеток уходит на обычный принтер и как это исправить?

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

При работе в конфигурации «1С:Управление торговлей 10.3» администраторы и пользователи часто сталкиваются с ситуацией: у опытных сотрудников печать этикеток настроена идеально и уходит на специализированный принтер (например, Zebra или Godex), а у нового пользователя те же самые этикетки упорно выводятся на офисный принтер формата А4. При этом все настройки в интерфейсе, включая флаг «Использовать специализированный принтер этикеток», кажутся идентичными. Разберем детально, как устроена логика печати в «обычном приложении» и как принудительно «обучить» систему правильно выбирать устройство.

Механизм хранения настроек печати в обычных формах

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

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

Важно понимать, что флаг «Спецпринтер» в настройках пользователя УТ 10.3 не содержит в себе путь к конкретному драйверу. Рассмотрим подробнее: этот флаг лишь дает команду программному коду установить формат страницы, подходящий для этикеток (например, 58х40 мм), но выбор самого физического устройства все равно ложится на стандартные механизмы платформы.

Проблема автоматической печати («Печать без просмотра»)

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

Пошаговая инструкция по исправлению настроек

Рассмотрим алгоритм действий, который поможет закрепить нужный принтер за конкретным пользователем без изменения программного кода. Выполним следующие шаги:

  1. Зайдем в систему под тем пользователем, у которого возникла проблема.
  2. Откроем обработку «Печать этикеток» (обычно находится в меню «Сервис» или в справочнике «Номенклатура»).
  3. Найдем на форме флаг «Печать без просмотра» (или аналогичный по смыслу, например, «Сразу на печать») и обязательно снимем его.
  4. Заполним список товаров и нажмем кнопку «Печать». Теперь система должна не отправить задание на принтер, а открыть окно предварительного просмотра табличного документа.
  5. В открывшемся окне просмотра перейдем в меню «Файл» -> «Печать...».
  6. В появившемся системном диалоге Windows выберем из списка именно тот принтер этикеток, который нам нужен. Настроим, если необходимо, свойства самого драйвера (тип ленты, интенсивность).
  7. Нажмем кнопку «Печать». После того как первая этикетка выйдет из принтера, 1С запомнит этот выбор.
  8. Теперь можно снова установить флаг «Печать без просмотра». Теперь система будет обращаться к уже записанному в профиле принтеру.

Технические нюансы для администраторов и программистов

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


// Пример того, как программно может задаваться принтер
ТабДок = Новый ТабличныйДокумент;
ТабДок.ИмяПринтера = "Zebra_2824"; // Если это имя прописано жестко, настройки пользователя игнорируются
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЭТИКЕТОК"; // Ключ, по которому ищутся настройки
ТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);

Если в вашей конфигурации ИмяПринтера не заполнено (что стандартно для типовой УТ 10.3), то критически важным становится свойство ИмяПараметровПечати. Именно по этому строковому ключу платформа ищет настройки в файлах пользователя. Если у разных пользователей разные права доступа к папке %AppData%\1C\1Cv8\, 1С может просто не иметь возможности сохранить выбранный принтер в профиль.

Особенности работы в терминальном режиме (RDP)

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

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

Резюме

Подведем итоги нашего анализа. Если у нового пользователя в УТ 10.3 не работает печать на спецпринтер, первым делом проверьте ручной выбор устройства через отключение режима прямой печати. В 90% случаев это решает проблему, так как позволяет платформе создать запись в кэше настроек. В остальных 10% случаев стоит обратить внимание на права доступа к реестру и профилю пользователя, а также на специфику именования принтеров в терминальных сессиях.

← На главную