При работе с торговым оборудованием в устаревших конфигурациях, таких как 1С:Управление торговлей 10.3, специалисты часто сталкиваются с аппаратными ошибками ККТ. Одной из наиболее неприятных является ошибка «0x3439» (Ошибка формата передачи ФН). Проблема проявляется при попытке пробить чек возврата (как по безналичному расчету, так и наличными), в то время как обычные продажи проходят без нареканий. Разберем подробно, почему возникает эта ситуация и как её исправить, используя современные требования ФФД.
Ошибка формата передачи означает, что данные, которые 1С отправляет в драйвер ККТ, не соответствуют ожидаемой структуре, заложенной в прошивке кассового аппарата или фискального накопителя. Проанализируем основные факторы, вызывающие этот сбой:
Прежде чем вносить изменения в код или настройки, нам необходимо увидеть, какой именно XML-пакет 1С отправляет на кассу. Для этого выполним следующие действия:
%AppData%\Atol\drivers10\logs\fptr10.log).В логе найдем строку <Positions>. Проанализируем структуру. Если мы увидим позиции без тега MeasureOfQuantity (мера количества), значит, проблема именно в несовместимости обработки обслуживания с ФФД 1.2.
Часто проблема кроется в документе ОплатаОтПокупателяПлатежнойКартой. Разберем ситуацию: при возврате «не в день продажи» 1С формирует пакет данных, где вид оплаты должен жестко соответствовать настройкам в таблицах ККТ. Посмотрим на типовой фрагмент кода в обработке ATOL_KKT_10.epf, отвечающий за типы оплаты:
// Пример формирования структуры оплаты в обработке
ОбъектДрайвера.type = 1; // 1 - Наличные
Если ВидОплаты = Перечисления.ВидыОплатЧекаККМ.ПлатежнаяКарта Тогда
ОбъектДрайвера.type = 3; // В драйвере 10.x индекс может отличаться
КонецЕсли;
Проверим в «Тесте драйвера» (раздел «Параметры ККТ» -> «Типы оплаты»), какой индекс присвоен безналичному расчету. Если в 1С жестко прописан индекс 3, а в кассе это индекс 1, необходимо либо изменить настройки в кассе, либо подправить код в обработке обслуживания.
Если диагностика лога подтвердила отсутствие меры количества, нам необходимо модифицировать внешнюю обработку обслуживания. Найдем в модуле обработки функцию СформироватьXMLПакетДляЧека (название может варьироваться в зависимости от версии). Нам нужно убедиться, что для каждой товарной позиции передается код единицы измерения.
Рассмотрим пример добавления тега вручную в XML-структуру:
// Добавляем атрибут меры количества для ФФД 1.2
ЗаписьXML.ЗаписатьАтрибут("MeasureOfQuantity", "0"); // 0 - это шт. (согласно справочнику ФФД)
// Где 0 - штуки, 10 - граммы, 11 - килограммы и т.д.
Важно помнить, что в конфигурации 10.3.53.2 поддержка ФФД 1.2 еще не была доведена до автоматизма. Рекомендуем скачать более свежую версию обработки ATOL_KKT_10.epf из последних релизов 10.3 (например, 10.3.75+) и подключить её через справочник «Торговое оборудование». Для этой задачи также подойдёт готовая обработка обслуживания ККТ Атол с поддержкой ФФД 1.2.
При использовании документа РКО или Оплата от покупателя платежной картой для возврата, система пытается передать признак способа расчета. Выясним причину ошибки в этом контексте: для возврата товара, проданного ранее, должен передаваться признак FullSettlement (Полный расчет), а не аванс.
Проанализируем ситуацию: если в документе 1С не указан документ-основание (чек продажи), обработка может некорректно заполнить признак способа расчета, что приведет к ошибке 0x3439. Убедитесь, что в XML-пакете присутствует корректный атрибут PaymentMethod. Для корректного формирования чеков возврата из кассовых ордеров с номенклатурой документа-основания можно использовать обработку печати кассового чека из РКО.
Чтобы окончательно исключить аппаратную поломку ФН, попробуем пробить «Чек возврата прихода» напрямую через утилиту АТОЛ:
Если чек вышел — проблема исключительно на стороне 1С (формирование XML). Если же и здесь возникла ошибка 0x3439 — проблема в прошивке ККТ или версии ФН, и требуется обращение в сервисный центр для обновления ПО кассы.
Важное примечание: Использование драйвера версии 10.5 в 2024 году является критически устаревшим. Для стабильной работы с современными фискальными накопителями (ФН-М) и маркировкой настоятельно рекомендуем обновить драйвер до версии 10.9.x или 10.10.x, предварительно проверив совместимость с версией платформы 1С.
Мы рассмотрели методику поиска и устранения ошибки формата передачи ФН. В большинстве случаев в 1С:УТ 10.3 проблема решается обновлением обработки ATOL_KKT_10.epf до актуальной версии или ручной коррекцией XML-пакета в части передачи обязательных тегов ФФД 1.2. Помните, что детальный анализ fptr10.log — это 90% успеха в решении проблем с торговым оборудованием.