Как изменить макет чека ККМ в 1С:Розница 2.3 для фискальных регистраторов Штрих-М?

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

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

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

Понимание архитектуры печати: 1С против драйвера ККТ

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

Таким образом, весь чек ККМ можно разделить на две принципиальные части:

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

Рассмотрим по шагам все возможные способы модификации чека.

Способ 1. Настройка шаблона чека в «1С:Розница 2.3»

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

Выполним следующие действия по шагам:

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

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

  1. Перейдем в раздел НСИ и откроем справочник Кассы ККМ.
  2. Найдем и откроем карточку нашей рабочей кассы ККМ.
  3. В поле Шаблон чека ККМ выберем созданный нами на предыдущем шаге шаблон чека ККТ.
  4. Сохраним настройки кассы ККМ.

Способ 2. Тонкая настройка чека через утилиту драйвера «Штрих-М»

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

Для настройки параметров печати выполним следующие действия:

  1. Запустим утилиту Тест драйвера ККТ (обычно версии 4.15 или более новой) на компьютере, к которому подключена касса.
  2. Нажмем кнопку Настройка свойств, проверим связь с кассой и нажмем кнопку Таблицы.
  3. В открывшемся списке таблиц настроек ККТ нас будут интересовать три основные таблицы:

Таблица 1: «Тип и режим кассы»
Здесь содержатся системные настройки работы принтера чеков. Нас интересуют следующие параметры:

Таблица 4 (или 3 в зависимости от модели): «Текст в чеке» (Клише)
Эта таблица содержит строки, которые касса печатает автоматически в начале и в конце чека.

Таблица 8: «Настройка шрифтов»
Если чековая лента узкая (например, 57 мм), стандартный шрифт может казаться слишком крупным, из-за чего длинные наименования товаров переносятся на несколько строк, увеличивая расход бумаги. В этой таблице можно задать более мелкий масштаб шрифта (например, шрифт под номером 5 или 6) для фискальных строк, оставив крупный шрифт только для итоговых сумм чека.

Способ 3. Программная доработка чека через расширение конфигурации

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

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

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


&ВОбходе("МенеджерОборудованияКлиентСервер")
Процедура Расш_СформироватьТекстНефискальногоДокумента(ПараметрыДокумента, ТекстЧека) Экспорт
    // Вызываем оригинальный обработчик, чтобы заполнить стандартные нефискальные строки
    ПродолжитьВызов(ПараметрыДокумента, ТекстЧека);
    
    // Добавляем собственный блок информации в конец чека
    ТекстЧека.ДобавитьСтроку("==================================");
    ТекстЧека.ДобавитьСтроку("  СРОК ГАРАНТИИ НА ТОВАР - 14 ДНЕЙ ");
    ТекстЧека.ДобавитьСтроку(" Сохраняйте данный чек для возврата ");
    ТекстЧека.ДобавитьСтроку("==================================");
КонецПроцедуры

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

Как протестировать изменения без реальной кассы?

Одной из главных проблем для разработчика является отсутствие физического фискального регистратора под рукой в момент написания кода или настройки макета. Постоянно пробивать тестовые чеки на боевой кассе клиента невозможно — это приведет к расхождению кассовых смен и отправке некорректных данных в ОФД и налоговую службу.

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

  1. Откроем базу 1С в режиме Предприятие под правами администратора.
  2. Перейдем в раздел Администрирование, выберем Подключаемое оборудование.
  3. Установим флаг Использовать подключаемое оборудование, если он не был установлен ранее.
  4. Перейдем по ссылке Подключаемое оборудование и нажмем кнопку Создать.
  5. В поле Тип оборудования выберем значение ККТ с передачей данных.
  6. В поле Драйвер оборудования выберем предопределенный элемент 1С:Эмулятор ККТ с передачей данных.
  7. Нажмем кнопку Записать и закрыть. Мы создали виртуальную кассу.
  8. Теперь перейдем в настройки параметров только что созданного эмулятора. Там можно задать ширину чековой ленты (например, популярные форматы 57 мм или 80 мм).
  9. Перейдем в справочник Кассы ККМ (раздел НСИ — Кассы ККМ) и создадим тестовую кассу ККМ, привязав ее к нашему виртуальному оборудованию-эмулятору. В поле Шаблон чека ККМ выберем разработанный нами ранее шаблон чека.

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

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

← На главную