Как изменить шаблон чека ККМ с QR-кодом в программе 1С:Розница 2?

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

С переходом на новые онлайн-кассы и вступлением в силу требований 54-ФЗ формат взаимодействия между учетной системой 1С и кассовым оборудованием существенно изменился. Многие пользователи и разработчики столкнулись с тем, что старые шаблоны чеков, которые настраивались в программе, попросту перестали «подхватываться» фискальными регистраторами. Новые аппараты ККТ стали сами определять внешний вид фискального документа, игнорируя настройки 1С.

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

Почему старые шаблоны чеков перестали работать?

Выясним причину этой проблемы. В старых редакциях программ 1С и на старых моделях фискальных регистраторов (без поддержки онлайн-передачи данных) печать чека выполнялась построчно. Программа буквально отправляла на принтер команду: «Напечатай строку А, затем напечатай строку Б». Это позволяло верстать чек практически как угодно.

Современные онлайн-кассы работают иначе. Программа 1С больше не формирует графический образ чека построчно. Вместо этого 1С отправляет на кассовый аппарат XML-пакет с фискальными данными (наименование товара, цена, количество, ставка НДС, ИНН, сумма оплаты и т.д.). Кассовый аппарат принимает этот пакет данных, самостоятельно форматирует его по жестким внутренним правилам, добавляет обязательные фискальные признаки (ФД, ФП, ФН, а также QR-код) и выводит готовый чек на ленту. Именно поэтому классические шаблоны чеков перестали применяться кассовыми аппаратами на аппаратном уровне.

Тем не менее возможность кастомизации чеков осталась. Рассмотрим все доступные способы настройки внешнего вида чека ККТ.

Способ 1. Использование встроенного шаблона «Чек ККТ»

В конфигурациях «1С:Розница», начиная с версий 2.2 и выше, разработчики добавили специализированный тип шаблонов под названием «Чек ККТ». Он спроектирован с учетом ограничений онлайн-касс и современных драйверов.

Разберем по шагам, как создать и настроить такой шаблон:

  1. Перейдем в раздел Администрирование, далее выберем пункт Печатные формы, отчеты и обработки и откроем справочник Шаблоны этикеток, ценников и чеков ККМ.
  2. Нажмем кнопку Создать.
  3. В открывшейся карточке в поле Тип шаблона обязательно выберем значение Чек ККТ. Обратите внимание, что старый тип «Чек ККМ» использовать не нужно — фискальный аппарат его проигнорирует.
  4. В поле Назначение выберем подходящий вариант (например, «Первый чек» или «Дополнительный»).
  5. Нажмем кнопку Редактировать макет. Откроется встроенный графический конструктор шаблона.

В конструкторе макета мы увидим, что форма разделена на несколько областей. Фискальные поля (табличная часть с товарами, итоги, налоги, QR-код) жестко предопределены, и изменить их структуру напрямую нельзя, так как они регламентируются законом. Однако мы можем добавлять произвольный текст в свободные зоны чека:

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

Способ 2. Использование функции «Нефискальные документы»

Что делать, если вам нужно вывести большой объем текстовой информации (например, гарантийный талон или правила проведения акции), но вы не хотите загромождать фискальный чек? В редакторе шаблонов «Чек ККТ» есть отличный штатный механизм.

При редактировании шаблона обратите внимание на кнопку в верхней панели управления — Добавить нефискальный документ. Эта опция позволяет создать дополнительную область печати, которая будет выведена на кассовую ленту сразу после завершения печати основного фискального чека и его отрезки.

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

Способ 3. Обязательная привязка шаблона к ККМ

Рассмотрим распространенную ситуацию: администратор создал красивый шаблон чека, добавил туда рекламный блок, сохранил макет, но при продаже касса все равно выдает стандартный скучный чек. Почему настроенный шаблон «не применяется»?

