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

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

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

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

Прежде чем переходить к коду, проанализируем важный нормативный момент. Согласно 54-ФЗ и форматам фискальных документов (ФФД), в одном чеке может быть указана только одна система налогообложения. Это означает, что если в одном заказе клиента присутствуют товары, относящиеся к разным СНО, вы не сможете пробить их одним чеком. Программа должна либо запрещать такие продажи, либо автоматически разделять их на два отдельных фискальных документа.

Для корректной передачи СНО в кассу используется тег 1055. В 1С этот параметр передается через XML-структуру в драйвер под именем TaxVariant или TaxType.

Анализ механизма передачи СНО в типовой конфигурации

Рассмотрим, как 1С формирует данные для кассы. В конфигурациях на обычных формах (УТ 10.3) за это отвечает механизм торгового оборудования. Система получает СНО организации и преобразует ее в цифровой код. Посмотрим на типовую функцию преобразования:


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

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

Вариант 1. Доработка общего модуля (подмена СНО)

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

Найдем функцию СистемаНалогообложения и изменим логику возврата пустой ссылки:


// Было:
Иначе
    Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.ПустаяСсылка");
КонецЕсли;

// Стало:
Иначе
    Результат = ПредопределенноеЗначение("Перечисление.ТипыСистемНалогообложенияККТ.Патент");
КонецЕсли;

Этот метод подходит, если у вас всегда одна система, которую программа почему-то не видит. Если же систем действительно две, потребуется более сложная логика.

Вариант 2. Автоматическое определение СНО по критериям

Выясним, по каким признакам мы можем разделить продажи. Для автоматизации процесса рассмотрим следующие критерии:

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

Вариант 3. Выбор СНО перед печатью чека

Разберем наиболее гибкое решение: создание промежуточной формы перед отправкой данных в ККТ. Посмотрим, как это можно реализовать программно:

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

При формировании XML-структуры для библиотеки драйвера (например, SMDrvFR1CLib20.dll для Штрих-М), убедитесь, что параметр TaxVariant заполняется корректно:

Настройка кассового аппарата (Штрих-М)

Важно помнить, что настройки в 1С — это только половина дела. Физическое устройство также должно быть готово к работе с несколькими СНО. Проанализируем настройки ККТ:

  1. При фискализации (регистрации) кассы в ФНС должны быть отмечены все используемые системы налогообложения. Если в ФН зарегистрирована только ОСН, а вы отправите код "5", касса выдаст ошибку.
  2. В драйвере "Штрих-М" (Тест драйвера ККТ) проверьте Таблицу №17 (Региональные настройки). Поле "Система налогообложения по умолчанию" определяет, какая СНО будет выбрана, если 1С не передаст код.
  3. Для удобства учета можно настроить распределение по секциям. Например, секция 1 — ОСН, секция 2 — Патент. Это позволит сверять итоги в Z-отчете с данными в 1С.

Рекомендации по реализации в УТ 10.3

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

1. Добавить в перечисление ТипыСистемНалогообложенияККТ недостающие значения (если их нет).

2. В документах оплаты добавить реквизит СистемаНалогообложенияККТ.

3. В модуле формирования чека (обычно это обработки обслуживания ТОФискальныйРегистратор... или общие модули интеграции) обеспечить передачу этого реквизита в функцию формирования XML.

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

← На главную