Как исправить ошибку «Обнаружена неизвестная транзакция: 54» при закрытии смены ККМ Offline в 1С?

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

При закрытии кассовой смены и загрузке отчета о продажах из кассового аппарата, подключенного в режиме ККМ Offline (например, кассовое ПО «Штрих-М: Кассир» или Frontol в связке с конфигурацией «1С:Управление торговлей 10.3» или «1С:Розница»), пользователи нередко сталкиваются со следующей системной ошибкой:

«Обнаружена неизвестная транзакция: 54. Данные по транзакции не были загружены! Не все данные были загружены из отчета. Обратитесь к администратору системы! При попытке загрузки отчёта о продажах из ККМ, подключаемой в режиме Offline, произошла ошибка. Отчёт не был загружен.. Необходимо проверить параметры настройки и подключения ККМ и повторить попытку загрузки отчёта.»

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

Выясним причину возникновения ошибки

Проанализируем механизм обмена данными в режиме Offline. При закрытии смены кассовая программа формирует текстовый файл отчета (обычно с расширением .txt, .rep, .dat или .csv), в котором каждая строка представляет собой определенное кассовое событие — транзакцию (продажа позиции, сторнирование, оплата наличными, безналичный расчет, скидка и т. д.).

В протоколах кассового ПО транзакция с кодом 54 отвечает за передачу служебных фискальных реквизитов чека (номер фискального накопителя, номер фискального документа, фискальный признак ФПД, реквизиты покупателя и др.). В старых релизах конфигураций (в частности, в «1С:Управление торговлей 10.3») алгоритм загрузки проверяет типы транзакций через конструкцию Если ... ИначеЕсли. Когда парсер встречает новый, неизвестный ему код транзакции 54, управление передается в ветку Иначе, взводится флаг ошибки НеизвестнаяТранзакция = Истина, и вся процедура формирования отчета прерывается.

Рассмотрим основные способы решения данной проблемы: от быстрого разового исправления до полной программной доработки.

Способ 1. Быстрое ручное исправление файла отчета обмена

Если смену необходимо закрыть немедленно, разберем по шагам, как отредактировать сформированный файл отчета кассы:

  1. Перейдем в каталог обмена с кассой, указанный в настройках подключаемого оборудования ККМ Offline.
  2. Найдем файл отчета о продажах, выгруженный кассовым терминалом.
  3. Откроем этот файл с помощью любого текстового редактора (например, Notepad++).
  4. Выполним поиск строк, содержащих код транзакции 54 (в структуре файла параметры разделяются символом ;, где поле типа транзакции содержит значение 54).
  5. Удалим все строки с данной транзакцией и сохраним файл. Поскольку транзакция 54 несет сугубо справочно-фискальную информацию и не влияет на суммы выручки и количество проданных товаров, удаление этих строк не нарушит сведение итогов смены.
  6. Повторим процедуру закрытия смены в 1С — документ ОтчетОРозничныхПродажах успешно сформируется и проведется.

Способ 2. Доработка модуля загрузки в конфигурации или внешней обработке

Чтобы ошибка не повторялась ежедневно при каждом закрытии кассовой смены, внесем изменения в алгоритм обработки файла обмена. Рассмотрим пример доработки, если конфигурация находится на поддержке с возможностью изменения (версии ПРОФ/КОРП) или используется внешняя обработка обслуживания ККМ.

В модуле обработки обслуживания торгового оборудования найдем процедуру разбора строк файла отчета (блок анализа типа транзакции) и добавим явное игнорирование кода 54:


ИначеЕсли ТипТранзакции = 54 Тогда
    // Игнорируем фискальные реквизиты чека, чтобы исключить ошибку загрузки
    Продолжить;

После добавления этого условия обработчик перестанет считать транзакцию 54 критической ошибкой, пропустит служебную строку и корректно продолжит парсинг товарных позиций и оплат.

Способ 3. Корректировка параметров выгрузки на стороне кассового ПО

Проанализируем настройки самой кассовой программы (Frontol, «Штрих-М: Кассир» и др.):

  1. Откроем модуль администрирования кассового ПО.
  2. Перейдем в раздел настройки схем и форматов обмена данными с АСУ (автоматизированной системой управления).
  3. В фильтрах выгрузки транзакций отключим передачу дополнительных нефискальных/служебных данных чека, оставив только обязательные для товароучета транзакции: регистрация продаж, возвраты, скидки, внесения/выплаты и типы оплат.
  4. Сохраним настройки и проверим закрытие следующей кассовой смены.

Рекомендации для базовых версий 1С

В базовых версиях конфигураций прямое изменение программного кода модулей заблокировано разработчиком. В такой ситуации рекомендуются следующие решения:

  1. Использование внешней обработки обслуживания: выгрузить типовую обработку обслуживания ККМ Offline во внешний файл (формат .epf), внести в нее описанные выше изменения и подключить через справочник «Обработки обслуживания ТО».
  2. Обновление конфигурации: обновить конфигурацию «1С:Предприятие» до актуального релиза, где механизмы работы с ККМ Offline уже поддерживают обновленные протоколы обмена.
← На главную