Дело в том, что созданный макет необходимо явно привязать к конкретной кассе ККМ. Выполним эту настройку:

  1. Перейдем в раздел НСИ и откроем справочник Кассы ККМ (или зайдем в Настройки РМК для текущего рабочего места).
  2. Откроем карточку нужной кассы ККМ, которая физически подключена к компьютеру.
  3. Найдем реквизиты Шаблон чека ККМ (продажи) и Шаблон чека ККМ (возврата).
  4. Выберем в этих полях наш вновь созданный шаблон типа Чек ККТ.
  5. Сохраним настройки кассы, нажав Записать и закрыть.

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

Важное примечание: убедитесь, что ширина ленты в символах (например, 32, 40 или 56 символов), указанная в настройках шаблона в 1С, строго совпадает с физической шириной ленты вашей ККТ и настройками в утилите драйвера производителя оборудования (Атол, Штрих-М и др.). В противном случае строки могут некрасиво переноситься или обрезаться.

Способ 4. Программный метод добавления информации в чек (для разработчиков)

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

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

Для этого в общем модуле или модуле менеджера документа ЧекККМ найдем процедуру ДополнитьТоварамиПараметрыПриПробитииЧека. В самом конце этой процедуры мы можем программно добавить произвольные строки непосредственно в коллекцию позиций чека:


// Программное добавление произвольных строк в фискальный чек
Процедура ДополнитьТоварамиПараметрыПриПробитииЧека(ОбщиеПараметры) Экспорт

    // Добавляем пустую строку для визуального отступа перед информационным блоком
    ОбщиеПараметры.ПозицииЧека.Добавить(
        МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("")
    );

    // Добавляем строки с произвольным текстом
    ОбщиеПараметры.ПозицииЧека.Добавить(
        МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("ПОДПИСЫВАЙТЕСЬ НА НАШ ТЕЛЕГРАМ-КАНАЛ!")
    );
    ОбщиеПараметры.ПозицииЧека.Добавить(
        МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("Получите скидку 5% по промокоду: TG2024")
    );
    ОбщиеПараметры.ПозицииЧека.Добавить(
        МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("Телефон поддержки: 8-800-XXX-XX-XX")
    );

    // Добавляем завершающую пустую строку
    ОбщиеПараметры.ПозицииЧека.Добавить(
        МенеджерОборудованияКлиентСервер.ПараметрыТекстовойСтрокиЧека("")
    );

КонецПроцедуры

Проанализируем особенности этого решения. Данный код принудительно внедряет нефискальные текстовые строки в массив ПозицииЧека. Физически эти строки будут напечатаны внутри тела фискального документа (обычно рядом с позициями номенклатуры или сразу за ними). Отрезать или перенести этот блок в самый низ чека (под QR-код) при таком подходе стандартными средствами ККТ не получится, так как драйвер ККТ позиционирует QR-код и фискальный признак строго в самом конце чека.

Если вам требуется передать произвольный текст именно в верхнюю или нижнюю часть чека на уровне XML-пакета, в Библиотеке подключаемого оборудования (БПО) для структуры параметров чека предусмотрены свойства ДетализацияАналитики.ТекстШапки и ДетализацияАналитики.ТекстПодвала. Однако помните, что корректность обработки этих полей зависит от версии установленного интеграционного драйвера ККТ.

Способ 5. Настройка через утилиту драйвера ККТ

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

Рассмотрим, как это сделать на примере ККТ «Атол» или «Штрих-М»:

  1. Подключите ККТ к компьютеру и запустите сервисную утилиту производителя (например, «Тест драйвера ККТ» для Атол или «Тест драйвера ФР» для Штрих-М).
  2. Установите связь с кассовым аппаратом.
  3. Перейдите в раздел настроек параметров ККТ (обычно это вкладка Параметры ККТ или Таблицы).
  4. Найдите таблицу под названием Текст в чеке, Клише или Рекламный текст.
  5. В соответствующих строках (обычно доступно от 3 до 6 строк для шапки и подвала) введите нужный вам текст, например: *«Спасибо за покупку!»*, *«Ждем вас снова!»* или ваши контактные данные.
  6. Запишите изменения в память ККТ.

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

Таким образом, комбинируя стандартные шаблоны Чек ККТ, механизм нефискальных документов, программное дополнение параметров и возможности драйвера оборудования, вы сможете настроить внешний вид чека под любые бизнес-требования вашей компании.

← На главную