Почему принтер этикеток Mercury mprint LP58 EVA не печатает текст после обновления 1С и как это исправить?

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

В процессе эксплуатации торгового оборудования совместно с программными продуктами 1С пользователи часто сталкиваются со сбоями после проведения очередных обновлений. Одной из наиболее распространенных и неприятных проблем является некорректная работа принтеров этикеток (в частности, популярной модели Mercury MPrint LP58 EVA), когда на печать выводится только графический штрихкод, а вся текстовая информация (наименование товара, цена, артикул, характеристики) бесследно исчезает. При попытках исправить ситуацию администраторы нередко сталкиваются с сопутствующими трудностями: принтер начинает бесконтрольно проматывать пустую ленту, а операционная система или платформа 1С наотрез отказываются устанавливать и принимать драйверы устройства.

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

Раздел 1. Выясняем причину исчезновения текста при печати штрихкода

Рассмотрим природу этого странного поведения системы, когда штрихкод печатается идеально, а текстовые поля остаются абсолютно чистыми. Эта проблема не связана с поломкой печатающей головки принтера или качеством термобумаги. Перед нами — известный баг технологической платформы 1С:Предприятие 8.3 (наиболее выраженно он проявлялся на релизах линеек 8.3.15, 8.3.16 и в некоторых ранних сборках 8.3.17).

Проанализируем ситуацию изнутри. Движок платформы 1С, отвечающий за рендеринг табличных документов, при определенных условиях некорректно обрабатывает ячейки, у которых заданы видимые границы (рамки, сетка). Если в шаблоне этикетки присутствуют ячейки с рамками, то при генерации печатной формы все текстовые объекты, расположенные ниже или внутри этих границ, просто исключаются из результирующего потока данных, отправляемого на печать. Штрихкод при этом выводится без проблем, так как он генерируется специальной внешней компонентой (например, 1C:Barcode Printing) в виде отдельного графического рисунка (объекта типа «Картинка») и выводится на печать по совершенно иным алгоритмам.

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

  1. Запустим программу 1С в режиме предприятия и перейдем в раздел администрирования или настроек торгового оборудования, где хранятся шаблоны этикеток и ценников (обычно это путь: Администрирование -> Печатные формы, отчеты и обработки -> Шаблоны этикеток, ценников и чеков ККМ).
  2. Откроем для редактирования проблемный шаблон этикетки.
  3. Выделим полностью всю область ячеек макета (для этого можно использовать комбинацию клавиш Ctrl + A непосредственно в поле редактора таблицы).
  4. Кликнем правой кнопкой мыши по выделенной области и выберем пункт Свойства.
  5. В открывшейся панели свойств найдем группу параметров, отвечающую за оформление границ ячеек. Нам необходимо полностью отключить любые рамки. Установим для параметра границ значение Нет границы или Без рамки.
  6. Дополнительно проверим, не задана ли в макете фиксированная область печати, которая может ограничивать вывод информации. Перейдем в главное меню 1С и выберем пункт Таблица -> Рабочая область -> Удалить область печати.
  7. Сохраним измененный шаблон и попробуем выполнить тестовую печать. Текст должен снова появиться на этикетке вместе со штрихкодом.

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

Раздел 2. Почему после исправления шаблона принтер начинает пропускать пустые этикетки?

Рассмотрим следующую проблему, которая закономерно возникает сразу после того, как мы убираем рамки и области печати из шаблона этикетки. Пользователи часто замечают, что принтер успешно распечатывает одну этикетку с текстом и штрихкодом, но следом за ней проматывает от 3 до 10 абсолютно пустых этикеток, прежде чем остановиться.

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

В итоге получается следующая картина: принтер этикеток Mercury LP58 EVA получает задание на печать огромного листа бумаги. Он честно пропечатывает первые несколько сантиметров, на которых уместился наш макет этикетки, а затем продолжает проматывать ленту вперед, пытаясь «допечатать» остаток огромного виртуального листа А4. Поскольку датчик зазора между этикетками не получает от драйвера четкой команды на остановку по высоте физического носителя, принтер просто выдает пустую ленту.

Разберем по шагам, как правильно настроить параметры страницы в операционной системе и в самой 1С, чтобы принтер печатал строго по одной этикетке:

  1. Откроем в Windows Панель управления, перейдем в раздел Просмотр устройств и принтеров.
  2. Найдем в списке наш принтер Mercury MPrint LP58, кликнем по нему правой кнопкой мыши и выберем пункт Настройка печати (а затем также проверим аналогичные параметры в Свойства принтера -> вкладка "Параметры устройства").
  3. Перейдем на вкладку Параметры страницы. Здесь нам необходимо создать новый шаблон размера этикетки, который в точности соответствует вашей физической ленте. Нажмем кнопку Новая... (или "Изменить").
  4. Зададим имя для нового формата (например, 58x30_1C).
  5. Укажем точные физические размеры этикетки в миллиметрах. Для стандартной ленты шириной 58 мм и высотой 30 мм укажем: Ширина — 58.0 мм, Высота — 30.0 мм. Обратите внимание, что зазор между этикетками (gap) также должен быть указан правильно — обычно он составляет 2.0 мм.
  6. Сохраним созданный размер и установим его по умолчанию в настройках принтера.
  7. Теперь вернемся в программу 1С. Откроем макет этикетки и вызовем диалоговое окно параметров страницы через меню Файл -> Параметры страницы....
  8. В поле выбора принтера укажем наш настроенный Mercury MPrint LP58. В поле выбора размера бумаги найдем только что созданный нами профиль 58x30_1C.
  9. Важнейший шаг: установим значения всех полей (Левое, Правое, Верхнее, Нижнее) равными 0. Если оставить поля по умолчанию (даже по 1-2 мм), это может приводить к смещению текста и повторному возникновению эффекта пустых листов.
  10. Сохраним настройки макета и выполним пробную печать.

