При подключении чековых принтеров серии Mprint T58 (и их аналогов от Mercury) к программным продуктам 1С, в частности к конфигурации 1С:Розница 2.2, системные администраторы часто сталкиваются с проблемой некорректного отображения шрифтов. Вместо читаемого текста на чековой ленте появляются иероглифы или непонятные символы, хотя пробная страница из Windows может печататься корректно. Проанализируем причины этой ситуации и разберем пошагово методы ее решения.
Выясним первичную причину, которая часто скрыта в автоматических настройках драйвера. При установке принтера система Windows может присвоить ему имя, содержащее служебные символы. Разберем ситуацию: если в названии устройства присутствует амперсанд &, это может привести к сбою при формировании XML-пакета данных, который 1С передает драйверу печати. 1С обрабатывает печатные формы через механизмы, чувствительные к разметке, и наличие спецсимвола в строке подключения «ломает» структуру данных.
Решение:
Mprint_T58).Рассмотрим ситуацию, когда принтер физически переключен на неверную кодовую таблицу. Чековые принтеры работают по протоколу ESC/POS. Если внутренняя память принтера (NVRAM) настроена на греческую или китайскую таблицу, он будет игнорировать кириллические символы. Посмотрим на примеры команд, которые можно отправить на порт принтера через утилиты (например, Hercules):
Для принудительной установки кириллицы (Windows-1251) используется последовательность:
1B 74 11
Где 1B 74 — команда выбора таблицы символов, а 11 (в шестнадцатеричном формате) соответствует 17-й странице (WPC1251) для многих моделей Mprint. Если же требуется кодировка PC866 (DOS), используется код:
1B 74 07
Проанализируем, почему настройки могут «слетать». Если после каждой печати принтер возвращается к иероглифам, это означает, что драйвер 1С или обработка печати посылают команду инициализации 1B 40, которая сбрасывает настройки к заводским. В этом случае необходимо зафиксировать кодировку на уровне железа или в свойствах драйвера Windows.
Если штатный драйвер производителя продолжает работать некорректно, разберем альтернативный метод подключения через стандартные средства Windows. Проанализируем алгоритм действий:
1B 74 11. Теперь перед каждым чеком принтер будет получать команду на включение русского языка.Выясним, какие именно кодовые страницы поддерживает конкретный экземпляр прошивки. Для этого выполним Self-Test принтера:
Принтер распечатает отчет. Нам необходимо найти раздел Character Code Table. Там будет список номеров и соответствующих им страниц. Найдите номер для WPC1251 или Cyrillic. Именно этот номер нужно использовать в командах настройки. Если в списке нет кириллицы, принтер требует обновления прошивки или использования графического режима печати.
Проанализируем влияние системных настроек Windows 10 и 11 на печать в 1С. В современных версиях ОС появилась опция «Бета-версия: Использовать Unicode UTF-8 для поддержки языков во всем мире». Посмотрим, как это влияет на работу:
Если эта галочка установлена (Настройки -> Время и язык -> Регион -> Дополнительные параметры даты, времени и региона -> Региональные стандарты -> Дополнительно -> Изменить язык системы), то старые драйверы чековых принтеров, ожидающие однобайтовую кодировку (1251), начинают получать двухбайтовый UTF-8. Принтер не понимает эти коды и выдает иероглифы. Эту опцию следует отключить.
При печати из 1С через Windows-драйвер часто происходит автоматическая подмена шрифтов. Выясним, как это контролировать:
В свойствах принтера (Настройки устройства) найдите таблицу подстановки шрифтов (Font Substitution Table). Убедитесь, что шрифты, используемые в макете 1С (обычно Arial или Courier New), не заменяются на «внутренний шрифт принтера» (Internal Font). Внутренние шрифты часто не имеют кириллических символов. Рекомендуется установить значение «Download as Softfont» или перевести режим печати в графический (Print as Graphics), тогда драйвер будет передавать текст как картинку, что полностью исключает проблему кодировок, хотя и замедляет печать.
Рассмотрим вариант, когда настройки кодировки не сохраняются через графический интерфейс. Разберем путь в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\[Имя_Вашего_Принтера]\PrinterDriverData
Здесь могут находиться параметры CharSet или CodePage. Попробуем вручную установить значение 1251 (десятичное) или соответствующее шестнадцатеричное значение. Это принудительно заставит драйвер использовать кириллическую таблицу при каждом обращении к устройству из 1С.
Подводя итог, отметим: решение проблемы с иероглифами на Mprint T58 чаще всего кроется в корректном именовании устройства и правильной инициализации кодовой страницы в начале сеанса печати. Совместное использование этих методов гарантирует стабильную работу кассового узла.