Подключение бюджетных китайских принтеров чеков, таких как XPrinter XP-58IIIA, к системе 1С часто вызывает трудности у технических специалистов. Основная проблема заключается в том, что 1С исторически ориентирована на работу с фискальными регистраторами через последовательный COM-порт (RS-232), в то время как современные недорогие принтеры оснащены только интерфейсом USB. В данной статье мы подробно разберем, как «подружить» эти устройства, настроить корректную печать кириллицы и обеспечить автоматическое открытие денежного ящика.
Рассмотрим стандартную ситуацию: в наличии имеется принтер XPrinter XP-58, который успешно установлен в операционной системе Windows как обычный принтер. Однако при попытке добавить его в 1С через раздел Подключение и настройка оборудования пользователь видит только список фискальных регистраторов и ККТ с передачей данных, требующих COM-соединения. Наша задача — настроить систему так, чтобы 1С воспринимала это устройство как «Принтер чеков» и отправляла на него данные без использования дорогостоящих драйверов.
В современных конфигурациях (например, 1С:Розница 2.2 и выше, УТ 11, ERP 2.4) разработчики 1С добавили встроенный механизм для работы с нефискальными принтерами. Проанализируем шаги по его настройке:
НСИ и администрирование — РМК и оборудование — Подключаемое оборудование.Создать.Драйвер оборудования выберем стандартный вариант от 1С: «1С:Принтер чеков (Windows)».Настроить.32 или 36 символов.Этот метод является наиболее предпочтительным, так как он не требует эмуляции COM-портов и работает через стандартную службу печати Windows (Print Spooler).
Если при печати через стандартный драйвер производителя возникают задержки, странные отступы или иероглифы, мы рекомендуем использовать «чистый» текстовый протокол. Разберем, как это реализовать:
Во-первых, переустановим принтер в Windows. Вместо родного диска с драйверами выберем ручную установку и укажите производителя Generic, модель Generic / Text Only. Этот драйвер передает на принтер голые ASCII-коды без графической обработки.
Во-вторых, в настройках 1С (при использовании того же драйвера «1С:Принтер чеков») укажем кодировку IBM866 (она же PC866). Рассмотрим пример кода, который 1С отправляет на принтер в текстовом режиме:
// Пример формирования простой текстовой строки для чека
ТекстДляПечати = "ЧЕК №0001" + Символы.ПС;
ТекстДляПечати = ТекстДляПечати + "Товар: Сахар 1кг" + Символы.ПС;
ТекстДляПечати = ТекстДляПечати + "ИТОГО: 100.00 руб." + Символы.ПС;
// Отправка на принтер через объект драйвера
Результат = ОбъектДрайвера.ПечататьТекст(ПараметрыПодключения.Идустройсва, ТекстДляПечати);
Если принтер вместо русских букв печатает «кракозябры», это означает, что внутренняя кодовая страница принтера не совпадает с той, которую отправляет 1С. Для исправления ситуации проанализируем использование утилиты XPrinter Tool (Setting Tool):
Check Port, чтобы убедиться в связи с устройством.Set или Update. Теперь принтер на аппаратном уровне понимает русскую кодировку 866.17.Многих пользователей интересует вопрос: как сделать так, чтобы при нажатии кнопки «Оплата» в 1С автоматически открывался денежный ящик? Выясним механизм взаимодействия:
Денежный ящик подключается к принтеру через разъем RJ11. Принтер подает на него импульс тока, который открывает замок. Чтобы это работало из 1С, у нас есть два пути:
Путь А: Настройка в драйвере Windows. Зайдем в Устройства и принтеры — Свойства принтера — Настройки устройства. Там найдем пункт Cash Drawer и выберем значение Open before printing (Открыть перед печатью).
Путь Б: Программная команда. Если драйвер позволяет прямую отправку ESC-команд, 1С может послать специальную последовательность байтов. Рассмотрим типичную команду открытия ящика для протокола ESC/POS:
// Команда открытия денежного ящика (десятичные значения)
Команда = Символ(27) + Символ(112) + Символ(0) + Символ(25) + Символ(250);
// Где 27 - ESC, 112 - p, остальные параметры управляют длительностью импульса
В старых конфигурациях на обычных формах тип оборудования «Принтер чеков» может отсутствовать. В этом случае мы рекомендуем использовать сторонние разработки, такие как WinPrinter или «Эмулятор фискального регистратора».
Принцип работы эмулятора следующий:
1. Вы устанавливаете специальную внешнюю обработку (драйвер), которая имитирует работу дорогого Штрих-М или Атол.
2. 1С «думает», что работает с полноценным кассовым аппаратом через COM-порт.
3. На самом деле обработка перехватывает команды печати и перенаправляет их в макет 1С, который затем выводится на обычный USB-принтер.
Часто пользователи пытаются использовать чековый принтер для печати самоклеящихся этикеток. Проанализируем риски этого решения:
Для печати этикеток мы рекомендуем использовать специализированные устройства, например, XPrinter XP-365B, которые поддерживают оба режима работы.
Подводя итог, можно сказать, что связка 1С + USB XPrinter абсолютно работоспособна без покупки дорогостоящего оборудования. Главное — правильно определить версию вашей конфигурации 1С. Если у вас современная база (БСП), используйте встроенный драйвер 1С:Принтер чеков (Windows). Если база старая — ищите эмулятор ФР. Не забывайте про утилиту настройки кодовых страниц, чтобы избежать проблем со шрифтами, и ваш бюджетный принтер прослужит вам долго и эффективно.