В процессе эксплуатации торгового оборудования совместно с программными продуктами 1С пользователи часто сталкиваются со сбоями после проведения очередных обновлений. Одной из наиболее распространенных и неприятных проблем является некорректная работа принтеров этикеток (в частности, популярной модели Mercury MPrint LP58 EVA), когда на печать выводится только графический штрихкод, а вся текстовая информация (наименование товара, цена, артикул, характеристики) бесследно исчезает. При попытках исправить ситуацию администраторы нередко сталкиваются с сопутствующими трудностями: принтер начинает бесконтрольно проматывать пустую ленту, а операционная система или платформа 1С наотрез отказываются устанавливать и принимать драйверы устройства.
В данной статье мы подробно разберем причины возникновения этой цепочки сбоев и пошагово рассмотрим методы их полного устранения, начиная от корректировки макетов в 1С и заканчивая тонкой настройкой параметров печати в Windows и физической калибровкой самого оборудования.
Рассмотрим природу этого странного поведения системы, когда штрихкод печатается идеально, а текстовые поля остаются абсолютно чистыми. Эта проблема не связана с поломкой печатающей головки принтера или качеством термобумаги. Перед нами — известный баг технологической платформы 1С:Предприятие 8.3 (наиболее выраженно он проявлялся на релизах линеек 8.3.15, 8.3.16 и в некоторых ранних сборках 8.3.17).
Проанализируем ситуацию изнутри. Движок платформы 1С, отвечающий за рендеринг табличных документов, при определенных условиях некорректно обрабатывает ячейки, у которых заданы видимые границы (рамки, сетка). Если в шаблоне этикетки присутствуют ячейки с рамками, то при генерации печатной формы все текстовые объекты, расположенные ниже или внутри этих границ, просто исключаются из результирующего потока данных, отправляемого на печать. Штрихкод при этом выводится без проблем, так как он генерируется специальной внешней компонентой (например, 1C:Barcode Printing) в виде отдельного графического рисунка (объекта типа «Картинка») и выводится на печать по совершенно иным алгоритмам.
Выяснив причину, разберем по шагам временное решение, которое позволит вернуть текст на этикетки без немедленного обновления всей платформы 1С:
Ctrl + A непосредственно в поле редактора таблицы).Для кардинального решения этой проблемы настоятельно рекомендуется обновить платформу 1С:Предприятие до актуального стабильного релиза, в котором разработчики исправили данную ошибку рендеринга табличных документов. При наличии нескольких баз автоматическое обновление и архивирование 1С выполняется по расписанию в фоновом режиме.
Рассмотрим следующую проблему, которая закономерно возникает сразу после того, как мы убираем рамки и области печати из шаблона этикетки. Пользователи часто замечают, что принтер успешно распечатывает одну этикетку с текстом и штрихкодом, но следом за ней проматывает от 3 до 10 абсолютно пустых этикеток, прежде чем остановиться.
Давайте проанализируем, почему так происходит. Когда мы удалили рамки и жесткие границы области печати из макета, виртуальный принтер 1С потерял жесткую привязку к физическим габаритам этикетки. По умолчанию 1С начинает отправлять документ на печать, ориентируясь на стандартные настройки принтера в операционной системе Windows, где очень часто по умолчанию задан формат страницы А4 или иные крупные размеры.
В итоге получается следующая картина: принтер этикеток Mercury LP58 EVA получает задание на печать огромного листа бумаги. Он честно пропечатывает первые несколько сантиметров, на которых уместился наш макет этикетки, а затем продолжает проматывать ленту вперед, пытаясь «допечатать» остаток огромного виртуального листа А4. Поскольку датчик зазора между этикетками не получает от драйвера четкой команды на остановку по высоте физического носителя, принтер просто выдает пустую ленту.
Разберем по шагам, как правильно настроить параметры страницы в операционной системе и в самой 1С, чтобы принтер печатал строго по одной этикетке:
58x30_1C).58x30_1C.Иногда даже после идеальной настройки параметров страницы в Windows и 1С принтер продолжает путать границы и пропускать пустые этикетки. Это происходит из-за того, что сбились аппаратные настройки датчика зазора (пропуска) самого принтера. Особенно часто это случается при замене рулона бумаги на рулон другого производителя или при переходе на другой размер этикеток.
Выясним, как выполнить аппаратную калибровку принтера. Модель LP58 EVA поддерживает два основных способа калибровки датчика.
Способ 1. Ручная калибровка кнопкой FEED (без использования компьютера):
FEED. Принтер должен начать издавать короткие звуковые сигналы (пищать). Как только начнется протяжка ленты, немедленно отпустим кнопку.Способ 2. Калибровка с помощью диагностической утилиты Mertech:
Проанализируем еще одну серьезную проблему, описанную пользователями: невозможность переустановки или обновления драйверов торгового оборудования в среде 1С после обновления конфигурации или платформы. Программа выдает критическую ошибку: «Данный драйвер не может быть установлен и использован».
Выясним основные технические причины этой ошибки и способы борьбы с ними:
%userprofile%\AppData\Local\1C\1Cv8 и %userprofile%\AppData\Roaming\1C\1Cv8. После очистки кэша заново зайдем в настройки подключаемого оборудования в 1С, удалим запись принтера этикеток и создадим ее заново, позволив системе загрузить чистую компоненту драйвера.Применяя данные методы в комплексе, мы сможем полностью восстановить работоспособность принтера этикеток Mercury Mprint LP58 EVA в связке с 1С:Предприятие, вернув корректное отображение текстовой информации и избавившись от лишнего расхода кассовой ленты. При необходимости организации прямой печати через механизмы подключаемого оборудования подойдёт расширение для печати этикеток на термопринтеры через БПО.