При оформлении продаж в рабочем месте кассира (РМК) конфигурации «1С:Управление торговлей 11» нередко возникает неприятная ситуация: документ оплаты успешно проводится в информационной базе, однако фискальный чек из аппарата не выходит. При этом программа выдает системное предупреждение: «При печати чека произошла ошибка. Чек не напечатан на фискальном регистраторе. Дополнительное описание: », оставляя поле с конкретной причиной абсолютно пустым.
Разберем по шагам, почему возникает эта неполадка, как провести полноценную диагностику кассового аппарата и какими средствами устранить блокировку фискализации.
Проанализируем наиболее частую причину, из-за которой касса внезапно перестает регистрировать расчеты при успешном прохождении тестов связи. В соответствии с кассовым законодательством непрерывная длительность смены на контрольно-кассовой технике не может превышать 24 часа. Как только лимит времени исчерпан, фискальный накопитель (ФН) переходит в режим блокировки фискальных операций: нефискальные команды и тесты проверки связи выполняются штатно, но сформировать чек продажи устройство не дает.
Выясним причину, по которой 1С оставляет поле дополнительного описания пустым. Это происходит из-за несогласованности версий библиотеки подключаемого оборудования (БПО), установленного драйвера и протокола ФФД: компонент драйвера передает код ошибки блокировки кассового ядра, но текстовое представление статуса в кассовый интерфейс 1С не транслируется.
Для устранения проблемы выполним следующие действия:
Рассмотрим ситуацию, когда при диагностике сервисная утилита или сама 1С периодически сигнализирует о том, что интерфейсный порт недоступен или занят другим процессом. Физический или виртуальный COM-порт, через который подключен фискальный регистратор, может обрабатываться в операционной системе только одним приложением единовременно.
Разберем по шагам правила освобождения порта:
Бывают случаи, когда смена закрыта вовремя, но регистратор по-прежнему отказывается формировать новые фискальные документы. Это происходит при аварийном завершении предыдущей операции — например, если внезапно закончилась чековая лента, произошло отключение питания или сбой связи в момент печати предыдущего чека.
В этом случае фискальный регистратор зависает в промежуточном состоянии «Чек открыт». Пока открытый документ не будет аннулирован или допечатан, регистратор блокирует любые новые транзакции. Для решения проблемы выполним следующие шаги:
Чтобы исключить простой кассовых узлов из-за человеческого фактора (когда кассиры забывают закрыть смену по окончании рабочего дня), целесообразно использовать штатные возможности платформы и типовых конфигураций. Настроим автоматический контроль состояния кассы.
Посмотрим на пример логики, которую можно реализовать в кодовой базе или в регламентных процедурах для предотвращения подобных сбоев перед отправкой чека на печать:
// Проверяем длительность кассовой смены перед фискализацией
Если ОбъектККТ.СменаОткрыта Тогда
ТекущееВремя = ТекущаяДатаСеанса();
ВремяОткрытия = ОбъектККТ.ДатаВремяОткрытияСмены;
// 86400 секунд = 24 часа
Если (ТекущееВремя - ВремяОткрытия) >= 86400 Тогда
ВызватьИсключение "Превышена допустимая длительность смены (24 часа). Закройте смену на ККТ!";
КонецЕсли;
КонецЕсли;
Своевременный контроль длительности смены, корректная настройка служб обмена с ОФД и обновление библиотек подключаемого оборудования позволяют свести к минимуму системные ошибки кассового узла и избежать задержек при обслуживании покупателей.