При работе в конфигурации 1С:Розница 2.2 кассиры и администраторы часто сталкиваются с ситуацией, когда в течение рабочего дня требуется проверить промежуточную выручку. Однако при вызове операции печати X-отчета (отчета без гашения) фискальный регистратор (например, АТОЛ 30Ф или АТОЛ 55Ф) возвращает ошибку: «Смена открыта - операция невозможна». При этом после закрытия смены Z-отчетом та же касса позволяет сформировать отчет без гашения без каких-либо сбоев.
Разберем подробнее, с чем связано такое поведение фискального регистратора, почему классический X-отчет ведет себя нестандартно на онлайн-кассах с передачей данных и какие варианты решения проблемы существуют.
Проанализируем архитектуру взаимодействия программы 1С с кассовым аппаратом нового образца (по стандарту 54-ФЗ) и выделим основные факторы, приводящие к ошибке:
БиблиотекаПодключаемогоОборудования (БПО), встроенных в релизы 1С:Розница 2.2.5, логика формирования отчетов без гашения для онлайн-касс («ККТ с передачей данных») была изменена. Вместо классического X-отчета по регистрам кассы разработчики отправляли запрос на печать отчета о текущем состоянии расчетов (диагностика непереданных фискальных документов в ОФД). На уровне низкоуровневого протокола ККТ вызов определенных сервисных отчетов требовал закрытой смены, из-за чего прошивка кассы возвращала код ошибки -3837 (или 9Ch) — «Смена открыта, операция невозможна».Посмотрим на наиболее корректный и долгосрочный способ устранения ошибки. Для восстановления штатного функционала выполним следующие шаги:
Администрирование — Подключаемое оборудование.Если обновление конфигурации в данный момент невозможно и необходимо сохранить текущую рабочую базу, разберем программный способ исправления ситуации в обработке обслуживания или общем модуле интеграции с торговым оборудованием.
Найдем в модуле функцию, отвечающую за печать отчета без гашения. В ранних версиях БПО отправлялся обобщенный вызов сервисного отчета. Чтобы принудительно распечатать именно X-отчет, драйверу необходимо передать команду входа в режим отчетов без гашения с последующим снятием суточных показателей:
// Пример корректировки вызова отчета в коде интеграции
ОбъектДрайвера.Mode = 2; // Режим отчетов без гашения
Если ОбъектДрайвера.SetMode() = 0 Тогда
ОбъектДрайвера.ReportType = 1; // Суточный отчет без гашения (X-отчет)
Если ОбъектДрайвера.PrintReport() <> 0 Тогда
ВызватьИсключение ОбъектДрайвера.Description;
КонецЕсли;
КонецЕсли;
При таком прямом обращении касса печатает чековую ленту с текущими накоплениями по секциям и типам оплаты, не вызывая конфликтных проверок фискального накопителя.
Рассмотрим вариант, когда кассиру требуется экстренно сверить кассу, а доработка программы еще не выполнена. Снять отчет можно напрямую через утилиту управления драйвером ККМ. При этом важно учитывать системное ограничение: монопольный захват COM-порта.
«Порт занят».1 - Снятие отчета без гашения (X-отчет) и нажмем кнопку «Снять отчет».Проанализируем альтернативные инструменты, которые позволяют получить данные о выручке без обращения к внутренним регистрам ККТ и без расхода чековой ленты:
Сводный отчет по кассовой смене или просмотр остатков наличных в кассе ККМ считывают накопленные данные из регистров самой информационной базы 1С. Они отображают продажи по видам оплат (наличные, эквайринг, подарочные сертификаты) на экране или выводят нефискальный чек на принтер.Таким образом, наиболее надежным решением ошибки является обновление конфигурации и переход на современный драйвер АТОЛ ДТО 10, а в качестве оперативного контроля смены рекомендуется использовать встроенные отчеты 1С и личный кабинет оператора фискальных данных.