Как исправить ошибку ККТ 0x3439 (ошибка формата передачи ФН) при оформлении возврата в 1С:Управление торговлей 10.3

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

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

Анализируем причины возникновения ошибки 0x3439

Ошибка формата передачи означает, что данные, которые 1С отправляет в драйвер ККТ, не соответствуют ожидаемой структуре, заложенной в прошивке кассового аппарата или фискального накопителя. Проанализируем основные факторы, вызывающие этот сбой:

  1. Переход на ФФД 1.2: Если ваша касса работает в режиме ФФД 1.2 (что обязательно для маркировки), фискальный накопитель требует обязательного наличия определенных тегов, которых в старых версиях УТ 10.3 попросту нет в коде формирования XML.
  2. Отсутствие тега 2108: Это тег «Мера количества предмета расчета». В формате 1.2 он стал обязательным. Если обработка обслуживания 1С его не передает, ФН блокирует операцию.
  3. Несоответствие типов оплаты: В 10-й версии драйверов АТОЛ изменилась нумерация секций оплаты. Если 1С передает индекс «Электронные», а касса ожидает «Безналичные» (или наоборот), возникает конфликт форматов.
  4. Округление и расхождение сумм: При возврате драйвер сверяет итоговую сумму чека с суммой всех позиций. Если из-за специфики расчета налогов или скидок в 1С возникает разница даже в 1 копейку, ФН выдает ошибку формата.

Шаг 1. Диагностика через лог-файл драйвера АТОЛ

Прежде чем вносить изменения в код или настройки, нам необходимо увидеть, какой именно XML-пакет 1С отправляет на кассу. Для этого выполним следующие действия:

  1. Запустим «Тест драйвера ККТ» (версия 10.x).
  2. Перейдем в раздел «Настройки» и установим флаг «Вести лог».
  3. Повторим попытку пробития чека возврата из 1С:УТ 10.3 до появления ошибки.
  4. Откроем файл лога (обычно находится по пути %AppData%\Atol\drivers10\logs\fptr10.log).

В логе найдем строку <Positions>. Проанализируем структуру. Если мы увидим позиции без тега MeasureOfQuantity (мера количества), значит, проблема именно в несовместимости обработки обслуживания с ФФД 1.2.

Шаг 2. Проверка соответствия типов оплаты

Часто проблема кроется в документе ОплатаОтПокупателяПлатежнойКартой. Разберем ситуацию: при возврате «не в день продажи» 1С формирует пакет данных, где вид оплаты должен жестко соответствовать настройкам в таблицах ККТ. Посмотрим на типовой фрагмент кода в обработке ATOL_KKT_10.epf, отвечающий за типы оплаты:


// Пример формирования структуры оплаты в обработке
ОбъектДрайвера.type = 1; // 1 - Наличные
Если ВидОплаты = Перечисления.ВидыОплатЧекаККМ.ПлатежнаяКарта Тогда
    ОбъектДрайвера.type = 3; // В драйвере 10.x индекс может отличаться
КонецЕсли;

Проверим в «Тесте драйвера» (раздел «Параметры ККТ» -> «Типы оплаты»), какой индекс присвоен безналичному расчету. Если в 1С жестко прописан индекс 3, а в кассе это индекс 1, необходимо либо изменить настройки в кассе, либо подправить код в обработке обслуживания.

Шаг 3. Решение проблемы с тегом 2108 (Мера количества)

Если диагностика лога подтвердила отсутствие меры количества, нам необходимо модифицировать внешнюю обработку обслуживания. Найдем в модуле обработки функцию Сформировать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.

Шаг 4. Отработка возврата «Не в день продажи»

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

Проанализируем ситуацию: если в документе 1С не указан документ-основание (чек продажи), обработка может некорректно заполнить признак способа расчета, что приведет к ошибке 0x3439. Убедитесь, что в XML-пакете присутствует корректный атрибут PaymentMethod. Для корректного формирования чеков возврата из кассовых ордеров с номенклатурой документа-основания можно использовать обработку печати кассового чека из РКО.

Шаг 5. Тестирование через «Тест драйвера ККТ»

Чтобы окончательно исключить аппаратную поломку ФН, попробуем пробить «Чек возврата прихода» напрямую через утилиту АТОЛ:

  1. Откроем «Тест драйвера», перейдем в раздел «Чек».
  2. Выберем тип чека «Возврат прихода».
  3. Добавим товарную позицию вручную, указав цену, количество и ставку НДС.
  4. Нажмем «Сформировать позицию», а затем «Закрыть чек» с типом оплаты «Безналичными».

Если чек вышел — проблема исключительно на стороне 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% успеха в решении проблем с торговым оборудованием.

← На главную