При работе с торговым оборудованием в 1С часто возникают ситуации, когда фискальный регистратор (ККТ) корректно работает в одном режиме (например, когда настроена работа с несколькими кассами в РМК), но выдает ошибки в другом (например, при оформлении ПКО). Рассмотрим подробно проблему, с которой сталкиваются пользователи 1С:Розница 2.3 и касс Атол: ошибка с кодом 26 «Неверный формат команды».
Ситуация выглядит следующим образом: кассир или менеджер пытается пробить чек из документа Приходный кассовый ордер (ПКО). Драйвер ККТ возвращает ошибку:
Ошибка 26: Неверный формат команды
При этом, если тот же товар или услугу пробивать через Рабочее место кассира (РМК), чек выходит без проблем. Чтобы исключить влияние человеческого фактора на этапе настройки, иногда полезно предварительно выводить нефискальные чеки на кассе ККМ для обучения персонала — для этого есть печать нефискальных товарных чеков для 1С:Розница. Обновление прошивки ККТ до актуальной версии и обновление драйвера (в данном случае рассматривается ветка драйверов 10.10.x) не устраняют ошибку. Также стоит убедиться, что базовые параметры связи в норме и не требуется коррекция времени на кассах Атол для синхронизации с ПК.
Чтобы понять природу ошибки, нам необходимо проанализировать данные, которые 1С отправляет в кассу. Для этого используются логи драйвера или XML-пакеты, формируемые подсистемой подключаемого оборудования. Сравним пакеты данных (XML), формируемые в РМК и в ПКО.
В ходе диагностики мы выгружаем XML, который метод СформироватьЧек передает в драйвер. Давайте внимательно изучим различия, так как именно в них кроется причина поведения кассы.
Данные чека из РМК (успешная печать):
CheckPackage:
Electronically: Нет
DeviceID: ATOL_KKT_1C_V10_X#1
CalculationSubject="1" (Товар)
MeasureOfQuantity="0" (шт)
CustomerDetail: [Пустой тег или отсутствует]
Данные чека из ПКО (ошибка 26):
CheckPackage:
Electronically: Нет
DeviceID: ATOL_KKT_1C_V10_X#8
CalculationSubject="10" (Платеж/Иное)
MeasureOfQuantity="255" (Единица измерения не указана/Применяется при отсутствии)
SaleLocation="офис Транзит"
CustomerDetail: [Заполненная информация о покупателе, включая ИНН]
Давайте разберем критические отличия, которые мы обнаружили:
Как показала практика и детальный разбор ситуации, наиболее частой причиной ошибки 26 в данном контексте является невалидный ИНН покупателя.
Современные прошивки ККТ Атол (особенно при работе с ФФД 1.05 и 1.2) производят строгую проверку передаваемых тегов. Тег 1228 «ИНН покупателя» проверяется не только на количество цифр (10 или 12), но и на контрольную сумму (алгоритм проверки контрольного числа).
В рассматриваемом случае в базе 1С у контрагента был введен ИНН, который имел верное количество знаков, но являлся вымышленным (набором случайных цифр). 1С при формировании чека из ПКО берет данные из справочника Контрагенты и заполняет структуру CustomerDetail.
Когда драйвер ККТ получает этот пакет, он (или сама касса) проверяет ИНН на валидность. Если проверка не проходит, возвращается универсальная ошибка протокола — Error 26 (Неверный формат команды). Это означает, что данные в команде не соответствуют формату, ожидаемому фискальным накопителем или прошивкой.
Для исправления ошибки необходимо выполнить следующие действия с данными в вашей информационной базе:
Приходный кассовый ордер, из которого не удается пробить чек.Если из-за ошибки чеки не пробивались длительное время, вам могут потребоваться чеки коррекции за период для 1С:Розница 2.3, чтобы привести фискальные данные в соответствие с реальностью. Для пользователей других конфигураций, например УТ 10, может быть актуально массовое создание и фискализация чеков коррекции.
В логах мы заметили использование тега MeasureOfQuantity="255". Это важный момент для касс, работающих по ФФД 1.2.
Если ваша касса прошита под ФФД 1.2, но драйвер или 1С отправляют данные, не соответствующие строгой логике этого формата, также может возникнуть ошибка 26. Значение 255 для меры количества допустимо, но в сочетании с дробным количеством или определенными признаками предмета расчета может вызывать конфликты.
Также обратите внимание на тег SaleLocation (Место расчетов). В проблемном XML было указано значение "офис "Транзит"" (с кавычками внутри). Хотя современные драйверы обычно корректно экранируют спецсимволы, наличие вложенных кавычек или слишком длинного текста (более 256 символов) в адресе расчетов также может приводить к ошибкам формата.
Чтобы избежать подобных проблем в будущем, рекомендуем:
Администрирование -> Подключаемое оборудование -> ККТ с передачей данных -> Параметры -> Журналы.
Ошибка 26 при печати из ПКО в 90% случаев связана с некорректными данными, которые 1С пытается передать в теги покупателя (ИНН или Наименование). В отличие от РМК, где продажа часто обезличена, ПКО передает полные реквизиты контрагента, которые подвергаются строгой валидации на уровне прошивки кассы.