Бюджетные китайские принтеры этикеток, такие как Xprinter XP-360B и XP-365B, пользуются огромной популярностью в розничной торговле благодаря своей доступности и надежности. Однако при попытке подружить эти устройства с платформой 1С:Предприятие (например, в конфигурации 1С:Розница) пользователи и администраторы часто сталкиваются со следующими сложностями: принтер выдает пустые этикетки, программа «не видит» устройство после подключения онлайн-кассы или требует обязательной настройки через Библиотеку подключаемого оборудования (БПО). В этой статье мы подробно разберем все рабочие методы интеграции принтеров Xprinter с 1С и решим сопутствующие технические проблемы.
Большинство технических специалистов сходятся во мнении, что самый надежный способ работы с принтерами Xprinter в 1С — это их настройка в качестве обычного принтера в операционной системе Windows. Дело в том, что штатные механизмы БПО 1С требуют специализированных и часто платных драйверов, в то время как печать через стандартный спулер Windows работает стабильно и не зависит от обновлений конфигурации.
Проанализируем пошагово процесс установки и настройки оборудования:
USB001).При таком подходе вам не нужно регистрировать принтер в справочнике «Подключаемое оборудование» в самой 1С. Программа будет отправлять табличный документ на печать стандартными средствами Windows.
Выясним этот важный нюанс, который часто вызывает споры. Нет, делать принтер этикеток системным принтером по умолчанию не обязательно. Достаточно один раз открыть нужный макет этикетки в режиме «1С:Предприятие», зайти в «Параметры страницы», выбрать физический Xprinter из списка устройств, настроить поля и нажать кнопку «Печать». Платформа 1С кэширует настройки печати для каждого конкретного шаблона (макета) и пользователя. При последующих сессиях программа автоматически перенаправит задание печати именно на это устройство с сохраненными параметрами.
Иногда бизнес-процессы требуют, чтобы принтер определялся в 1С именно как специализированный «Принтер этикеток» в разделе подключаемого оборудования. Это нужно для использования прямой печати (без открытия диалогового окна Windows) или при работе в терминальном режиме. Для организации прямой отправки заданий на принтер в серверном контексте можно использовать компоненту для печати на сервере 1С.
Для реализации этого сценария мы можем прибегнуть к хитрости. Принтеры Xprinter поддерживают стандартный язык разметки этикеток TSPL (TSPL2). Это позволяет использовать альтернативные совместимые драйверы:
Это одна из самых частых проблем: принтер печатает одну этикетку, а затем проматывает несколько пустых листов (например, 3 пустых, одну заполненную). Разберем причины этой проблемы по шагам.
Причина 1: Несоответствие размеров макета и физической ленты.
Если макет этикетки в 1С по высоте хотя бы на 1 мм превышает размер, заданный в настройках драйвера принтера Windows, система воспримет это как необходимость переноса данных на следующую страницу. В результате принтер будет пытаться пропечатать «невидимые» остатки макета на последующих этикетках.
Решение: Тщательно проверьте размеры макета в 1С. Используйте предварительный просмотр. Если размер вашей этикетки 58х40 мм, то и в настройках Windows, и в параметрах страницы 1С должен быть строго выбран этот размер. Поля макета в 1С должны быть нулевыми.
Причина 2: Сбилась калибровка датчика зазора (аппаратный сбой).
Принтер определяет начало новой этикетки по зазору между наклейками с помощью оптического датчика. Если датчик сбился, устройство «теряет» границы.
Решение (аппаратная калибровка):
Причина 3: Устройство переключилось в режим печати чеков.
Модели серии XP-360B поддерживают два режима: печать непрерывной ленты (чеков) RECEIPT и печать этикеток с зазором LABEL. Если принтер находится в режиме чека, он полностью игнорирует зазоры.
Решение: Выключите принтер. Зажмите кнопку PAUSE и включите питание. После звукового сигнала отпустите кнопку. Принтер распечатает технический чек с текущими настройками. Если в строке режима указано RECEIPT, переключите его на LABEL. Для этого нажмите кнопку FEED один раз и перезапустите устройство.
Рассмотрим распространенную ситуацию: в кассовой зоне отлично работал принтер этикеток, но после установки и подключения фискального регистратора (ККТ Атол, Штрих-М и др.) 1С перестала видеть принтер этикеток, хотя в самой системе Windows он отображается в статусе «Готов».
Выясним причину этой проблемы. При подключении ККТ по интерфейсу USB операционная система эмулирует виртуальные COM-порты для связи с драйвером кассы и ОФД. В этот момент Windows может динамически перераспределить USB-адресацию (так называемые виртуальные USB-порты концентратора).
В результате принтер Xprinter, который ранее отправлял данные через порт USB001, физически смещается операционной системой на порт USB002 или USB003. При этом в настройках принтера в Windows по-прежнему остается закрепленным старый порт USB001, из-за чего задания на печать уходят «в никуда».
Пошаговый план решения проблемы:
USB001, USB002, USB003. Поочередно переставьте галочку на другой свободный USB-порт и нажимайте кнопку «Применить».Если вы разрабатываете собственную обработку печати или хотите жестко зафиксировать параметры страницы в программном коде, чтобы исключить человеческий фактор при настройке, используйте возможности объекта ТабличныйДокумент. Проанализируем пример кода на встроенном языке 1С:
// Создаем новый табличный документ для этикетки
ТабДок = Новый ТабличныйДокумент;
// Указываем точное системное имя принтера этикеток
ТабДок.ИмяПринтера = "Xprinter XP-360B";
// Устанавливаем нулевые поля для точного позиционирования макета
ТабДок.ПолеСверху = 0;
ТабДок.ПолеСнизу = 0;
ТабДок.ПолеСлева = 0;
ТабДок.ПолеСправа = 0;
// Включаем автоматическое масштабирование под ширину ленты
ТабДок.АвтоМасштаб = Истина;
// Выводим макет и отправляем его на печать без вывода диалогового окна
// Параметр "Истина" в методе Показать() или Напечатать() регулирует вывод окна настроек
ТабДок.Напечатать(РежимИспользованияПринтера.ИспользоватьНастройкиПринтера);
Использование этого кода гарантирует, что при нажатии кнопки печати пользователю не придется каждый раз настраивать параметры страницы вручную, а 1С сама принудительно обнулит поля и отправит документ на правильный принтер. В качестве готового решения для создания шаблонов и вывода штрихкодов можно использовать конфигурацию для печати этикеток и ценников.