Как увидеть на мониторе фискальный чек с доработанными реквизитами без кассового аппарата

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

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

Почему стандартный эмулятор 1С не показывает добавленные реквизиты

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

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

Кроме того, часть реквизитов (например, ИНН, адрес и контактные данные) в реальной кассе подставляется на уровне прошивки или настроек таблиц ККТ, поэтому они в принципе не могут быть воспроизведены простой экранной формой без настройки оборудования.

Способ 1. Синхронизация алгоритмов в обработке эмулятора

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

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

Способ 2. Анализ исходящего XML-пакета через отладку

В современных решениях на базе БПО (Библиотека подключаемого оборудования) данные передаются в драйвер ККТ в виде стандартизированного XML-пакета («ЧекККМ»). Если задача состоит в том, чтобы убедиться в правильности передаваемых данных, не обязательно менять макеты эмулятора — достаточно перехватить подготовленный XML.

Посмотрим на пример перехвата данных в отладчике:

  1. Найдем в модуле менеджера или общем модуле оборудования процедуру формирования данных фискального чека перед непосредственной отправкой в драйвер.
  2. Поставим точку останова в месте, где формируется результирующий XML-пакет (переменная с XML-строкой или объект ЗаписьXML).
  3. Запустим документ на печать чека в режиме отладки.
  4. В окне «Табло» вычислим значение сформированного XML и проанализируем его структуру: там будут присутствовать все нефискальные текстовые строки, товарные позиции и дополнительные реквизиты.

Способ 3. Временный программный вывод в табличный документ

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

Разберем пример кода для быстрого предпросмотра данных чека:


ТабДок = Новый ТабличныйДокумент;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПРЕДПРОСМОТР_ЧЕКА";

// Формируем текстовое представление или выводим строки пакета
ТабДок.Очистить();
Для Каждого Стр Из ТаблицаРеквизитовЧека Цикл
    Область = ТабДок.ПолучитьОбласть("СтрокаЧека");
    Область.Параметры.Текст = Стр.Наименование + " : " + Стр.Значение;
    ТабДок.Вывести(Область);
КонецЦикла;

ТабДок.Показать("Предварительный просмотр чека ККМ");

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

Способ 4. Использование виртуальных драйверов производителей ККТ

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

  1. Установим официальный драйвер кассы (например, АТОЛ или Штрих-М) на рабочий компьютер разработчика.
  2. В настройках драйвера включим режим работы с эмулятором ККТ или тестовым виртуальным каналом (без подключения физического устройства по COM/USB).
  3. В параметрах драйвера обязательно включим флаг детального логирования.
  4. Выполним печать чека из 1С. В лог-файле драйвера и в тестовой утилите отобразится построчный протокол обмена и графическое/текстовое представление чека в том виде, в каком драйвер передает его на печать термоленты.
← На главную