Почему на онлайн-чеке из 1С 7.7 печатается ОСН вместо УСН и как это исправить?

Программист 1С v7.7 Налоговый учет Торговля и дистрибуция
← На главную

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

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

Причины появления ОСН в чеке онлайн-кассы

Проанализируем цепочку передачи данных из 1С в фискальный накопитель. Формирование реквизитов чека зависит от трех ключевых факторов:

  1. Параметры фискализации ККТ (тег 1055): при регистрации или перерегистрации кассового аппарата в фискальный накопитель обязательно заносятся все системы налогообложения, с которыми разрешено работать данной ККТ. Если нужная СНО не была отмечена при регистрации, касса выдаст ошибку реквизита при попытке пробить чек.
  2. Механизм конфигурации 1С 7.7: в типовых релизах «1С:Торговля и Склад 7.7» отсутствует гибкая настройка сопоставления СНО в разрезе юридических лиц или складов. В штатных обработках обслуживания значение системы налогообложения (TaxVariant) зачастую жестко зафиксировано числом 0 (что соответствует общей системе налогообложения).
  3. Приоритет команд драйвера: даже если в таблицах настроек самого аппарата задана УСН по умолчанию, при пробитии каждого чека 1С передает драйверу собственный XML-пакет с параметрами. Значение из управляющего пакета переопределяет внутренние настройки аппарата.

Шаг 1. Проверка доступных СНО в кассовом аппарате

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

  1. Откроем утилиту Тест драйвера ККТ (ДТО Атол).
  2. Установим связь с кассой и перейдем на вкладку параметров регистрации / сведений о ККТ.
  3. Нажмем кнопку Считать и проверим флаги в блоке «Системы налогообложения».
  4. Если флаг напротив УСН Доход или УСН Доход-Расход не установлен, кассе требуется процедура перерегистрации без замены ФН с причиной изменения параметров/СНО. Если нужная система активна, переходим к доработке 1С.

Шаг 2. Доработка обработки обслуживания frATOL54_comm.ert

Рассмотрим, какая обработка обслуживания используется при взаимодействии с драйвером. В каталоге базы данных (или подкаталоге ExtForms\Equip) найдем файл frATOL54_comm.ert, отвечающий за связь с библиотекой FprnM1C82_54FZ.dll.

Откроем данный файл в конфигураторе 1С 7.7, перейдем в модуль формы и найдем процедуру формирования фискальных позиций и заголовка чека. Заменим жестко прописанное значение параметра TaxVariant на требуемый код СНО и скорректируем передачу ставки налога.

Кодификатор систем налогообложения для XML-пакетов стандарта 1С:

  1. 0 — Общая СНО (ОСН)
  2. 1 — Упрощенная СНО Доходы (УСН Доход)
  3. 2 — Упрощенная СНО Доходы минус Расходы (УСН Доход-Расход)
  4. 3 — Единый налог на вмененный доход (ЕНВД)
  5. 4 — Единый сельскохозяйственный налог (ЕСХН)
  6. 5 — Патентная система налогообложения (ПСН)

Посмотрим на пример правильной доработки фрагмента кода в модуле обработки frATOL54_comm.ert:


// Задаем применяемую СНО: 1 - УСН Доход, 2 - УСН Доход-Расход
СистемаНалогообложения = 1;

// Передаем выбранную систему налогообложения в корневой тег параметров чека
Атрибут(XMLParameters, "TaxVariant", СистемаНалогообложения); 

СписокТоваров.ВыбратьСтроки();
Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
    XMLFiscalString = XMLPositions.СоздатьПодчиненныйЭлемент("FiscalString");
    Атрибут(XMLFiscalString, "Name", СписокТоваров.ТовНаим);
    Атрибут(XMLFiscalString, "Quantity", СписокТоваров.Количество);
    Атрибут(XMLFiscalString, "Price", СписокТоваров.Цена); 
    Атрибут(XMLFiscalString, "Amount", СписокТоваров.Сумма);
    Атрибут(XMLFiscalString, "Department", "01"); 
    
    // Если применяется спецрежим (УСН), обязательно передаем ставку "none" (Без НДС)
    Если СистемаНалогообложения > 0 Тогда
        Атрибут(XMLFiscalString, "Tax", "none"); 
    Иначе
        Атрибут(XMLFiscalString, "Tax", СписокТоваров.СтавкаНДС); 
    КонецЕсли;
КонецЦикла;

Обратим внимание на условие по передаче ставки НДС. Для организаций на УСН товарные позиции в чеке должны иметь налоговую ставку «Без НДС» (в XML-пакете драйвера обозначается как none). Если оставить передачу значений по умолчанию из справочников 1С, касса может напечатать ставку 18%/20%, что повлечет за собой ошибку расчета налога.

Шаг 3. Исправление чеков, уже переданных в ОФД с ошибкой

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

  1. В формате ФФД 1.05: пробивается чек с признаком расчета Возврат прихода с ошибочной СНО (ОСН), полностью дублирующий исходный чек, после чего выбивается правильный чек Приход с указанием УСН и ставки «Без НДС».
  2. В формате ФФД 1.1 / 1.2: формируется Чек коррекции на отмену некорректного расчета, а затем пробивается чек коррекции с правильным значением тега 1055 (УСН).

После сохранения исправленной обработки frATOL54_comm.ert и перезапуска сеанса 1С проверим результат пробитием тестового чека на 1 рубль и убедимся, что на бумажной ленте и в чеке ОФД корректно отображается реквизит СНО: УСН доход (или доход-расход).

← На главную