Как передавать правильную систему налогообложения в кассовый чек при совмещении режимов в 1С:Управление торговлей 10.3?

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

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

Разберем причины такого поведения платформы, проанализируем требования законодательства и рассмотрим практические варианты решения проблемы.

Законодательные ограничения и форматы фискальных данных

В соответствии с Федеральным законом № 54-ФЗ и форматами фискальных данных (ФФД):

  1. Реквизит СНО (тег 1055) относится ко всему фискальному чеку, а не к отдельной товарной строке.
  2. В одном чеке разрешено указывать только одну систему налогообложения. Пробивать чек, содержащий одновременно позиции по разным СНО (например, подакцизный товар на ОСН и розничный товар на ЕНВД/Патенте), технически и законодательно запрещено — такие продажи обязательно должны разделяться на два независимых фискальных документа.
  3. Кассовый аппарат требует точного указания СНО, если при регистрации ККТ в ФНС было указано совмещение нескольких систем (тег 1062). Если передать пустое или не зарегистрированное значение, драйвер ККТ выдаст ошибку фискализации.

Почему 1С:УТ 10.3 определяет СНО некорректно

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


Функция СистемаНалогообложения(Организация, ДатаДокумента = Неопределено, ПриоритетныйПорядок = Неопределено) Экспорт
    
    Если ПриоритетныйПорядок <> Неопределено Тогда
        Если ВРег(ПриоритетныйПорядок) = "ЕНВД" Тогда
            Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.ЕНВД");
            Возврат Результат;
        КонецЕсли;
    КонецЕсли;
    
    Если ДатаДокумента = Неопределено Тогда
        ДатаДокумента = ТекущаяДата();
    КонецЕсли;
    Отказ = Ложь;
    УП = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиНалоговыйУчет(ДатаДокумента, Отказ, Организация);
    
    Если Отказ Тогда
        Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.ПустаяСсылка");
    ИначеЕсли УП.СистемаНалогообложения = ПредопределенноеЗначение("Перечисление.СистемыНалогообложения.Общая") Тогда
        Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.ОСН");
    ИначеЕсли УП.СистемаНалогообложения = ПредопределенноеЗначение("Перечисление.СистемыНалогообложения.Упрощенная") Тогда
        Если УП.ОбъектНалогообложенияУСН = ПредопределенноеЗначение("Перечисление.ОбъектыНалогообложенияПоУСН.Доходы") Тогда
            Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.УСНДоход");
        ИначеЕсли УП.ОбъектНалогообложенияУСН = ПредопределенноеЗначение("Перечисление.ОбъектыНалогообложенияПоУСН.ДоходыМинусРасходы") Тогда
            Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.УСНДоходРасход");
        Иначе
            Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.ПустаяСсылка");
        КонецЕсли;
    ИначеЕсли УП.РозничнаяТорговляОблагаетсяЕНВД Тогда
        Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.ЕНВД");
    Иначе
        Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.ПустаяСсылка");
    КонецЕсли;
        
    Возврат Результат;
КонецФункции

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

Вариант 1. Программная доработка подсистемы фискализации (Рекомендуемый)

Рассмотрим доработку механизма формирования XML-пакета для передачи в драйвер ККТ. Наиболее надежный способ — определять СНО на основании состава документа и ставок НДС непосредственно перед отправкой на фискализацию.

  1. Перейдем в общий модуль МенеджерОборудованияВызовСервера к процедуре ПодготовитьДанныеДляФискализацииЧека (или к функции формирования XML-пакета чека).
  2. Добавим логику контекстной проверки ставок налога документа:
    
    // Пример алгоритма определения СНО по ставкам НДС документа
    Если ДокументОбъект.ТабличнаяЧасть.Количество() > 0 Тогда
        ЕстьНДС = Ложь;
        Для Каждого Стр Из ДокументОбъект.ТабличнаяЧасть Цикл
            Если Стр.СтавкаНДС <> Перечисления.СтавкиНДС.БезНДС Тогда
                ЕстьНДС = Истина;
                Прервать;
            КонецЕсли;
        КонецЦикла;
        
        Если ЕстьНДС Тогда
            СНОЧека = Перечисления.ТипыСистемНалогообложенияККТ.ОСН;
        Иначе
            СНОЧека = Перечисления.ТипыСистемНалогообложенияККТ.ЕНВД; // или Патент
        КонецЕсли;
    КонецЕсли;
    
  3. Подставим полученное значение СНО в структуру фискализации в поле СистемаНалогообложения перед сериализацией пакета в XML.

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

Вариант 2. Разделение учета через виртуальную организацию

Если конфигурация находится на полной поддержке и доработка программного кода нежелательна, применим методику разделения организаций:

  1. В справочнике Организации создадим вторую служебную карточку с аналогичными реквизитами (ИНН, КПП, наименование).
  2. В регистре сведений Учетная политика (налоговый учет) для основной организации настроим ОСН, а для служебной — ЕНВД/Патент.
  3. Документы, относящиеся к розничной торговле по спецрежиму, оформляем от имени служебной организации. При фискализации БПО корректно считает данные учетной политики и передаст в чек нужную СНО.

Вариант 3. Методологическая настройка розничных продаж по рекомендациям 1С

Разберем штатный механизм распределения операций в типовой конфигурации:

  1. Снимем флаг «Розничная торговля облагается ЕНВД» в учетной политике организации, если оптовые продажи и часть розницы облагаются по ОСН.
  2. Номенклатуру, реализация которой подпадает под спецрежим без НДС, внесем в специализированный регистр сведений Номенклатура, облагаемая ЕНВД.
  3. Продажи по ОСН (с выделением ставок НДС 10%/18%/20%) оформляем через документ Реализация товаров и услуг с последующей печатью чека, а продажи по спецрежиму — через документы розницы (Чек ККМ, Отчет о розничных продажах).

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

← На главную