При работе с торговым оборудованием в конфигурации «1С:Управление торговлей 10.3» (особенно на релизах линейки 10.3.50.х и выше) пользователи часто сталкиваются с неприятной ситуацией. Продажи и возвраты товаров, оформленные в день покупки, проходят через фискальный регистратор абсолютно штатно. Однако стоит попытаться сделать возврат товара в другой день, как касса (например, популярные модели Атол 30Ф) наотрез отказывается печатать чек и выдает ошибку: «ФН 231» (или в некоторых драйверах «Некорректное значение параметров команды ФН»).
В этой статье мы подробно разберем, почему возникает данная ошибка, проанализируем внутренние механизмы взаимодействия 1С с фискальным накопителем и рассмотрим пошаговые решения проблемы — от простых пользовательских настроек до исправления программного кода в конфигураторе.
---
Официальная расшифровка ошибки ФН 231 означает, что фискальный накопитель ККТ получил команду, параметры которой не соответствуют правилам или текущим настройкам самого накопителя. В 99% случаев при работе с 1С эта ошибка сигнализирует о несоответствии системы налогообложения (СНО).
Давайте проанализируем разницу в поведении программы при двух сценариях возврата:
Чек ККМ (с видом операции «Чек на возврат»). В этом случае программа использует прямой алгоритм фискализации розничной смены. Она обращается к настройкам розничной точки, считывает правильную СНО (например, ЕНВД или УСН) и корректно передает ее в кассовый аппарат.Возврат товара от покупателя, а затем на его основании пробивается чек (либо через Расходный кассовый ордер, либо непосредственно из формы возврата). В этот момент типовой код 1С начинает использовать другие механизмы формирования XML-пакета для кассы. Из-за ошибок в логике обновленных релизов программа не может корректно определить СНО организации для этой операции и отправляет на кассу пустую СНО или значение по умолчанию — ОСНО (Общая система налогообложения), передавая параметр TaxVariant="0".Если ваша касса зарегистрирована только под спецрежим (например, УСН «Доход минус расход» или ЕНВД), фискальный накопитель блокирует попытку пробить чек с ОСНО и возвращает ошибку ФН 231. Нам нужно заставить программу передавать корректный признак СНО.
---
Прежде чем переходить к изменению кода, необходимо проверить базовые настройки учета, так как программа определяет применимую СНО в том числе по типу склада, с которого проводится операция. Выполним следующие шаги:
Возврат товара от покупателя.---
Иногда пользователи пытаются решить проблему «в лоб» — заходят в учетную политику и начинают менять флаги систем налогообложения. Это может привести к тому, что настройки «залипают»: например, принудительно включается УСН, а вернуть обратно ЕНВД или совмещение режимов стандартным способом через форму не получается.
Если вы столкнулись с блокировкой интерфейса настроек налогообложения, выполните следующие действия:
УчетнаяПолитикаНалоговыйУчет напрямую, если форма заблокирована.---
Если склады настроены верно, а ошибка 231 при возвратах прошлых дней все равно сохраняется, дело в ошибке типового кода 1С, который при фискализации документов возврата не подтягивает СНО из учетной политики организации. Рассмотрим, как исправить это программно.
Нам необходимо принудительно подставить верный код СНО в пакет XML, отправляемый на ККТ. Разберем этот процесс по шагам:
МенеджерОборудованияВызовСервера или МенеджерОборудованияКлиентСервер.ПолучитьXMLПакетДляФискализацииЧека (или ПолучитьКодСНОККТ).Ниже приведен пример корректировки кода, выполняющей подмену пустой СНО на нужную систему налогообложения:
// Принудительная корректировка системы налогообложения для избежания ошибки ФН 231
Если Не ЗначениеЗаполнено(ПараметрыЧека.СистемаНалогообложения) Или ПараметрыЧека.СистемаНалогообложения = 0 Тогда
// Коды систем налогообложения для передачи в драйвер ККТ:
// 0 - ОСН
// 1 - УСН Доход
// 2 - УСН Доход-Расход
// 3 - ЕНВД
// 4 - ЕСХН
// 5 - Патент
// Подставим, например, ЕНВД (код 3) или УСН Доход-Расход (код 2)
ПараметрыЧека.СистемаНалогообложения = 3;
КонецЕсли;
После внесения изменений сохраним конфигурацию и выполним отладку. Теперь при печати чека из документа возврата программа гарантированно передаст валидный код СНО, и фискальный накопитель успешно запишет операцию.
---
Если вы не хотите вносить изменения в типовую конфигурацию (чтобы не усложнять последующие обновления), или если конфигурация находится на поддержке без возможности редактирования, отличным выходом будет использование внешних обработок обслуживания ККТ.
Существуют альтернативные и доработанные сообществом обработки обслуживания драйверов ККТ (например, для драйверов АТОЛ 10.х). Они подключаются как внешние печатные формы или внешние обработки обработки оборудования:
TaxVariant перед отправкой команды на порт кассы.---
Мы проанализировали проблему возникновения ошибки ФН 231 в конфигурации 1С:Управление торговлей 10.3 при возвратах товаров не в день покупки. В основе этой ошибки лежит некорректная передача СНО обновленными механизмами конфигурации при работе по оптовой схеме возвратов. Использование настроек розничного склада, Стартового помощника для сброса параметров СНО, точечное исправление кода в общем модуле или подключение внешней обработки фискализации позволяют быстро и надежно вернуть кассу в штатный режим работы.