Раздел 3. Физическая калибровка ленты на Mercury MPrint LP58 EVA

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

Выясним, как выполнить аппаратную калибровку принтера. Модель LP58 EVA поддерживает два основных способа калибровки датчика.

Способ 1. Ручная калибровка кнопкой FEED (без использования компьютера):

  1. Полностью выключим питание принтера с помощью тумблера, расположенного на задней или боковой панели устройства.
  2. Убедимся, что лента заправлена правильно, проходит ровно под направляющими и слегка выступает наружу из выходного паза.
  3. Нажмем и будем удерживать круглую кнопку прокрутки ленты FEED на передней панели принтера.
  4. Не отпуская кнопку FEED, включим питание принтера тумблером.
  5. Продолжаем удерживать кнопку FEED. Принтер должен начать издавать короткие звуковые сигналы (пищать). Как только начнется протяжка ленты, немедленно отпустим кнопку.
  6. Принтер прогонит несколько этикеток вперед-назад, анализируя плотность подложки и определяя точное расстояние зазора. После успешного завершения процесса лента остановится ровно на линии отрыва.

Способ 2. Калибровка с помощью диагностической утилиты Mertech:

  1. Скачаем с официального сайта производителя Mertech сервисную утилиту для настройки принтеров серии LP.
  2. Подключим принтер по интерфейсу USB и запустим утилиту.
  3. Выберем активный COM-порт или USB-порт подключения устройства и нажмем кнопку связи (Connect).
  4. В интерфейсе программы перейдем на вкладку калибровки датчиков (обычно называется Sensor Calibration или Calibrate).
  5. Запустим процесс калибровки датчика зазора (Gap Sensor). Принтер прокатает ленту и зафиксирует новые показатели чувствительности фотодатчика в своей энергонезависимой памяти.

Раздел 4. Решение проблемы «Данный драйвер не может быть установлен и использован»

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

Выясним основные технические причины этой ошибки и способы борьбы с ними:

  1. Конфликт разрядности (Bitness): Это наиболее частая причина сбоев после перехода на новые версии платформы 1С. Если ранее вы использовали 32-битную версию клиента 1С (x86), для которой были установлены соответствующие 32-битные внешние компоненты драйвера принтера, то после автоматического или ручного обновления на 64-битный клиент 1С (x64) старые компоненты работать перестанут. Платформа 1С x64 физически не способна загрузить 32-битные библиотеки (DLL).
    Решение: Нам необходимо зайти на сайт производителя оборудования и скачать версию драйвера/компоненты, которая явно поддерживает работу в 64-битных средах. Либо, если это возможно и оправданно, переустановить клиентское приложение 1С обратно на 32-битную версию.
  2. Блокировка цифровой подписи драйверов Windows: Драйверы для принтеров Mercury старых ревизий могут не иметь актуальной цифровой подписи, сертифицированной Microsoft. Современные версии операционных систем Windows 10 и Windows 11 по умолчанию блокируют установку таких драйверов в фоновом режиме, из-за чего 1С сообщает о невозможности их интеграции.
    Решение: Нам необходимо временно отключить обязательную проверку цифровой подписи драйверов в Windows через меню особых вариантов загрузки системы, после чего выполнить чистую установку драйвера принтера.
  3. Засорение кэша платформы 1С: При обновлении конфигурации или платформы файлы старых драйверов торгового оборудования могут остаться в локальном кэше пользователя на жестком диске. При попытке инициализации принтера 1С пытается обратиться к устаревшим или поврежденным файлам из кэша вместо загрузки новых компонентов.
    Решение: Рекомендуется полностью очистить кэш 1С. Для этого удалим базу из списка запуска, а затем добавим её заново. Также полезно вручную очистить содержимое папок %userprofile%\AppData\Local\1C\1Cv8 и %userprofile%\AppData\Roaming\1C\1Cv8. После очистки кэша заново зайдем в настройки подключаемого оборудования в 1С, удалим запись принтера этикеток и создадим ее заново, позволив системе загрузить чистую компоненту драйвера.

Применяя данные методы в комплексе, мы сможем полностью восстановить работоспособность принтера этикеток Mercury Mprint LP58 EVA в связке с 1С:Предприятие, вернув корректное отображение текстовой информации и избавившись от лишнего расхода кассовой ленты. При необходимости организации прямой печати через механизмы подключаемого оборудования подойдёт расширение для печати этикеток на термопринтеры через БПО.

← На главную