Как исправить ошибку ККТ «ФН 231» при возврате товара не в день покупки в 1С:Управление торговлей 10.3

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

При работе с торговым оборудованием в конфигурации «1С:Управление торговлей 10.3» (особенно на релизах линейки 10.3.50.х и выше) пользователи часто сталкиваются с неприятной ситуацией. Продажи и возвраты товаров, оформленные в день покупки, проходят через фискальный регистратор абсолютно штатно. Однако стоит попытаться сделать возврат товара в другой день, как касса (например, популярные модели Атол 30Ф) наотрез отказывается печатать чек и выдает ошибку: «ФН 231» (или в некоторых драйверах «Некорректное значение параметров команды ФН»).

В этой статье мы подробно разберем, почему возникает данная ошибка, проанализируем внутренние механизмы взаимодействия 1С с фискальным накопителем и рассмотрим пошаговые решения проблемы — от простых пользовательских настроек до исправления программного кода в конфигураторе.

---

Выясняем причину: почему ошибка ФН 231 возникает именно при возврате в другой день?

Официальная расшифровка ошибки ФН 231 означает, что фискальный накопитель ККТ получил команду, параметры которой не соответствуют правилам или текущим настройкам самого накопителя. В 99% случаев при работе с 1С эта ошибка сигнализирует о несоответствии системы налогообложения (СНО).

Давайте проанализируем разницу в поведении программы при двух сценариях возврата:

  1. Возврат «день в день» оформляется через интерфейс розничных продаж с помощью документа Чек ККМ (с видом операции «Чек на возврат»). В этом случае программа использует прямой алгоритм фискализации розничной смены. Она обращается к настройкам розничной точки, считывает правильную СНО (например, ЕНВД или УСН) и корректно передает ее в кассовый аппарат.
  2. Возврат в последующие дни оформляется по классической оптово-розничной схеме. Сначала создается документ Возврат товара от покупателя, а затем на его основании пробивается чек (либо через Расходный кассовый ордер, либо непосредственно из формы возврата). В этот момент типовой код 1С начинает использовать другие механизмы формирования XML-пакета для кассы. Из-за ошибок в логике обновленных релизов программа не может корректно определить СНО организации для этой операции и отправляет на кассу пустую СНО или значение по умолчанию — ОСНО (Общая система налогообложения), передавая параметр TaxVariant="0".

Если ваша касса зарегистрирована только под спецрежим (например, УСН «Доход минус расход» или ЕНВД), фискальный накопитель блокирует попытку пробить чек с ОСНО и возвращает ошибку ФН 231. Нам нужно заставить программу передавать корректный признак СНО.

---

Решение 1: Проверка и настройка типа склада

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

  1. Перейдем в справочник «Склады» (Места хранения).
  2. Найдем склад, который указан в документе Возврат товара от покупателя.
  3. Убедимся, что тип этого склада установлен как «Розничный» (или «НТТ»), а не «Оптовый». Если склад оптовый, 1С по умолчанию считает, что операция должна проходить по ОСНО, и отправляет неверный параметр СНО в кассу.
  4. Попробуем провести тестовый возврат после изменения типа склада.

---

Решение 2: Исправление «залипших» настроек СНО в Учетной политике

Иногда пользователи пытаются решить проблему «в лоб» — заходят в учетную политику и начинают менять флаги систем налогообложения. Это может привести к тому, что настройки «залипают»: например, принудительно включается УСН, а вернуть обратно ЕНВД или совмещение режимов стандартным способом через форму не получается.

Если вы столкнулись с блокировкой интерфейса настроек налогообложения, выполните следующие действия:

  1. Не пытайтесь вручную удалять или перезаписывать элементы в регистре сведений УчетнаяПолитикаНалоговыйУчет напрямую, если форма заблокирована.
  2. Воспользуйтесь встроенным механизмом — «Стартовый помощник». Он позволяет сбросить некорректные связи параметров конфигурации и заново по шагам определить структуру налогообложения вашей компании.
  3. Запустите Стартовый помощник, перейдите в раздел настройки параметров учета и СНО, аккуратно укажите нужные флаги (например, ЕНВД) и завершите работу помощника. Настройки успешно перезапишутся, и касса снова начнет выводить на чеках правильную СНО.

---

Решение 3: Исправление кода формирования XML-чека в Конфигураторе (для программистов)

Если склады настроены верно, а ошибка 231 при возвратах прошлых дней все равно сохраняется, дело в ошибке типового кода 1С, который при фискализации документов возврата не подтягивает СНО из учетной политики организации. Рассмотрим, как исправить это программно.

Нам необходимо принудительно подставить верный код СНО в пакет XML, отправляемый на ККТ. Разберем этот процесс по шагам:

  1. Откроем базу в режиме «Конфигуратор».
  2. Найдем общий модуль, отвечающий за интеграцию с торговым оборудованием. В зависимости от точного релиза вашей конфигурации УТ 10.3 это может быть общий модуль МенеджерОборудованияВызовСервера или МенеджерОборудованияКлиентСервер.
  3. Найдем функцию, которая занимается формированием XML-пакета для фискализации чека. Обычно она называется ПолучитьXMLПакетДляФискализацииЧека (или ПолучитьКодСНОККТ).
  4. Проанализируем место, где переменной СНО присваивается значение. Нам нужно добавить условие: если СНО определилась неверно (или передается 0 / пустое значение), программа должна принудительно подставить код вашей реальной системы налогообложения.

Ниже приведен пример корректировки кода, выполняющей подмену пустой СНО на нужную систему налогообложения:


// Принудительная корректировка системы налогообложения для избежания ошибки ФН 231
Если Не ЗначениеЗаполнено(ПараметрыЧека.СистемаНалогообложения) Или ПараметрыЧека.СистемаНалогообложения = 0 Тогда
    // Коды систем налогообложения для передачи в драйвер ККТ:
    // 0 - ОСН
    // 1 - УСН Доход
    // 2 - УСН Доход-Расход
    // 3 - ЕНВД
    // 4 - ЕСХН
    // 5 - Патент
    
    // Подставим, например, ЕНВД (код 3) или УСН Доход-Расход (код 2)
    ПараметрыЧека.СистемаНалогообложения = 3; 
КонецЕсли;

После внесения изменений сохраним конфигурацию и выполним отладку. Теперь при печати чека из документа возврата программа гарантированно передаст валидный код СНО, и фискальный накопитель успешно запишет операцию.

---

Решение 4: Использование внешних обработок фискализации

Если вы не хотите вносить изменения в типовую конфигурацию (чтобы не усложнять последующие обновления), или если конфигурация находится на поддержке без возможности редактирования, отличным выходом будет использование внешних обработок обслуживания ККТ.

Существуют альтернативные и доработанные сообществом обработки обслуживания драйверов ККТ (например, для драйверов АТОЛ 10.х). Они подключаются как внешние печатные формы или внешние обработки обработки оборудования:

---

Резюме

Мы проанализировали проблему возникновения ошибки ФН 231 в конфигурации 1С:Управление торговлей 10.3 при возвратах товаров не в день покупки. В основе этой ошибки лежит некорректная передача СНО обновленными механизмами конфигурации при работе по оптовой схеме возвратов. Использование настроек розничного склада, Стартового помощника для сброса параметров СНО, точечное исправление кода в общем модуле или подключение внешней обработки фискализации позволяют быстро и надежно вернуть кассу в штатный режим работы.

← На главную