Как настроить печать товарного чека на онлайн-кассе в 1С при переходе с фискального регистратора?

Программист 1С v8.3 (Обычные формы) Промышленность, строительство и АПК
← На главную

При модернизации кассового узла и переходе со старых фискальных регистраторов (ФР) на современные онлайн-кассы (ККТ с передачей данных по 54-ФЗ) пользователи конфигураций на базе 1С:УПП 1.3, 1С:УТ 10.3 и отраслевых решений часто сталкиваются с проблемой: вместо товарного (нефискального) чека аппарат печатает копию последнего фискального чека либо выдает ошибку оборудования. Проанализируем причины этой проблемы и разберем практические способы реализации нефискальной печати на онлайн-кассах.

Почему старый механизм печати товарного чека не работает с онлайн-кассой?

В конфигурациях предыдущих поколений печать нефискальных документов строилась на прямой отправке низкоуровневых команд в драйвер фискального регистратора (построчная печать текста методом ПечатьСтроки и последующая отрезка). С введением требований 54-ФЗ взаимодействие с кассовой техникой переведено на стандарт БПО (Библиотека подключаемого оборудования). Все данные теперь передаются в виде строго структурированных XML-пакетов фискализации.

Посмотрим на фрагмент типового кода, который отвечает за поиск устройства и печать товарного чека в старых релизах:


Функция РаспечататьТоварныйЧек() Экспорт
    МассивФР = ПолучитьСерверТО().ПолучитьСписокУстройств(
        Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор, 
        КассаККМ
    );
    
    СписокФР = Новый СписокЗначений;
    Вид = Неопределено;
    Представление = Неопределено;
    
    Для Каждого ФР Из МассивФР Цикл
        ПолучитьСерверТО().ПолучитьПредставлениеУстройства(ФР, Вид, Представление);
        СписокФР.Добавить(ФР, Представление);
    КонецЦикла;
    
    // Дальнейший выбор устройства и посимвольный вывод строк в драйвер ФР
КонецФункции

Проанализировав данный алгоритм, мы видим две основные причины сбоя:

  1. Несоответствие типа оборудования: Онлайн-кассы регистрируются в системе не как Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор, а как ККТ с передачей данных (или ККМ с передачей данных). В результате функция не находит подключенное устройство либо обращается к отключенному старому ФР.
  2. Изменение протокола обмена: Драйвер онлайн-ККТ при получении некорректной команды печати либо отклоняет операцию, либо повторяет печать предыдущего закрытого фискального документа (выдает дубликат/копию чека).

Способ 1. Корректная перенастройка торгового оборудования в 1С

Разберем базовые шаги настройки оборудования в пользовательском режиме, которые необходимо выполнить в первую очередь:

  1. Откроем справочник Подключение и настройка торгового оборудования.
  2. Полностью удалим старую запись фискального регистратора, а не просто снимем признак Использовать. Наличие старой неактивной записи может приводить к тому, что модули печати по умолчанию будут пытаться инициализировать отключенный COM-объект.
  3. В разделе ККТ с передачей данных (или ККМ с передачей данных) создадим новую запись для онлайн-кассы, укажем актуальный драйвер производителя и настроим параметры связи (номер COM-порта, скорость или IP-адрес).
  4. Выполним тест устройства, чтобы убедиться в стабильной связи с ККТ.

Способ 2. Доработка модуля печати товарного чека через БПО

Если конфигурация поддерживает обновленные механизмы работы с торговым оборудованием, изменим программный код функции печати. Заменим прямое обращение к фискальному регистратору на методы работы с ККТ с передачей данных:


// Изменяем вид запрашиваемого оборудования
ВидККТ = Перечисления.ВидыТорговогоОборудования.ККТСПередачейДанных;
МассивККТ = ПолучитьСерверТО().ПолучитьСписокУстройств(ВидККТ, КассаККМ);

Если МассивККТ.Количество() > 0 Тогда
    УстройствоККТ = МассивККТ[0];
    
    // Передаем команду печати нефискального текстового документа 
    // через обработку обслуживания торгового оборудования
    ПараметрыОперации = Новый Массив;
    ПараметрыОперации.Добавить(ТекстТоварногоЧека);
    
    Результат = МенеджерОборудованияКлиент.ВыполнитьКоманду(
        УстройствоККТ, 
        "ПечатьТекста", 
        ПараметрыОперации
    );
КонецЕсли;

Способ 3. Прямое обращение к COM/Native-драйверу производителя

В нетиповых и сильно переработанных конфигурациях надежным способом является вывод текста напрямую через API драйвера (например, драйвера ККТ Атол 10.х или Штрих-М). Разберем логику работы такого алгоритма:

  1. Создаем объект драйвера кассы в коде внешней печатной формы или общего модуля.
  2. Открываем нефискальный документ соответствующим методом драйвера (для предотвращения записи данных в фискальный накопитель).
  3. В цикле передаем строки товарного чека.
  4. Закрываем нефискальный документ и выполняем команду отрезки чековой ленты.

Важное ограничение: Большинство ККТ занимают виртуальный COM-порт монопольно. Перед тем как отправлять команды напрямую в драйвер, необходимо временно освобождать порт (отключать устройство в 1С через методы менеджера торгового оборудования), а после завершения печати подключать его обратно. В противном случае возникнет ошибка Порт занят.

Способ 4. Печать через драйвер принтера Windows

Для многих моделей онлайн-касс производители предоставляют драйвер виртуального Windows-принтера чеков. Это позволяет организовать печать товарного чека без модификации модулей фискализации:

  1. Устанавливаем драйвер принтера кассовой ленты в операционную систему.
  2. В 1С формируем стандартный ТабличныйДокумент, настроенный под ширину чековой ленты (обычно 57 мм или 80 мм).
  3. Отправляем сформированный макет напрямую на печать с помощью метода ТабличныйДокумент.Напечатать(), указав имя установленного Windows-принтера.

Альтернативные решения

Если доработка кассового модуля технически затруднена или нежелательна, рассмотрим практичные альтернативы:

  1. Вывод товарного чека на офисный принтер: Использование стандартной печатной формы на листах формата А4 или А5.
  2. Подключение отдельного POS-принтера (принтера чеков): Установка недорогого нефискального чекового принтера для сервисных квитанций и товарных чеков. Это снижает износ печатающего механизма ККТ, полностью исключает нагрузку на фискальный накопитель и снимает конфликт драйверов 54-ФЗ.
← На главную