При работе в режиме Рабочего места кассира (РМК) в конфигурациях 1С:Розница или 1С:Управление нашей фирмой (УНФ) пользователи часто сталкиваются с неприятной ситуацией: при попытке фискализации и печати чека система выдает критическую ошибку. На экране появляется предупреждение:
При печати чека произошла ошибка. {Обработка.РабочееМестоКассира.Форма.ФормаРМК.Форма(4855)}: ВызватьИсключение... PayDesk.error Неверный формат команды
Если мы обратимся к логам драйвера ККТ (например, популярного семейства касс АТОЛ) (удобно через подключение и настройка онлайн-касс АТОЛ и ШТРИХ), то увидим следующую запись:
ERROR [1C] [26] Неверный формат команды
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем внутренние механизмы взаимодействия платформы 1С с фискальными накопителями по формату фискальных данных (ФФД) 1.2 (для этого подойдёт автоматизация работы касс АТОЛ по ФФД 1.2) и рассмотрим по шагам все способы решения данной проблемы.
С технической точки зрения код ошибки 26 (0x4469) означает, что кассовый аппарат получил от программы 1С пакет данных, структура или содержимое которого не соответствуют протоколу работы ККТ. Касса не может распознать один или несколько переданных тегов и отклоняет всю операцию регистрации чека.
Давайте проанализируем основные сценарии, при которых возникает этот сбой, и найдем пути их устранения.
---
Очень часто ошибка возникает при оформлении оптовых продаж юридическим лицам или индивидуальным предпринимателям через РМК, а также при некорректно заполненных данных собственной организации (или магазина).
Согласно требованиям ФФД, при расчетах между организациями и ИП в чеке обязательно должны быть заполнены реквизиты покупателя:
Если эти данные были скопированы в информационную базу 1С из внешних текстовых редакторов или интернет-браузера, в строках могут остаться скрытые спецсимволы (например, неразрывные пробелы, символы перевода строки, знаки табуляции) (поможет автоматическая проверка и запрет ввода некорректных символов), либо некорректные типы кавычек (так называемые кавычки-ёлочки « » вместо стандартных прямых " "). Кассовый аппарат крайне чувствителен к кодировке и синтаксису этих строк. Получив строку со скрытым спецсимволом, драйвер ККТ выдает ошибку формата команды.
Выполним следующие действия для исправления:
---
В практике работы с Библиотекой подключаемого оборудования (БПО) 1С замечен программный нюанс: настройки торговых точек и параметры интеграции с кассой кэшируются системой для ускорения работы РМК. Если в структуре метаданных произошли изменения (например, после обновления конфигурации 1С), закэшированные параметры могут передаваться драйверу ККТ в искаженном или устаревшем XML-формате.
Проанализируем простое и быстрое решение, которое помогает сбросить этот кэш:
Эта нехитрая процедура принудительно перезаписывает объект в базе данных, очищает связанный с ним кэш настроек БПО и заставляет программу сформировать новый чистый пакет параметров для отправки на кассовый аппарат.
---
Если ошибка формата команды возникает исключительно при сканировании маркированной продукции (например, молочной продукции, упакованной воды, пива в кегах или бутылках), корень проблемы кроется в обработке Тега 1260 (отраслевой реквизит предмета расчета).
При переходе на ФФД 1.2 программа 1С отправляет в кассу сложный XML-пакет, содержащий результаты проверки кода маркировки (КМ), время запроса и уникальный идентификатор сессии проверки. Если прошивка вашей кассы устарела, она просто «не понимает» структуру этого тега и возвращает ошибку 26.
Рассмотрим порядок действий для обновления кассового ПО:
Администрирование -> Подключаемое оборудование, откройте карточку вашей ККТ и обновите интеграционную компоненту драйвера внутри 1С до версии, соответствующей установленному в операционной системе драйверу.После успешного обновления связки «Прошивка кассы — Драйвер ККТ — Компонента 1С» касса начнет корректно разбирать структуру тега 1260, и маркированный товар будет успешно добавляться и фискализироваться в чеке.
---
Еще один распространенный случай возникновения ошибки формата команды — несоответствие параметров налогообложения, отправляемых из 1С, настройкам самого фискального регистратора — для этого есть автоматическое разделение чека по системам налогообложения.
Касса отвергнет чек, если:
Для исправления ситуации выполним проверку настроек:
---
При написании собственных доработок или анализе кода конфигурации в отладчике важно понимать, в какой момент происходит вызов исключения — поможет инструмент для пошаговой отладки кода. БПО формирует структуру данных чека и передает ее в драйвер. Если драйвер возвращает ошибку выполнения, срабатывает следующий механизм:
Попытка
// Формирование XML-пакета чека и отправка его на фискализацию
РезультатОперации = ПодключаемоеОборудованиеВызовСервера.СформироватьЧек(ПараметрыПодключения, ДанныеЧека);
Если Не РезультатОперации.Результат Тогда
// Если драйвер вернул ошибку, формируем текст для вызова исключения
ТекстОшибки = РезультатОперации.ОписаниеОшибки;
ЗаголовокОшибки = НСтр("ru = 'При печати чека произошла ошибка.'");
ВызватьИсключение(ЗаголовокОшибки, КатегорияОшибки.ОшибкаКонфигурации, "PayDesk.error", ТекстОшибки);
КонецЕсли;
Исключение
// Обработка системных ошибок и запись в журнал регистрации
ЗаписатьВЖурналРегистрации("Касса.ОшибкаПечатиЧека", УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
Если при отладке вы попадаете в данный блок кода, обратите внимание на содержимое переменной ДанныеЧека. Проанализировав структуру XML, вы сможете точно локализовать, какой именно тег (адрес, наименование контрагента или отраслевой реквизит маркировки) содержит некорректно заполненные данные.
---
Если на одной из касс вашего сетевого магазина (РИБ) или на локальном рабочем месте внезапно возникла ошибка «Неверный формат команды (код 26)», воспользуйтесь следующим экспресс-алгоритмом:
Магазины (измените название, запишите, верните название обратно, запишите снова).Выполнение этих рекомендаций позволит быстро вернуть кассовое место в штатный режим работы и избежать простоев на кассовой зоне.