Как исправить ошибку «Некорректная СНО» (тег 1055) при пробитии чека ККМ в 1С:Управление торговлей 11.4?

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

При работе с торговым оборудованием в среде 1С программисты и системные администраторы часто сталкиваются со специфическими ошибками интеграции. Одна из наиболее распространенных и неприятных проблем — ошибка «Некорректная СНО» при попытке пробить фискальный чек. Особенно остро эта проблема проявляется на кассах семейства АТОЛ (например, АТОЛ 50Ф, 25Ф, 30Ф) с обновленными прошивками (включая версию 7020 и выше) в конфигурации 1С:Управление торговлей 11.4 при совмещении нескольких систем налогообложения (например, УСН и ЕНВД или патентной системы).

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

---

Почему возникает ошибка «Некорректная СНО» (тег 1055)?

Для начала выясним физическую природу ошибки. Согласно требованиям формата фискальных данных (ФФД 1.05 и ФФД 1.2), реквизит «Система налогообложения» (тег 1055) является строго обязательным для передачи в каждом фискальном документе. Если касса зарегистрирована только под одну СНО, то ККТ, как правило, автоматически подставляет ее при печати чека, даже если программа 1С передала пустой тег.

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

Проанализируем основные причины сбоя:

  1. Сброс настроек ККТ после обновления прошивки. При обновлении прошивки кассы (например, на версию 7020 для поддержки новых ставок НДС и ФФД) внутренние таблицы ККТ часто сбрасываются к заводским параметрам. При этом настройки совмещения СНО могут оказаться неактивными.
  2. Проблемы устаревшего драйвера DTO 9.x. Использование старых версий драйверов АТОЛ (в частности, 9.12.3 и аналогичных) приводит к тому, что XML-пакет, формируемый платформой 1С, парсится некорректно, и тег 1055 просто теряется при отправке в кассу.
  3. Несоответствие кодов СНО в 1С и драйвере АТОЛ. В коде конфигурации 1С и в драйвере ККТ коды систем налогообложения могут отличаться (числовые значения от 0 до 5 против битовых масок АТОЛ).
  4. Ошибки в настройках учетной политики складов в 1С. Программа не может корректно определить, к какой СНО относится продаваемый товар, из-за неверной привязки складов и касс.

---

Шаг 1: Проверка и настройка параметров СНО на стороне 1С:УТ 11.4

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

1. Карточка Организации. Перейдем в карточку нашей организации и откроем историю изменения учетной политики. Убедимся, что там указана основная система налогообложения (например, УСН «Доходы минус расходы»).

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

3. Справочник «Кассы ККМ». Наша фискальная касса должна быть жестко привязана к розничному складу, на котором применяется соответствующий особый режим. Если чек бьется из документа «Чек ККМ», система определяет СНО именно по складу, привязанному к этой кассе.

Важное замечание: Если вы пытаетесь пробить чек не из специализированного рабочего места кассира (РМК), а, например, на основании документа «Реализация товаров и услуг» или «Приходный кассовый ордер», система 1С может по умолчанию попытаться взять СНО из общей учетной политики организации, проигнорировав настройки склада. Это приведет к конфликту СНО в кассе и документе.

---

Шаг 2: Обновление драйвера торгового оборудования на DTO 10

Использование старой 9-й версии драйвера АТОЛ (DTO 9) часто становится непреодолимым препятствием. Рассмотрим, почему это происходит. Драйверы 9-й серии используют устаревшие механизмы взаимодействия с библиотекой подключаемого оборудования 1С (БПО). В результате тег TaxVariant, даже будучи заполненным в 1С, передается в драйвер в неподдерживаемом формате.

Рекомендуем выполнить переход на современную 10-ю версию драйвера (DTO 10):

  1. Скачаем актуальную версию драйвера ККТ АТОЛ 10.х с официального сайта производителя.
  2. Установим утилиту на рабочее место, где подключена касса.
  3. В конфигурации 1С:УТ 11.4 перейдем в раздел «Администрирование» — «Подключаемое оборудование».
  4. Откроем карточку нашей кассы и заменим обработчик драйвера на актуальный: «ATOЛ:ККТ с передачей данных в ОФД (ФФД 1.2 / 1.05) 10.Х».
  5. Выполним тест устройства. Драйвер 10-й версии использует JSON-задания для кассы, где параметры СНО передаются значительно стабильнее и прозрачнее.

