Как программно распечатать шапку чека на ККМ из 1С и настроить вывод клише

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

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

Почему касса печатает шапку при включении и после отрезки

Выясним причину автоматического вывода текста шапки. В большинстве моделей термопринтеров ККТ (например, АТОЛ или Штрих-М) печатающая головка конструктивно расположена перед ножом автоотрезчика. Чтобы чек был полностью отрезан, ленту необходимо протянуть вперед на определенное расстояние.

Чтобы бумага не расходовалась вхолостую, прошивка ККТ по умолчанию сразу после отрезки чека выводит шапку следующего документа. По этой же причине при включении питания или перезагрузке устройства на ленту может выходить пустое поле с уже напечатанным клише. Это стандартный режим работы, который можно переключить в параметрах оборудования через утилиту «Тест драйвера ККТ» (с режима «После отрезки чека» на «В начале чека» или полное управление печатью со стороны кассового ПО).

Прямой вызов печати клише через методы драйвера ККТ

Если требуется принудительно распечатать шапку, хранящуюся в таблицах/памяти кассового аппарата, можно обратиться напрямую к объекту драйвера ККТ через COM-соединение или внешнюю компоненту.

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

  1. Фискальные регистраторы Штрих-М: используется вызов специализированного метода PrintCliche() (или ПечатьКлише() в русскоязычном варианте). Текст клише берется из соответствующей таблицы параметров ККТ (обычно Таблица 4 «Текст в чеке»).
  2. Фискальные регистраторы АТОЛ (DTO 9 / 10): для вывода заголовка используется метод printCliche() (в DTO 8 использовался метод ПечатьКлише()).

Посмотрим на пример прямого обращения к драйверу ККТ для вывода клише:


// Пример прямого вызова метода печати клише через объект драйвера
Попытка
    ДрайверККТ.printCliche();
Исключение
    Сообщить("Ошибка при вызове печати клише: " + ОписаниеОшибки());
КонецПопытки;

Как разделить печать шапки и рекламного блока

При вызове стандартного метода печати клише разработчики нередко сталкиваются с тем, что вместе с реквизитами организации (шапкой) на ленту выводится нижний рекламный блок или подвал чека. Проанализируем, почему это происходит и как оставить только заголовок.

В памяти ККТ строки клише и строки рекламы хранятся в единой структуре текстовых констант, но контролируются двумя отдельными счетчиками:

  1. Количество строк клише — число строк, печатаемых вверху чека (наименование организации, ИНН, адрес и т. д.).
  2. Количество строк рекламы — число строк, предназначенных для промо-текста, поздравлений или скидочных предложений.

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

  1. Запустим утилиту «Тест драйвера ККТ» и перейдем в раздел настройки параметров оборудования / клише.
  2. Найдем параметр «Количество строк рекламы» и установим его значение равным 0.
  3. Сам текст рекламных строк из памяти кассы удалять не обязательно — при нулевом значении счетчика принтер просто пропустит этот блок при печати.
  4. Сохраним параметры в память ККТ.

Реализация через Библиотеку подключаемого оборудования (БПО) 1С

Если работа с кассой в конфигурации 1С ведется через типовые механизмы БПО (Библиотеки подключаемого оборудования), прямого унифицированного метода для изолированной печати аппаратного клише вне фискального документа не предусмотрено стандартом требований 1С.

В этом случае на практике применяются два подхода:

  1. Печать нефискального текстового документа: формирование команды вывода произвольного текста средствами БПО. Текст шапки полностью формируется на стороне 1С и передается на печать в виде пакета нефискальных строк.
  2. Полное отключение аппаратного клише: в настройках ККТ количество строк клише и рекламы сбрасывается в 0. Вся шапка чека (логотип, реквизиты организации, контактные данные) генерируется средствами 1С и передается в XML-пакете фискализации чека перед фискальными позициями. Такой подход гарантирует одинаковый вид чека независимо от модели подключенного фискального регистратора и исключает задвоение строк.
← На главную