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

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

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

Анализируем механизмы передачи данных: логирование драйвера

Прежде чем приступать к отладке программного кода, рассмотрим наиболее «чистый» способ увидеть данные — логирование на уровне драйвера ККТ. Программа 1С не печатает чек напрямую, она формирует XML-пакет и передает его драйверу (например, Штрих-М или АТОЛ), который уже транслирует команды в фискальный накопитель. Проанализируем, как включить логи:

  1. Для драйверов Штрих-М: Откроем «Тест драйвера», перейдем в настройки и включим ведение лог-файла. Обычно он сохраняется в папке с установленным драйвером под именем Shtrikh-M-FR-K.log. В этом файле фиксируются все XML-структуры. Нам нужно найти тег TaxationSystem.
  2. В самой 1С (современные версии): Перейдем в раздел Администрирование — Подключаемое оборудование. В некоторых конфигурациях доступна настройка «Вести лог операций». После её активации в папке временных файлов пользователя будут создаваться XML-файлы с полным описанием чека.

Если в логах мы видим, что 1С передает правильный код СНО, а касса печатает ОСН, значит, проблема в настройках самой кассы или её регистрации в ФНС. Если же в логе стоит неверное значение — ищем ошибку в алгоритмах 1С.

Разбираем программную отладку: где ставить точки останова

Многие программисты сталкиваются с тем, что точка останова в модуле документа (например, ЧекККМ) не дает понимания итогового XML. Выясним причину: формирование данных для кассы вынесено в общие модули подключаемого оборудования. Рассмотрим, в каких процедурах следует выполнять проверку:

Шаг 1. Поиск формирования XML. Основная работа происходит в общем модуле МенеджерОборудованияКлиент или МенеджерОборудованияКлиентПереопределяемый. Проанализируем функцию ПодготовитьДанныеДляФискализации. Именно здесь заполняется структура ПараметрыЧека.

Шаг 2. Работа с драйвером Штрих-М. Если используется оборудование этого вендора, обратим внимание на общий модуль ПодключаемоеОборудованиеШтрихМФискальныеРегистраторыКлиент. Разберем процедуру ПечатьЧекаПоШаблону. Поставим точку останова на моменте вызова метода драйвера:


// Пример места для установки точки останова
Результат = ОбъектДрайвера.СформироватьЧек(ПараметрыПодключения.Идустройста, XMLПакет);

В переменной XMLПакет будет содержаться весь текст сообщения. Нас интересует параметр TaxationSystem. Важно знать числовые коды, которые 1С передает драйверу:

Настройка распределения продаж в 1С:Розница

Если отладка показала, что 1С передает «0» вместо ожидаемого налога, проанализируем настройки программы. В «1С:Розница» (редакции 2.2 и выше) существует сложная система приоритетов. Рассмотрим по шагам, как настроить разделение продаж:

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

Выясним причину: если товарная группа не указана в распределении, система «откатывается» к настройкам склада по умолчанию или к основной системе организации. В результате в чек попадает ОСН.

Проверка параметров регистрации ККТ и настроек драйвера

Если программная часть 1С работает корректно, нам стоит рассмотреть технические параметры самой кассы. Кассовый аппарат физически не может пробить чек по той системе налогообложения, которая не была отмечена при его фискализации (регистрации в налоговой).

Проанализируем тег 1062. При регистрации кассы в её память записываются допустимые режимы. Если при регистрации была указана только ОСН, то любые попытки 1С передать код «5» (Патент) будут либо игнорироваться кассой (она подставит ОСН по умолчанию), либо приводить к ошибке «Неверный формат команды».

Чтобы проверить это без доступа в личный кабинет налоговой, выполним следующие действия в «Тесте драйвера»:

Также для аппаратов марки «Штрих-М» существует Таблица 18 (HotFix СНО). В некоторых версиях прошивок касса может игнорировать команды от 1С и всегда печатать ту систему налогообложения, которая жестко прописана в этой таблице. Проверим, чтобы в поле СНО по умолчанию стояло корректное значение, либо поле было настроено на прием данных от внешнего ПО.

Особенности работы с форматами фискальных данных (ФФД)

Разберем ситуацию с точки зрения ФФД. В версиях 1.05 и выше СНО является обязательным реквизитом для каждой позиции или чека в целом. Если 1С по какой-то причине (например, из-за старой версии обработки обслуживания) не передает тег СНО, касса берет первую из списка разрешенных при регистрации. Чаще всего первой в списке идет именно Общая система налогообложения.

Для исправления ситуации рекомендуется:

  1. Обновить конфигурацию 1С до актуального релиза, поддерживающего текущий ФФД.
  2. Обновить драйвер ККТ до версии, сертифицированной производителем для работы с вашей версией 1С.
  3. Проверить актуальность прошивки самого кассового аппарата.

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

← На главную