Как напечатать нефискальный чек (пречек) в 1С:Розница 2.2?

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

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

Выясним причину и особенности работы с АСПД и ККТ

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

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

Способ 1. Использование структуры XML-пакета CheckPackage (для стандартов БПО)

В современных версиях БПО для передачи команд на кассовое оборудование применяется универсальный формат XML-пакета CheckPackage. Внутри этой структуры можно описывать нефискальные текстовые строки, которые кассовый аппарат печатает на чековой ленте.

Рассмотрим структуру XML-пакета для вывода нефискальной информации:


<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
    <Parameters PaymentType="1" TaxVariant="1"/>
    <Positions>
        <TextString Text="=== ПРЕЧЕК / ТОВАРНЫЙ ЧЕК ==="/>
        <TextString Text="Товар: Кофе Капучино"/>
        <TextString Text="Количество: 1 шт. Цена: 150.00"/>
        <TextString Text="--------------------------------"/>
        <TextString Text="ИТОГО К ОПЛАТЕ: 150.00 руб."/>
        <TextString Text="Дисконтная карта: 00002345"/>
    </Positions>
</CheckPackage>

Сформировав подобный пакет в обработке РМК, вы передаете его в менеджер оборудования через стандартные процедуры клиники БПО. При этом фискальный накопитель не задействуется, а устройство выводит на печать только текстовый блок.

Способ 2. Вызов печати текстовых строк через драйвер Штрих-М

Если работа идет с классическим драйвером ФР/АСПД Штрих-М (например, в рамках доработок внешней печатной формы или кнопки в РМК), вывод нефискального документа выполняется путем последовательной печати строк. Посмотрим на алгоритм действий:

  1. Выполняем подключение к устройству через вызов процедур модуля МенеджерОборудованияКлиент.
  2. Вызываем вывод клише/шапки чека (если требуется стандартный заголовок).
  3. Передаем команды печати произвольного текста для каждой строки пречека.
  4. Проводим отрезку чековой ленты без вызова команд фискализации чека.

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

Способ 3. Переподключение устройства в качестве принтера чеков

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

  1. Переводим АСПД/принтер в режим работы под управлением Windows-драйвера принтера.
  2. В разделе Подключаемое оборудование 1С:Розница регистрируем устройство как Принтер чеков.
  3. Используем встроенный редактор шаблонов чеков в конфигурации 1С:Розница (раздел Продажи — Шаблоны чеков).

В данном режиме печать нефискального чека по настраиваемому шаблону становится доступна без сложной доработки кода программы.

Важные технические нюансы

При реализации печати пречеков учтите следующие эксплуатационные особенности:

  1. Отсутствие учета в кассовой смене: Печать нефискального чека не фиксирует выручку в кассе и не попадает в Z-отчет. Все списания и проведение документов должны происходить только при нажатии кнопки окончательной оплаты.
  2. Отрезка и завершение документа: При формировании текстового чека следите за отправкой команды отрезки ленты, иначе следующий чек напечатается встык с предыдущим.
  3. Альтернативный вариант: Для ресторанного или буфетного учета часто применяется механизм Отложенных чеков или подключение отдельного чекового принтера (ESC/POS) для печати сервисных чеков.
← На главную