Как добавить информационную строку в чек ККМ в 1С:Управление торговлей 11.5

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

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

Способ 1. Использование встроенного редактора шаблонов чеков

Прежде чем приступать к программированию, давайте проанализируем штатные возможности системы. В современных релизах УТ 11.5 реализован мощный механизм управления внешним видом чека без изменения программного кода. Если вам нужно добавить статичный текст или стандартные параметры (например, ФИО кассира или номер смены), этот метод является приоритетным.

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

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

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

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

Основная логика подготовки данных чека в УТ 11.5 сосредоточена в общих модулях Библиотеки подключаемого оборудования (БПО). Нам необходимо переопределить функцию, отвечающую за формирование шаблона чека. Разберем ситуацию на примере модуля МенеджерОборудованияВызовСервераПереопределяемый.

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


&ИзменениеИКонтроль("СформироватьШаблонЧека")
Функция Расш1_СформироватьШаблонЧека(ОбщиеПараметры, ДополнительныйТекст, СтандартнаяОбработка, ТипОборудования)    
    
    // Создаем структуру для нашей текстовой строки
    ИнформационнаяСтрока = Новый Структура("ТекстоваяСтрока, Текст, Выравнивание");
    ИнформационнаяСтрока.Текст = "Спасибо за покупку! Ждем вас снова!";
    ИнформационнаяСтрока.Выравнивание = "Центр"; // Варианты: Лево, Центр, Право
    
    // Добавляем созданную строку в массив позиций чека
    // В зависимости от логики, можно добавить в начало или в конец массива
    ОбщиеПараметры.ПозицииЧека.Добавить(ИнформационнаяСтрока);
    
    // Возвращаем Неопределено, чтобы система продолжила стандартную обработку
    // или модифицируем результат по необходимости
    Возврат Неопределено;

КонецФункции

Проанализируем этот код. Мы используем структуру ИнформационнаяСтрока, которая понятна драйверу БПО. Поле Текст содержит наше сообщение, а Выравнивание определяет позиционирование строки на ленте. Важно помнить, что в новых версиях БПО структура ОбщиеПараметры является ключевой для передачи данных на устройство.

Способ 3. Модификация XML-пакета чека

В современных реалиях 1С обменивается данными с кассовым аппаратом посредством XML-документов. Если нам нужно внедрить нефискальные данные непосредственно в поток печати, следует обратить внимание на общий модуль МенеджерОборудованияКлиентСервер и функцию СформироватьXMLПакетДляПечатиЧека — для такой задачи есть расширение печати чеков с QR-кодами и произвольным текстом.

Рассмотрим структуру XML, которую ожидает драйвер (например, для устройств Штрих-М или Атол). Каждая текстовая строка описывается тегом TextString. Пример того, как это выглядит в коде формирования пакета:


// Пример добавления тега в XML структуру
ЗаписьXML.ЗаписатьНачалоЭлемента("TextString");
ЗаписьXML.ЗаписатьАтрибут("Text", "Акция: 1+1 на все товары до конца недели!");
ЗаписьXML.ЗаписатьАтрибут("Font", "1"); // Номер шрифта в настройках драйвера
ЗаписьXML.ЗаписатьКонецЭлемента();

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

Способ 4. Настройка через таблицы драйвера (на примере Штрих-М)

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

Разберем по шагам работу с драйвером Штрих-М:

  1. Запустим утилиту Тест драйвера ККТ (обычно она находится в папке производителя) — для удаленного администрирования ККТ подойдёт утилита удаленного управления настройками кассовых аппаратов.
  2. Установим связь с кассой, нажав кнопку Установить связь.
  3. Перейдем в раздел Настройка свойств, затем нажмем кнопку Таблицы.
  4. Найдем таблицу под названием Текст в чеке (обычно это таблица №4 или №5, в зависимости от модели).
  5. В этой таблице вы увидите строки, которые печатаются в начале (заголовок) и в конце (подвал) чека.
  6. Введите нужный текст в свободные строки. Обратите внимание на колонку Печать — там должно стоять значение "1" (разрешено).
  7. Примените изменения. Теперь касса будет автоматически добавлять эти строки к каждому документу.

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

Резюме и рекомендации

Мы рассмотрели различные подходы к модификации чека. Выбор конкретного метода зависит от ваших задач:

Помните, что при работе с маркированными товарами и ФФД 1.2 любое вмешательство в структуру чека должно быть протестировано на эмуляторе или в режиме "без передачи данных", чтобы избежать блокировки кассы из-за некорректных тегов.

← На главную