Почему не печатается X-отчет при использовании эмулятора фискального регистратора в 1С:Розница и как настроить печать на термопринтере

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

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

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

Почему эмулятор фискального регистратора не печатает X-отчет

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


Функция XОтчет(Объект, Пароль, НомерЧека, НомерСмены) Экспорт
    
    Результат = мНетОшибки;
    
    Сообщить("Печать Х-отчета");
    
    Возврат Результат;
    
КонецФункции

При вызове функции эмулятор сообщает платформе, что операция выполнена успешно, но никаких данных на печать Windows-принтера или в COM-порт не отправляет.

Разница между фискальным регистратором и термопринтером чеков

Рассмотрим, откуда берутся данные для X-отчета в реальном оборудовании:

  1. Фискальный регистратор (ККТ): Содержит собственную энергонезависимую память (фискальный накопитель / блок ФП), счетчики сменной выручки, регистраторы внесений и выплат. При отправке команды X-отчета кассовый аппарат самостоятельно рассчитывает итоги из своей внутренней памяти и распечатывает чек. Конфигурация 1С в этот момент лишь отправляет команду драйверу.
  2. Обычный термопринтер чеков (нефискальный принтер): Является исключительно устройством вывода графики или текста. Он не имеет фискальной памяти, не ведет подсчет чеков и не знает текущий остаток в денежном ящике. Чтобы получить X-отчет на таком принтере, программа 1С должна самостоятельно собрать данные из регистров информационной базы, скомпоновать макет и отправить его на печать.

Способы реализации печати X-отчета на нефискальном оборудовании

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

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

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


Функция XОтчет(Объект, Пароль, НомерЧека, НомерСмены) Экспорт

    ТабДок = Новый ТабличныйДокумент;
    Макет = ПолучитьМакет("МакетXОтчета");
    
    // Заполняем секции макета данными текущей смены
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапка.Параметры.НомерСмены = НомерСмены;
    ОбластьШапка.Параметры.ДатаВремя = ТекущаяДата();
    ТабДок.Вывести(ОбластьШапка);
    
    // Задаем параметры печати для чековой ленты
    ТабДок.ИмяПринтера = Объект.ИмяПринтера;
    ТабДок.ПолеСверху = 0;
    ТабДок.ПолеСнизу = 0;
    ТабДок.ПолеСлева = 0;
    ТабДок.ПолеСправа = 0;
    ТабДок.АвтоМасштаб = Истина;
    
    ТабДок.Напечатать(РежимПечатиТабличногоДокумента.Бесшумный);

    Возврат мНетОшибки;

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

Способ 2. Использование прямой печати ESC/POS-команд

Для принтеров, подключенных по протоколам COM/USB (Virtual COM), печать формируется отправкой текстового потока байтов со специальными ESC/POS-командами форматирования (жирный шрифт, выравнивание по центру, отрезка бумаги). Это обеспечивает высокую скорость вывода чеков без задействования графической подсистемы Windows.

Способ 3. Подключение специализированной обработки для ЧПМ / АСПД

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

Организация внесения и выемки наличности (разменной монеты)

Выясним, как правильно отражать утренний разменный фонд и инкассацию, не создавая вручную документы ПриходныйКассовыйОрдер и РасходныйКассовыйОрдер на каждое действие кассира:

  1. Работа в режиме РМК: В интерфейсе кассира операции перемещения наличности выполняются специальными сервисными кнопками «Внесение денег» и «Выемка денег». При этом формируются оперативные записи в регистре движения денежных средств кассы ККМ.
  2. Связь с кассой предприятия: Утренняя передача разменной монеты оформляется расходным кассовым ордером из главной кассы в кассу ККМ. В течение дня в X-отчете эта сумма отображается в строке «Внесения» или «Служебный приход».
  3. Закрытие смены: При проведении операции Z-отчета (закрытия смены) программа автоматически генерирует сводный отчет о продажах и формирует регламентные кассовые ордера на инкассированную выручку.

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

← На главную