Как исправить ошибку ФН 231 на ККТ Атол 30Ф при печати чеков из 1С

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

При работе с торговым оборудованием, в частности с популярной моделью Атол 30Ф, технические специалисты часто сталкиваются с ситуацией, когда касса отказывается пробивать чек, возвращая ошибку ФН 231. В логах драйвера это событие фиксируется как ResultCode = -4015 с описанием "Некорректное значение параметров команды ФН". Разберем подробно, почему возникает эта проблема и как ее устранить программными и аппаратными средствами.

Причины возникновения ошибки 231

Проанализируем ситуацию: ошибка чаще всего проявляется при использовании формата фискальных данных (ФФД) версии 1.05 и выше. В отличие от старого формата 1.0, протокол 1.05 накладывает жесткие требования к заполнению реквизитов чека. Ошибка 231 буквально означает, что в ККТ передается набор данных, который не соответствует правилам текущего протокола или настройкам самого фискального накопителя.

Рассмотрим основные факторы, провоцирующие сбой:

  1. Отсутствие признака предмета расчета (Тег 1212): Это самая частая причина. Касса «хочет» знать, что именно вы продаете: товар, услугу, работу или подакцизный товар. Если 1С отправляет структуру чека без этого тега, ККТ Атол (особенно на прошивках платформы 2.5, таких как 5199) блокирует операцию.
  2. Несоответствие системы налогообложения (СНО): Если в настройках 1С указана ОСН (Общая система налогообложения), а в чеке передаются параметры, конфликтующие с этой системой, или СНО не была активирована при регистрации ККТ.
  3. Версия драйвера и ревизия интерфейса: Использование драйверов серии 8.х (например, 8.16) в режиме совместимости с ФФД 1.05 иногда приводит к некорректному формированию XML-пакета. Параметр РевизияИнтерфейса, равный 2000, указывает на попытку работать по новому стандарту, но формат данных в самой 1С может оставаться «старым» (упрощенным).

Анализ структуры передаваемого чека

Посмотрим на пример XML-пакета, который формирует типовая конфигурация 1С (например, УТ 10.3) и который вызывает ошибку:


<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
    <Parameters PaymentType="1" TaxVariant="0" CashierName="" CustomerEmail="" CustomerPhone=""/>
    <Positions>
        <FiscalString Name="Забор материала Шт" Quantity="1" Price="1" Amount="1" Department="0" Tax="0"/>
    </Positions>
    <Payments Cash="1" CashLessType1="0" CashLessType2="0" CashLessType3="0"/>
</CheckPackage>

Проанализируем этот код. В блоке FiscalString мы видим наименование, количество, цену и ставку налога. Однако здесь полностью отсутствует указание на тип номенклатуры. Для ФФД 1.05 крайне важно наличие атрибутов, определяющих, является ли позиция товаром или услугой. Поскольку 1С в старых обработках обслуживания может не передавать эти данные в явном виде, касса возвращает ошибку параметров.

Решение №1: Настройка внутренних таблиц ККТ (для услуг)

Если ваша организация занимается исключительно оказанием услуг, мы можем решить проблему «малой кровью», не прибегая к масштабному изменению кода 1С. Мы заставим кассу по умолчанию считать любую переданную позицию «услугой».

Выполним следующие шаги в утилите «Тест драйвера ККМ» (версии 8.х):

  1. Запустите утилиту и перейдите на закладку «Настройка свойств». Проверьте связь с ККТ.
  2. Перейдите на закладку «Программирование».
  3. Нам необходимо отредактировать таблицы параметров. Найдите кнопку «Таблицы».
  4. В открывшемся списке выберите Таблицу №2 «Настройки ККТ».
  5. Найдите Ряд 1, Поле 120. Это поле отвечает за признак предмета расчета по умолчанию.
  6. Установите в этом поле значение 4 (что соответствует типу «Услуга»).
  7. Сохраните изменения и закройте таблицу.

После этой манипуляции ККТ перестанет требовать обязательной передачи тега 1212 в каждом чеке, так как будет подставлять значение «4» автоматически. Это быстрое решение, которое позволяет запустить работу точки в кратчайшие сроки.

Решение №2: Программная передача параметра в драйвер

Разберем ситуацию, когда нам необходимо передавать тип предмета расчета динамически (например, если продаются и товары, и услуги). В этом случае необходимо модифицировать код обработки обслуживания 1С или убедиться, что параметры передаются драйверу корректно.

В объектной модели драйвера Атол за это отвечает свойство ItemType. Перед добавлением позиции чека (методом Registration или при формировании XML) необходимо явно указывать тип. Для услуг код в 1С (при использовании прямого обращения к драйверу) мог бы выглядеть так:


// Пример логики для драйвера 8.х
Драйвер.AttrNumber = 1212; // Номер тега Признак предмета расчета
Драйвер.AttrValue = 4;      // 1 - товар, 4 - услуга
Драйвер.WriteAttribute();

Драйвер.Name = "Забор материала";
Драйвер.Price = 100;
Драйвер.Quantity = 1;
Драйвер.ItemType = 4; // Установка типа предмета расчета
Драйвер.Registration();

Если используется БПО (Библиотека подключаемого оборудования), убедитесь, что в справочнике «Номенклатура» корректно заполнено поле «Тип номенклатуры». Именно из него 1С берет данные для формирования XML-пакета. Для ФФД 1.05 значение должно быть «Услуга» для соответствующих позиций.

Особенности работы на ОСН (Общая система налогообложения)

Выясним причину, почему на ОСН ошибка 231 возникает чаще. При использовании Общей системы налогообложения ККТ жестко контролирует наличие ставок НДС. В приведенном выше примере XML-пакета параметр Tax="0" соответствует ставке НДС 0%. Если ваша организация работает без НДС (но на ОСН) или использует ставку 20%, убедитесь, что код налога в XML соответствует кодам в таблицах ККТ. Неверный индекс налога также вызывает ошибку некорректных параметров команды ФН.

Рекомендации по обновлению

Проанализируем техническое состояние оборудования. Версия прошивки 5199 и драйвер 8.16 относятся к переходному периоду внедрения онлайн-касс. Современные требования законодательства (Маркировка, ФФД 1.2) требуют более свежих версий.

Для стабильной работы рекомендуется:

  1. Перейти на Драйвер ККТ Атол версии 10.х. Он обладает более прозрачной системой диагностики. В 10-й версии драйвера в случае ошибки 231 лог покажет конкретный Bad Tag (номер тега, который вызвал сбой), что значительно упрощает поиск проблемы.
  2. Обновить прошивку ККТ до актуальной (платформа 5.0). В новых прошивках логика обработки тегов ФФД 1.05 и 1.2 реализована более корректно, а интеграция с 1С происходит бесшовно.
  3. В настройках параметров подключения 1С проверить значение «Ревизия интерфейса». Если ваша касса поддерживает ФФД 1.05, это значение должно быть 3000 (для драйвера 10.х) или 2000 (для 8.х), что сигнализирует системе о необходимости использовать расширенный формат обмена данными.

Таким образом, исправление ошибки ФН 231 сводится к приведению данных, передаваемых из 1С, в соответствие с требованиями протокола ФФД 1.05, либо через настройку значений «по умолчанию» в самой кассе, либо через корректировку типа номенклатуры в базе данных.

← На главную