Как настроить печать на всю ширину ленты 80 мм для китайского чекового принтера в 1С?

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

Часто при подключении недорогих китайских чековых принтеров (таких как Xprinter, Rongta, Goin и др.) к системе 1С:Предприятие возникает типичная проблема: несмотря на использование широкой ленты (80 мм), принтер упрямо печатает узкий текст, как будто установлена лента 58 мм. При этом тестовая печать из Windows или специализированных утилит может проходить корректно на всю ширину. Рассмотрим подробнее, почему так происходит и как заставить оборудование работать правильно.

Разберем причину проблемы: ESC/POS против графической печати

Для начала проанализируем ситуацию с технической стороны. Существует два принципиально разных способа взаимодействия 1С с чековыми принтерами. Первый — это печать через Windows-драйвер, когда 1С отправляет на печать графический образ (табличный документ). Второй — использование протокола ESC/POS, когда принтеру передаются текстовые команды.

Если принтер подключен через «Подключаемое оборудование» с использованием драйвера «1С:Принтер чеков», то печать чаще всего идет текстовыми командами. В этом режиме принтер «не знает», сколько миллиметров составляет ширина его ленты. Для него ширина определяется параметром Символов в строке. Если в настройках 1С указано 32 символа (стандарт для 58 мм), то даже на широкой ленте текст будет занимать лишь левую часть документа.

Способ 1: Настройка драйвера в интерфейсе 1С

Выясним, где именно в 1С задаются параметры ширины. Это важно, если вы используете несколько касс ККМ в РМК. В большинстве современных конфигураций (Розница, УНФ, УТ 11) путь к настройкам выглядит следующим образом:

  1. Перейдем в раздел НСИ и администрирование, выберем пункт РМК и оборудование и далее — Подключаемое оборудование (что критично при настройке нескольких касс и терминалов в УНФ).
  2. Найдем в списке наш принтер чеков и откроем его карточку.
  3. Нажмем кнопку Настроить.
  4. В открывшемся окне настроек драйвера найдем поле, которое может называться Количество символов в строке, Ширина строки или Characters per line.

Для ленты 80 мм необходимо экспериментально подобрать значение. Обычно используются следующие стандарты:

Попробуем установить значение 48 и выполнить тест. Если текст все еще кажется узким, увеличим значение до 56. Помним, что если указать слишком большое число, текст может начать «заворачиваться» на следующую строку. Для проверки корректности настроек можно использовать обработку для тестирования принтера чеков через различные версии БПО.

Способ 2: Корректировка шаблона чека ККМ

Проанализируем ситуацию, когда настройка драйвера не помогает. В современных версиях 1С печать чеков часто опирается на Шаблоны чеков ККМ. Это специальные XML-описания структуры чека. Рассмотрим, как их проверить:

  1. Зайдем в справочник Шаблоны чеков ККМ (обычно находится в разделе «Продажи» или «Администрирование»).
  2. Найдем шаблон, который назначен для вашего склада или кассы.
  3. В редакторе шаблона обратим внимание на поле Ширина ленты. Если там выбрано значение «58 мм (32 символа)», 1С будет принудительно обрезать строки перед отправкой в драйвер.
  4. Выберем вариант 80 мм.

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

Способ 3: Аппаратная настройка принтера (Hardware Utility)

Иногда проблема кроется в «мозгах» самого принтера. Китайские устройства часто имеют внутреннюю настройку эмуляции. Проверим это с помощью фирменной утилиты (например, Xprinter Setting Tool):

  1. Подключим принтер к компьютеру и запустим утилиту.
  2. Найдем параметр Print width или Column mode.
  3. Убедимся, что принтер не переведен в режим 384 dots (58mm). Для ленты 80 мм должно быть установлено 576 dots.
  4. Также проверим DIP-переключатели на нижней панели принтера (если они есть). У некоторых моделей один из рычажков физически переключает режим ширины ленты.

Способ 4: Программное решение через отладчик

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


// Пример формирования текста нефискального чека
ТекстЧека = ОборудованиеЧекопечатающиеУстройстваКлиентСервер.СформироватьТекстНефискальногоДокумента(
    ПараметрыОперации, 
    ПараметрыПодключения.ШиринаСтроки
);

В данном случае критически важно проверить, какое значение передается в параметр ПараметрыПодключения.ШиринаСтроки. Если в коде это значение жестко задано (hardcoded), то никакие настройки в интерфейсе 1С не помогут. Рекомендуется установить точку останова в месте вызова метода НапечататьНефискальныйДокумент и убедиться, что ширина соответствует ожидаемым 48–56 символам.

Способ 5: Альтернативный метод через Windows-принтер

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

  1. Установим принтер в Windows как обычный принтер (через штатный драйвер производителя).
  2. В 1С в справочнике «Подключаемое оборудование» выберем тип Принтер чеков, но в качестве драйвера используем 1С:Принтер чеков (Windows) или просто печатаем на него как на обычный офисный принтер.
  3. В этом случае 1С будет использовать обычный макет табличного документа (MXL).
  4. Зайдем в макет чека, выберем Файл — Параметры страницы и установим размер бумаги 80mm x Receipt или создадим пользовательский размер. Обязательно установим все поля (левое, правое, верхнее, нижнее) в 0.

Этот способ позволяет добиться идеального визуального соответствия чека вашим ожиданиям, так как печать идет в графическом режиме, однако она может быть чуть медленнее, чем прямая отправка ESC/POS команд. Для реализации такого подхода подойдет эмулятор ККМ с возможностью вывода чеков на обычный принтер.

Резюме: В большинстве случаев для исправления «узкой» печати достаточно изменить параметр Количество символов в строке в настройках подключаемого оборудования 1С или сменить тип шаблона в справочнике шаблонов чеков. Если это не помогает — проверяем аппаратные настройки принтера через заводскую утилиту.

← На главную