При закрытии кассовой смены и загрузке отчета о продажах из кассового аппарата, подключенного в режиме ККМ Offline (например, кассовое ПО «Штрих-М: Кассир» или Frontol в связке с конфигурацией «1С:Управление торговлей 10.3» или «1С:Розница»), пользователи нередко сталкиваются со следующей системной ошибкой:
«Обнаружена неизвестная транзакция: 54. Данные по транзакции не были загружены! Не все данные были загружены из отчета. Обратитесь к администратору системы! При попытке загрузки отчёта о продажах из ККМ, подключаемой в режиме Offline, произошла ошибка. Отчёт не был загружен.. Необходимо проверить параметры настройки и подключения ККМ и повторить попытку загрузки отчёта.»
В результате этот сбой полностью блокирует закрытие смены: документ ОтчетОРозничныхПродажах не создается, а остатки товаров и суммы выручки не фиксируются в учетной системе. Разберем подробно, почему возникает эта ошибка и как ее устранить.
Проанализируем механизм обмена данными в режиме Offline. При закрытии смены кассовая программа формирует текстовый файл отчета (обычно с расширением .txt, .rep, .dat или .csv), в котором каждая строка представляет собой определенное кассовое событие — транзакцию (продажа позиции, сторнирование, оплата наличными, безналичный расчет, скидка и т. д.).
В протоколах кассового ПО транзакция с кодом 54 отвечает за передачу служебных фискальных реквизитов чека (номер фискального накопителя, номер фискального документа, фискальный признак ФПД, реквизиты покупателя и др.). В старых релизах конфигураций (в частности, в «1С:Управление торговлей 10.3») алгоритм загрузки проверяет типы транзакций через конструкцию Если ... ИначеЕсли. Когда парсер встречает новый, неизвестный ему код транзакции 54, управление передается в ветку Иначе, взводится флаг ошибки НеизвестнаяТранзакция = Истина, и вся процедура формирования отчета прерывается.
Рассмотрим основные способы решения данной проблемы: от быстрого разового исправления до полной программной доработки.
Если смену необходимо закрыть немедленно, разберем по шагам, как отредактировать сформированный файл отчета кассы:
54 (в структуре файла параметры разделяются символом ;, где поле типа транзакции содержит значение 54).54 несет сугубо справочно-фискальную информацию и не влияет на суммы выручки и количество проданных товаров, удаление этих строк не нарушит сведение итогов смены.ОтчетОРозничныхПродажах успешно сформируется и проведется.Чтобы ошибка не повторялась ежедневно при каждом закрытии кассовой смены, внесем изменения в алгоритм обработки файла обмена. Рассмотрим пример доработки, если конфигурация находится на поддержке с возможностью изменения (версии ПРОФ/КОРП) или используется внешняя обработка обслуживания ККМ.
В модуле обработки обслуживания торгового оборудования найдем процедуру разбора строк файла отчета (блок анализа типа транзакции) и добавим явное игнорирование кода 54:
ИначеЕсли ТипТранзакции = 54 Тогда
// Игнорируем фискальные реквизиты чека, чтобы исключить ошибку загрузки
Продолжить;
После добавления этого условия обработчик перестанет считать транзакцию 54 критической ошибкой, пропустит служебную строку и корректно продолжит парсинг товарных позиций и оплат.
Проанализируем настройки самой кассовой программы (Frontol, «Штрих-М: Кассир» и др.):
В базовых версиях конфигураций прямое изменение программного кода модулей заблокировано разработчиком. В такой ситуации рекомендуются следующие решения:
.epf), внести в нее описанные выше изменения и подключить через справочник «Обработки обслуживания ТО».