Почему принтер Mprint T58 печатает иероглифы вместо кириллицы в 1С и как это исправить?

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

При подключении чековых принтеров, таких как Mprint T58, к программным продуктам 1С (например, 1С:Розница), пользователи часто сталкиваются с неприятной ситуацией: тестовая печать из Windows или обычного текстового редактора проходит успешно, но при пробитии чека из 1С на ленте появляются непонятные символы, иероглифы или «кракозябры». В данной статье мы подробно разберем, почему это происходит, проанализируем механизмы печати и найдем несколько способов решения данной проблемы, включая тот, который помог автору темы.

Различие между графической и текстовой печатью

Для начала выясним причину, по которой «из Блокнота печатает нормально», а из 1С — нет. Проанализируем ситуацию: когда вы отправляете документ на печать из текстового редактора через стандартный драйвер Windows, система использует графический режим. Шрифты преобразуются в картинку (растр) на стороне компьютера, и принтеру передается готовое изображение. В этом случае принтеру все равно, какая кодировка в нем установлена — он просто воспроизводит точки.

При работе в 1С:Предприятие через специализированную обработку или драйвер «1С:Принтер чеков», данные часто передаются в текстовом режиме с использованием команд ESC/POS. 1С отправляет на порт принтера массив байтов. Принтер получает эти байты и сопоставляет их с символами в своей внутренней таблице (кодовой странице). Если внутренняя таблица принтера настроена на китайский язык или западноевропейскую кодировку (например, PC437), то вместо кириллических букв мы увидим иероглифы.

Шаг 1: Проверка аппаратных настроек принтера (Self-Test)

Прежде чем менять программные настройки, нам необходимо узнать текущее состояние оборудования. Рассмотрим, как запустить режим самотестирования принтера Mprint T58:

  1. Выключите питание принтера тумблером.
  2. Зажмите кнопку FEED (протяжка ленты) и, не отпуская её, включите принтер.
  3. Подождите 2–3 секунды и отпустите кнопку.

Принтер распечатает длинный чек с техническими характеристиками. Проанализируем содержимое чека. Нас интересуют разделы Character set и Code page. Если там указано «USA», «Greek» или «Page 7», значит, принтер аппаратно не готов к работе с русским языком в текстовом режиме.

Шаг 2: Влияние имени принтера в операционной системе

Одним из самых неочевидных решений, которое помогло пользователю в исходной теме, является корректировка имени принтера в Windows. Проблема заключалась в наличии спецсимвола амперсанд (&) в названии принтера в разделе «Устройства и принтеры».

Разберем, почему это критично. Драйвер 1С взаимодействует с системным диспетчером очереди печати (Spooler). При наличии спецсимволов в путях или именах устройств, передача управляющих последовательностей может искажаться. Рекомендуем переименовать принтер, используя только латинские буквы и цифры без пробелов, например: Mprint_T58 или просто T58. После переименования следует удалить старый экземпляр принтера из настроек 1С и добавить его заново с новым именем.

Шаг 3: Настройка кодовой страницы через утилиты

Если переименование не помогло, нужно принудительно сменить кодовую страницу принтера. Для устройств Mprint существует официальная утилита SelectCP, а также более универсальная MPrint Utility (Printer Tool). Рассмотрим процесс настройки:

  1. Подключите принтер к компьютеру через USB.
  2. Запустите утилиту и выберите тип подключения.
  3. Найдите вкладку Set Code Page или CharSet.
  4. Для корректной работы кириллицы необходимо выбрать PC866 (Cyrillic #2) или WPC1251.
  5. Нажмите кнопку отправки команды в принтер.

Важный нюанс: после записи настроек обязательно перезагрузите принтер физическим выключателем, чтобы изменения зафиксировались в энергонезависимой памяти (NVRAM). Проверьте результат повторным Self-Test.

Шаг 4: Использование HEX-команд для смены кодировки

Посмотрим на пример из обсуждения, где пользователь использовал терминал Hercules для отправки команд напрямую в порт принтера. Это «продвинутый» способ, если утилиты не справляются. Проанализируем команды:

Команда 1B 74 11 в формате HEX переключает принтер на 17-ю кодовую страницу (обычно это кириллица 866). В сообщении также упоминалась команда:

1b 74 49

Здесь 1b 74 — это команда выбора таблицы символов, а 49 (в десятичном виде 73) — номер таблицы. Для разных прошивок номера могут отличаться, но чаще всего для 1С требуются страницы 17 (CP866) или 50 (Windows-1251).

Шаг 5: Настройка драйвера в 1С:Розница

Теперь перейдем к настройке самой программы 1С. Рассмотрим шаги по настройке оборудования:

  1. Откройте раздел Администрирование — Подключаемое оборудование.
  2. Найдите ваш принтер чеков и откройте его настройки.
  3. Проверьте поле Кодовая таблица. В зависимости от используемого драйвера (например, от компании «1С» или «Атол»), там может стоять числовое значение.
  4. Если на шаге 3 вы установили в принтере страницу 866, то в 1С попробуйте выбрать таблицу 17. Если установили 1251 — выберите 50.

Проанализируем ситуацию, если принтер продолжает сбрасывать настройки. В некоторых драйверах есть поле Строка инициализации. Туда можно вписать HEX-коды, которые будут посылаться принтеру перед каждым чеком, принудительно устанавливая нужный язык. Это гарантирует, что даже после сбоя питания принтер напечатает текст верно.

Дополнительные рекомендации

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

  1. Зайдите в Панель управления — Устройства и принтеры.
  2. Нажмите правой кнопкой на принтер — Свойства принтера.
  3. Перейдите на вкладку Порты.
  4. Снимите галочку с пункта Разрешить двусторонний обмен данными.
  5. Нажмите Применить.

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

← На главную