Как отключить автоматическую печать чека в РМК и печатать его только по просьбе покупателя?

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

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

Проанализируем архитектурные особенности конфигураций на обычных формах (таких как «1С:Розница 1.0» и «1С:Управление торговлей 10.3») и разберем практические способы реализации выборочной печати.

Архитектурные особенности механизма пробития чеков

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

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

Вариант 1. Доработка формы РМК и процедуры пробития чека

Рассмотрим наиболее гибкий способ решения задачи через добавление управляющего флага на форму рабочего места кассира (РМК).

  1. Добавим на форму РМК (или в диалоговое окно закрытия чека/ввода оплаты) реквизит и элемент управления Флаг с наименованием «Печатать чек» (значение по умолчанию можно установить в Ложь).
  2. Назначим для быстрого переключения флага горячую клавишу, чтобы кассир мог одним нажатием активировать печать, если покупатель попросил чек.
  3. В обработчике закрытия чека и вызова процедуры ПробитьЧек модифицируем условие передачи данных в торговое оборудование:

Если ПечататьБумажныйЧек Тогда
    // Выполняем типовой вызов торгового оборудования
    Результат = ТОСервер.ПечатьЧека(ФискальныйРегистратор, ПараметрыЧека);
Иначе
    // Пропускаем отправку команд в принтер, фиксируя статус пробития
    ДокументОбъект.Пробит = Истина;
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    Результат = Истина;
КонецЕсли;

При таком подходе продажа регистрируется мгновенно без обращения к принтеру, а движения по регистрам формируются в штатном режиме.

Вариант 2. Модификация внешней обработки обслуживания принтера

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

  1. Откроем внешнюю обработку обслуживания в конфигураторе.
  2. Найдем экспортную функцию печати чека (процедуры ПечатьЧека или ПечататьСтроки).
  3. Добавим во внешнюю обработку параметр настройки (например, «Режим печати: Только эмуляция / Печать выключена») или перехватим вывод команд.
  4. При получении команды на печать функция должна возвращать признак успешного выполнения (Результат = Истина), но фактически не отправлять ESC/POS-команды в порт принтера.

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

Вариант 3. Перевод принтера в режим Windows-принтера и печать товарного чека по требованию

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

  1. Удалим принтер чеков из справочника Торговое оборудование. Касса ККМ настраивается в автономном режиме либо подключается через эмулятор.
  2. При проведении оплаты документ ЧекККМ проводится моментально без отправки сигналов на печать.
  3. Для случаев, когда клиенту необходим чек, настроим стандартную печатную форму «Товарный чек» под ширину кассовой ленты (58 мм или 80 мм).
  4. При необходимости кассир нажимает кнопку печати товарного чека или настроенной копии чека из списка чеков РМК, и документ отправляется на принтер через системный драйвер Windows.

Выбор конкретного варианта зависит от требований к сохранению типовой конфигурации и формата работы кассира на торговой точке.

← На главную