При работе с торговыми решениями от компании 1С пользователи часто сталкиваются со сбоями торгового оборудования при обновлении релизов программы. Одной из наиболее распространенных и неприятных проблем является невозможность пробить чек на фискальном регистраторе (ККТ) с выдачей сообщения: «При печати чека произошла ошибка. Чек не напечатан на фискальном устройстве. Дополнительное описание: ККТ не зарегистрирована с указанной системой налогообложения».
Особенно остро эта проблема проявилась у индивидуальных предпринимателей, применяющих патентную систему налогообложения (ПСН), при переходе на релизы ветки «1С:Управление торговлей 11.4» (начиная с релиза 11.4.8.92 и выше). В рамках этой статьи мы подробно разберем, почему возникает данная коллизия, как устроена проверка СНО на уровне платформы и драйверов ККТ, а также рассмотрим практические способы решения этой проблемы для конфигураций различного уровня кастомизации.
Для понимания природы ошибки обратимся к фискальному законодательству (ФЗ-54) и форматам фискальных документов (ФФД). Каждый фискальный накопитель при регистрации кассового аппарата в ФНС программируется на определенный перечень систем налогообложения. При формировании каждого кассового чека программа 1С обязана передавать в ККТ тег 1055 (Применяемая система налогообложения).
Ранее, в более старых релизах «1С:Управление торговлей 11.4» (например, в релизе 11.4.8.73), механизмы взаимодействия с библиотекой подключаемого оборудования (БПО) работали по достаточно мягким алгоритмам. Даже если в настройках учетной политики организации в 1С была указана упрощенная система налогообложения (УСН), а сама касса физически была зарегистрирована на Патент (ПСН) и код патента передавался драйвером по умолчанию, программа успешно закрывала чек. Проверка соответствия СНО между учетной системой и внутренними таблицами ККТ на стороне 1С практически отсутствовала.
Начиная с релиза 11.4.8.92, разработчики фирмы 1С существенно обновили БПО и внедрили жесткий форматно-логический контроль отправляемых данных. Теперь перед отправкой XML-пакета с данными чека на фискальное устройство 1С выполняет следующие действия:
Основная сложность для пользователей УТ 11.4 заключалась в том, что вплоть до релиза 11.4.13 в штатной учетной политике организации ПСН (Патент) попросту отсутствовала в интерфейсе. Разработчики позиционировали программу как оптово-розничное решение для крупных предприятий, где патентный учет не был приоритетным. Предприниматели были вынуждены настраивать кассы на Патент, а в 1С вести учет по УСН. С введением жесткой проверки в БПО эта схема полностью перестала работать.
---
Если ваша компания использует типовую конфигурацию «1С:Управление торговлей» и у вас есть активная подписка 1С:КП (ИТС), самым надежным и легитимным решением будет обновление программы до релиза 11.4.13.46 или более поздних версий (включая всю ветку 11.5/12.x), а для автоматизации этого процесса и создания резервных копий можно использовать программу для фонового архивирования и обновления 1С.
В связи с отменой ЕНВД фирма 1С полностью переработала подсистемы учета налогов в торговых конфигурациях и добавила полноценную поддержку патентной системы налогообложения. Давайте разберем по шагам, как настроить программу после обновления:
После сохранения настроек 1С начнет корректно определять СНО «Патент» при формировании документов продаж и передавать в ККТ соответствующий код СНО (значение 32 в фискальном документе).
---
Если ваша база данных относится к версии ПРОФ, но вы по каким-то причинам не можете оперативно провести обновление на новый релиз (например, из-за большого количества кастомных доработок или сторонних интеграций), выходом станет использование механизма расширений.
Расширение позволяет перехватить процедуру подготовки XML-пакета фискализации перед отправкой на ККТ и принудительно заменить передаваемую систему налогообложения на Патент. Проанализируем пример кода, который необходимо внедрить в модуль расширения, перехватывающий параметры фискализации ККТ:
&Вместо("ПодготовитьДанныеДляФискализацииЧека")
Функция Расш1_ПодготовитьДанныеДляФискализацииЧека(ПараметрыОтправки, ДанныеЧека) Экспорт
// Вызываем оригинальный алгоритм заполнения параметров чека
Результат = ПродолжитьВызов(ПараметрыОтправки, ДанныеЧека);
// Принудительно подменяем систему налогообложения на Патент
// В перечислении ТипыСистемНалогообложенияККТ значение Патент присутствует в метаданных БСП
Если ПараметрыОтправки.Свойство("СистемаНалогообложения") Тогда
ПараметрыОтправки.СистемаНалогообложения = Перечисления.ТипыСистемНалогообложенияККТ.Патент;
КонецЕсли;
// Дополнительно проверяем строки чека на соответствие СНО
Для Каждого СтрокаЧека Из ПараметрыОтправки.ТаблицаСекций Цикл
СтрокаЧека.СистемаНалогообложения = Перечисления.ТипыСистемНалогообложенияККТ.Патент;
КонецЦикла;
Возврат Результат;
КонецФункции
Использование этого метода безопасно для типовой конфигурации, поскольку не требует изменения основной конфигурации на уровне базы данных. Расширение будет корректно работать до момента глобального обновления на релиз со встроенной поддержкой патентов.
---
В случае работы с Базовой версией «1С:Управление торговлей», где использование расширений программно заблокировано, или если конфигурация полностью снята с поддержки и переписана под нужды бизнеса, корректировку придется внести непосредственно в код конфигуратора.
Выясним причину проверки СНО в коде модулей БПО. Нам потребуется найти общий модуль, отвечающий за логику работы с подключаемым оборудованием. Обычно это модуль ПодключаемоеОборудованиеУниверсальныйДрайверКлиент или МенеджерОборудованияВызовСервера (названия могут незначительно отличаться в зависимости от версии встроенной БПО).
Рассмотрим алгоритм внесения изменений:
ТипыСистемНалогообложенияККТ.
// Оригинальный код 1С:
// ВыбраннаяСНО = СтруктураПараметров.СистемаНалогообложенияОрганизации;
// Модифицированный код для принудительного патента:
ВыбраннаяСНО = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.Патент");
Обратите внимание: после внесения этих изменений все чеки, пробиваемые с данного рабочего места 1С, будут уходить на ККТ исключительно со СНО «Патент». Если ваша организация совмещает Патент и УСН (например, продает часть товаров по одному режиму, а часть по другому), данный метод применять нельзя, так как он нарушит фискальный учет по второму режиму налогообложения. Для таких ситуаций подойдёт расширение для разделения чека по системам налогообложения при совмещении УСН и патента.
---
Иногда возникают ситуации, когда СНО в программе настроена абсолютно правильно (например, база уже обновлена до 11.4.13+ или используется расширение), но ошибка все равно продолжает появляться. Это происходит из-за того, что при первом подключении кассового аппарата 1С считывает параметры фискализации и сохраняет их в специальный регистр сведений внутри базы данных. При последующих продажах программа сверяет СНО именно с этим локальным кэшем, не обращаясь к кассе напрямую.
Разберем по шагам, как принудительно обновить параметры ККТ внутри 1С:
После актуализации регистра сведений внутри 1С перезапустите сеанс работы кассира (РМК) и повторите попытку печати чека. Конфликт систем налогообложения будет исчерпан.