Почему в 1С:Розница возникает ошибка при снятии отчета без гашения и как ее исправить?

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

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

Причины возникновения ошибки

Для понимания сути проблемы выясним, как устроена обработка команд снятия отчетов в типовых конфигурациях 1С:

  1. Подмена команды в библиотеке подключаемого оборудования (БПО): при переходе на работу по требованиям Федерального закона № 54-ФЗ разработчики 1С на начальном этапе исключили классический нефискальный X-отчет из перечня типовых операций. Вместо него к кнопке «Отчет без гашения» была привязана фискальная операция формирования «Отчета о текущем состоянии расчетов». Этот отчет предназначен для контроля непереданных фискальных документов в ОФД.
  2. Аппаратные ограничения драйвера и прошивки ККТ: в ранних версиях прошивок онлайн-касс (в частности, АТОЛ) и драйверов линейки ДТО 8 операция печати отчета о текущем состоянии расчетов блокировалась на уровне ядра кассы, если смена была открыта. В результате контрольно-кассовая техника возвращала ошибку «Смена открыта, операция невозможна».
  3. Разделение низкоуровневых команд: стандартный X-отчет является нефискальным документом и печатается кассой напрямую из внутренних счетчиков и регистров, не затрагивая фискальный накопитель. В тесте драйвера производилась отправка именно команды печати суточного отчета без гашения, тогда как 1С отправляла команду формирования фискального отчета о состоянии расчетов, что и приводило к сбою.

Способ 1. Обновление конфигурации «1С:Розница» и БПО

Наиболее правильным и штатным способом устранения ошибки является своевременная актуализация программного обеспечения. Разберем, что изменилось в более свежих релизах:

  1. Разработчики 1С пересмотрели требования к интеграционным компонентам ККТ и вернули команду печати X-отчета в явном виде. Начиная с релизов «1С:Розница» 2.2.5.27, 2.2.6 и новее, операция вызова классического X-отчета снова доступна как отдельное нефискальное действие.
  2. Формирование фискального документа «Отчет о текущем состоянии расчетов» было вынесено в отдельный пункт меню в управлении фискальным регистратором, что исключило конфликт команд.
  3. Для решения проблемы необходимо выполнить обновление конфигурации «1С:Розница» до актуального релиза, в котором используется обновленная версия Библиотеки подключаемого оборудования (БПО).

Способ 2. Обновление прошивки кассы и драйвера ККТ

Если обновление учетной системы по каким-либо причинам откладывается, рассмотрим аппаратную сторону вопроса:

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

Способ 3. Прямой вызов нефискального X-отчета через код

Если требуется восстановить работоспособность печати X-отчета немедленно без полного обновления базы данных, можно доработать вызов команды ККТ через внешнюю обработку или расширение конфигурации. Рассмотрим пример взаимодействия с COM-объектом драйвера ККТ АТОЛ для прямой отправки команды снятия X-отчета:


// Создаем экземпляр драйвера ККТ
ДрайверККМ = Новый COMОбъект("AddIn.FprnM45");

// Подключаем кассу и входим в режим снятия отчетов без гашения
ДрайверККМ.DeviceEnabled = Истина;
ДрайверККМ.Mode = 2; // Режим снятия отчетов без гашения
ДрайверККМ.SetMode();

// Задаем тип отчета: суточный отчет без гашения
ДрайверККМ.ReportType = 2; // X-отчет
ДрайверККМ.Report();

// Отключаем устройство после завершения печати
ДрайверККМ.DeviceEnabled = Ложь;

Использование этого кода позволяет обойти некорректно вызываемый метод БПО и получить полноценный X-отчет с кассового аппарата в любой момент открытой смены.

Способ 4. Программный контроль смены средствами 1С

Пока кассовый аппарат не настроен на печать промежуточного отчета, проанализируем доступные альтернативные варианты контроля текущих показателей:

  1. Формирование нефискального текстового отчета: можно вывести на чековую ленту простой текстовый чек, сформированный на основе данных проведенных документов ЧекККМ текущей кассовой смены из информационной базы. Печать обычного текста поддерживается драйвером без переключения фискальных режимов.
  2. Типовые отчеты программы: текущую выручку, возвраты, а также операции внесения и выемки денежных средств администратор и кассир могут отслеживать непосредственно в интерфейсе «1С:Розница» с помощью стандартного отчета по кассовой смене или через просмотр реквизитов документа КассоваяСмена.
← На главную