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

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

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

Метод 1: Разделение по типам документов (Стандартный функционал)

Проанализируем самый простой способ, который не требует глубокого вмешательства в программный код. В системе УТ 10.3 предусмотрены разные механизмы фискализации для розничных и оптовых операций:

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

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

Метод 2: Программная модификация обработки обслуживания (Для продвинутых пользователей)

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

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


// Пример логического условия для выбора СНО
Если ЗначениеЗаполнено(Запрос.Контрагент) Тогда
    Если Запрос.Контрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
        // Устанавливаем код СНО для ЕНВД/Патент (например, индекс 3)
        СистемаНалогообложения = 3; 
    Иначе
        // Устанавливаем код СНО для УСН (например, индекс 1)
        СистемаНалогообложения = 1;
    КонецЕсли;
КонецЕсли;

Разберем подробнее, куда именно вносить этот код. В типовых конфигурациях на базе 8.2/8.3 (обычные формы) за передачу данных в ККТ отвечает общий модуль МенеджерОборудованияВызовСервера или внешняя обработка обслуживания (например, ATOL_kkt.epf). Нам нужно найти процедуру СформироватьЧек и модифицировать структуру ОбъектДрайвера, добавив в неё параметр TaxVariant.

Метод 3: Использование виртуальных касс

Если мы не хотим менять программный код, можно воспользоваться хитростью настройки торгового оборудования. В справочнике Подключаемое оборудование создадим две записи для одной и той же физической кассы АТОЛ:

В этом случае при печати чека система предложит выбрать устройство. Выбирая соответствующую "логическую" кассу, менеджер фактически выбирает нужную систему налогообложения для чека.

Разбор ошибок: Почему 1С "теряет" ККТ после настройки?

Часто при попытке внедрить стороннюю обработку для деления по СНО пользователи сталкиваются с ошибкой: "Ошибка при подключении устройства". Рассмотрим причины возникновения этой ситуации:

  1. Монопольный захват порта: Драйвер ККТ (особенно АТОЛ DTO 10) работает с COM-портом монопольно. Если у вас открыта утилита FITO или Тест драйвера АТОЛ, сама 1С не сможет подключиться к кассе. Проанализируем состояние запущенных процессов и закроем лишние сервисные утилиты.
  2. Параметры связи: Проверим, совпадают ли номер порта и скорость в настройках 1С с данными из теста драйвера. Если обработка написана под старую версию драйвера (например, 8.х), а в системе стоит 10.х, связь не установится.
  3. Разрядность платформы: Помним, что если ваша 1С:Предприятие является 32-битной, то и драйвер ККТ (компонента AddIn) должен быть зарегистрирован соответствующей разрядности.

Техническая реализация через дополнительные свойства

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

  1. Зайдем в план видов характеристик ДополнительныеРеквизитыИСведения.
  2. Создадим для объекта Контрагенты новое свойство — СНО_Для_Чека.
  3. В коде фискализации будем считывать это значение:

ЗначениеСНО = УправлениеСвойствами.ПолучитьЗначениеСвойства(ДокументОбъект.Контрагент, "СНО_Для_Чека");
Если ЗначениеСНО = "УСН" Тогда
    ПараметрыЧека.СистемаНалогообложения = Перечисления.ТипыСистемНалогообложения.УпрощеннаяДоход;
КонецЕсли;

Важный момент: При работе с юридическими лицами через ККТ с 2019 года необходимо также передавать в чек ИНН и наименование покупателя. Убедитесь, что ваша версия УТ 10.3 обновлена до актуальных релизов, поддерживающих ФФД 1.05 или 1.2, иначе чеки на юрлиц будут считаться некорректными с точки зрения налоговой инспекции.

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

← На главную