---

Шаг 3: Настройка СНО по умолчанию в самой ККТ (Обходной маневр)

Если вам срочно нужно возобновить продажи, а времени на переписывание кода конфигурации нет, можно применить надежный обходной путь — настроить СНО по умолчанию на уровне самой кассы. В этом случае, если ККТ получит от 1С пустой тег 1055, она не выдаст ошибку, а автоматически подставит выбранную СНО.

Разберем по шагам, как это сделать:

  1. Закроем программу 1С, чтобы освободить порт подключения к кассе.
  2. Запустим утилиту «Тест драйвера ККТ» (версии 10.х).
  3. Установим флаг «Включено» в правом верхнем углу для связи с аппаратом.
  4. Перейдем в раздел «Свойства», затем откроем «Параметры ККТ».
  5. Авторизуемся под учетной записью системного администратора (пароль по умолчанию обычно 30).
  6. Найдем в дереве настроек раздел «Налоги» или «СНО».
  7. Убедимся, что галочками отмечены все системы налогообложения, под которые фискализирована касса.
  8. Найдем параметр «СНО по умолчанию» и установим значение той СНО, по которой проходит основной поток розничных чеков (например, ЕНВД).
  9. Нажмем кнопку «Сохранить и записать», закроем тест драйвера и проверим пробитие чека из 1С.

---

Шаг 4: Программный анализ и доработка кода 1С

Если административные меры не помогли, нам придется заглянуть «под капот» конфигурации 1С и разобраться, как именно система формирует структуру параметров для ККТ. Проанализируем программную логику работы БПО.

При формировании XML-пакета для фискализации чека 1С обращается к общему модулю МенеджерОборудованияКлиентСервер и его функции ПараметрыОперацииФискализацииЧека(). Именно здесь заполняется структура данных, отправляемая в ККТ.

Посмотрим на пример функции, которая отвечает за сопоставление перечисления систем налогообложения в 1С с числовыми кодами для ККТ:


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

Выясним причину возможного расхождения кодов. Некоторые старые релизы драйверов АТОЛ и прошивок ККТ ожидали передачу СНО не в виде порядковых номеров от 0 до 5 (стандарт ФФД), а в виде битовой маски протокола АТОЛ:

Если при отладке в процедуре ПробитьЧек вы видите, что в параметр TaxVariant (или СистемаНалогообложения) передается корректная цифра 3 (для ЕНВД), но ККТ все равно возвращает ошибку некорректной СНО, попробуйте временно переопределить передаваемый код на битовую маску АТОЛ. В частности, для ЕНВД попробуйте передать значение 8, а для УСН «Доходы-расходы» — значение 4.

Для локализации проблемы вы можете использовать отладчик в общем модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент в процедуре ФискализацияЧека. Проверьте структуру ДанныеЧека непосредственно перед вызовом метода драйвера. Если поле TaxVariant пустое или содержит непредусмотренное ККТ значение, внесите соответствующие корректировки в коде формирования параметров.

---

Резюме и рекомендации

Мы детально изучили проблему некорректной СНО при совмещении налоговых режимов на кассах АТОЛ в УТ 11.4. Подведем краткий итог по методам решения:

  1. Всегда начинайте с проверки настроек розничных складов и их связей с кассами ККМ в 1С.
  2. Обязательно обновите драйвер ККТ до 10-й версии (DTO 10), так как 9-я версия работает некорректно с современными прошивками ФФД 1.05/1.2.
  3. Для быстрой стабилизации работы настройте СНО по умолчанию непосредственно в параметрах ККТ через утилиту Теста драйвера.
  4. При необходимости скорректируйте сопоставление кодов СНО в функции ПолучитьКодТипаСистемыНалогообложенияККТ конфигурации 1С под требования битовых масок вашего протокола ККТ.
← На главную