При интеграции современного кассового оборудования с устаревшими или сильно доработанными конфигурациями часто возникает ситуация, когда касса отказывается пробивать чек, выдавая специфическую ошибку. Одной из самых распространенных является ошибка «ФН 231». В этой статье мы подробно разберем, почему она возникает при работе ККТ АТОЛ 50ф с конфигурацией «Управление торговлей 10.3», и проанализируем шаги по её устранению.
Прежде всего, выясним причину возникновения данной ошибки. В протоколе работы фискальных накопителей код 231 означает «Неверная СНО в команде». Это происходит в тот момент, когда 1С отправляет на кассовый аппарат команду на фискализацию чека, указывая в ней систему налогообложения (Тег 1055), которая не была активирована в самой ККТ при её регистрации.
Например, если ваша касса зарегистрирована только на ЕНВД (или Патент), а 1С передает код «Общая СНО», ККТ заблокирует операцию и выдаст ошибку 231. Рассмотрим подробнее маппинг кодов СНО в драйверах АТОЛ 10.х:
Если в логах драйвера вы видите передачу значения TaxationSystem = 1, а ваша организация работает на ЕНВД (код 8), касса закономерно вернет ошибку.
Проанализируем программную среду. Использование старых версий 1С и драйверов — основная причина некорректной передачи тегов. В Платформе 5.0 (прошивки АТОЛ 10-8346 и выше) требования к заполнению тегов стали значительно строже.
ATOLkkt.epf. Рекомендуется использовать версию 3.01 и выше. Именно эта обработка отвечает за «перевод» данных из документов 1С в команды понятные драйверу.Если после обновления ошибка «ККТ не зарегистрирована с указанной СНО» сохраняется, проверим настройки в самой программе. В УТ 10.3 СНО может определяться в нескольких местах. Пройдем по ним по порядку:
Выясним, какие именно СНО активны в вашем аппарате. Для этого воспользуемся «Утилитой тест драйвера»:
Если в ККТ прошита только одна СНО, а 1С пытается передать другую — мы получим ошибку 231. Если данные в ККТ не соответствуют реальности, потребуется перерегистрация кассы без замены ФН (смена параметров регистрации).
Если все настройки в интерфейсе выполнены верно, но 1С продолжает отправлять некорректный тег 1055, необходимо внести изменения в код обработки ATOLkkt.epf. Рассмотрим пример того, как найти и поправить передачу СНО.
В модуле обработки найдем функцию, которая формирует XML-строку для драйвера (обычно это СформироватьXMLПакетДляЧека). Нам нужно убедиться, что атрибут TaxationSystem заполняется правильно.
Пример кода для принудительной установки СНО (ЕНВД = 8):
// В функции подготовки данных для драйвера АТОЛ 10
Если ПараметрыЧека.СистемаНалогообложения = Перечисления.ТипыСистемНалогообложения.ЕНВД Тогда
СНО_Для_ККТ = 8;
ИначеЕсли ПараметрыЧека.СистемаНалогообложения = Перечисления.ТипыСистемНалогообложения.ОСН Тогда
СНО_Для_ККТ = 1;
КонецЕсли;
// Запись в структуру XML
ЗаписатьАтрибут("TaxationSystem", Формат(СНО_Для_ККТ, "ЧГ=0"));
Проанализируем ситуацию: в некоторых случаях 1С передает индекс перечисления (0, 1, 2...), а драйвер ожидает конкретное битовое значение. В Платформе 5.0 малейшее расхождение ведет к отказу в печати. Если вы видите, что 1С передает TaxationSystem="0", это часто интерпретируется драйвером как попытка использовать ОСН, что и вызывает ошибку 231.
В Сообщении 16 автор упоминает, что ошибка возникает при пробитии чека из ПКО (Приходного кассового ордера). Важно понимать, что в УТ 10.3 логика печати из ПКО отличается от «Чека ККМ». ПКО — это финансовый документ, который может не содержать товарного состава. В этом случае 1С пытается определить СНО исходя из настроек учетной политики «по умолчанию».
Рекомендуем проверить процедуру ПодготовитьДанныеДляПечатиЧека в модуле документа ПКО. Убедитесь, что в структуру ПараметрыЧека передается правильное значение СНО. Если оно не заполнено, добавьте инициализацию:
// Пример заполнения СНО для документа ПКО перед вызовом обработки
Если Не ЗначениеЗаполнено(СтруктураПараметров.СистемаНалогообложения) Тогда
// Получаем СНО из учетной политики организации
СтруктураПараметров.Вставить("СистемаНалогообложения", ОбщегоНазначения.ПолучитьСНООрганизации(Объект.Организация, Объект.Дата));
КонецЕсли;
Для решения проблемы «ФН 231» на АТОЛ 50ф в связке с УТ 10.3 необходимо обеспечить синхронность настроек в трех точках: Параметры регистрации ККТ, Учетная политика в 1С и Код обработки обслуживания. В большинстве случаев помогает обновление конфигурации до версии 10.3.58+ и использование актуального драйвера 10-й серии, который умеет корректно транслировать тег 1055 в фискальный накопитель.