Проблема корректного оформления кассовых чеков при комиссионной торговле является одной из самых острых для пользователей 1С:Управление торговлей 11.3. Часто возникает ситуация, когда в программе товар числится как комиссионный, отчеты комитенту формируются правильно, но кассовый аппарат (например, ШТРИХ-М-01Ф) продолжает пробивать чеки как при обычной продаже. В результате в ОФД не уходят обязательные признаки агента и данные о владельце товара, что является нарушением требований 54-ФЗ и ФФД 1.05.
В данной статье мы подробно проанализируем, почему возникают такие сложности, разберем законодательные требования к реквизитам чека и выясним, как технически реализовать передачу необходимых тегов из 1С в драйвер ККТ.
Прежде всего, проанализируем нормативную базу. Согласно Приказу ФНС от 21.03.2017 № ММВ-7-20/229@, при осуществлении расчетов комиссионером в чеке должны присутствовать дополнительные реквизиты. Рассмотрим их подробнее:
Важный нюанс: Многие пользователи ошибочно полагают, что в чеке должна указываться система налогообложения (СНО) комитента. Однако, согласно письму Минфина № 03-01-15/66398, в чеке всегда указывается СНО пользователя ККТ (комиссионера). При этом ставка НДС должна соответствовать ставке, применяемой комитентом для данного товара.
Разберем ситуацию, когда настройки в 1С выполнены (указан вид договора "С комитентом", заполнена карточка партнера), но чек выходит "пустым". Основная причина кроется в механизме взаимодействия 1С с драйвером кассового аппарата.
Проанализируем техническую цепочку: 1С формирует XML-пакет с данными чека -> этот пакет передается в Библиотеку подключаемого оборудования (БПО) -> БПО транслирует данные драйверу ККТ -> драйвер дает команду кассе. В старых версиях УТ 11.3 используется устаревший формат XML, который не содержит полей для передачи признаков агента, либо драйвер ШТРИХ-М версии ниже 4.14 не умеет эти поля обрабатывать через стандартный интерфейс 1С.
Как отмечают технические специалисты, теги 1222, 1224, 1225 часто не передаются, если в структуре данных отсутствует хотя бы один обязательный элемент, например, телефон поставщика. Без телефона блок данных поставщика считается невалидным и полностью игнорируется драйвером.
Перед тем как переходить к программированию, проверим базовые настройки в пользовательском интерфейсе:
Если типовые средства не помогают, нам необходимо вмешаться в процесс формирования XML-пакета. Рассмотрим, где именно в коде происходит эта магия. Основная работа ведется в общих модулях, отвечающих за подключаемое оборудование.
Рассмотрим пример логики, которую необходимо проверить или внедрить в процедуру формирования позиции чека. Нам нужно убедиться, что структура ПозицияЧека дополняется данными агента. Ориентировочно это модуль МенеджерОборудованияКомандыККТ или аналогичный в вашей версии БПО.
Проанализируем фрагмент кода, который отвечает за наполнение структуры предмета расчета:
// Пример заполнения данных агента для передачи в драйвер
Если СтрокаЧека.Свойство("ПризнакАгента") И ЗначениеЗаполнено(СтрокаЧека.ПризнакАгента) Тогда
// 5 - это код признака "Комиссионер" по классификации ФФД
ДанныеПредметаРасчета.Вставить("ПризнакАгента", 5);
// Формируем структуру данных поставщика
ДанныеПоставщика = Новый Структура;
ДанныеПоставщика.Вставить("Наименование", СтрокаЧека.НаименованиеПоставщика);
ДанныеПоставщика.Вставить("ИНН", СтрокаЧека.ИННПоставщика);
// Телефон обязателен! Без него тег 1224 не уйдет в кассу
Телефоны = Новый СписокЗначений;
Телефоны.Добавить(СтрокаЧека.ТелефонПоставщика);
ДанныеПоставщика.Вставить("Телефоны", Телефоны);
ДанныеПредметаРасчета.Вставить("ДанныеПоставщика", ДанныеПоставщика);
КонецЕсли;
Важно помнить, что 1С передает данные драйверу в виде XML. Если библиотека LinePro.dll или ShtrihM_KKT_8.3.х не поддерживает актуальные схемы обмена, никакие изменения в коде 1С не помогут. В этом случае единственным выходом будет обновление драйвера ШТРИХ-М до версии 4.15 или выше и обновление БПО в конфигурации до версии не ниже 2.1.
Разберем подробнее вопрос налогообложения, так как он вызывает больше всего споров. При продаже комиссионного товара комиссионер обязан указать ставку НДС комитента, даже если сам находится на УСН.
Посмотрим, как это реализовано в 1С: если в карточке номенклатуры или в документах поступления указана ставка "НДС 20%", программа должна передать её в чек. Однако, если организация-продавец на УСН, встроенные алгоритмы могут принудительно заменять ставку на "Без НДС". Для решения этой проблемы в коде формирования чека необходимо добавить проверку: если товар является комиссионным (находится на забалансовом счете 004), то ставка НДС должна браться из данных документа, а не из констант учетной политики организации.
Чтобы выяснить, на чьей стороне проблема — 1С или кассы, выполним диагностику:
Проанализируем итоговый алгоритм действий для исправления ситуации:
Шаг 1: Обновить драйвер ШТРИХ-М на рабочем месте до актуальной версии (ветка 4.14.700+ или 5.x).
Шаг 2: Убедиться, что в 1С в карточке комитента заполнен телефон.
Шаг 3: Проверить через "Отладчик", попадают ли поля AgentSign и PurveyorData в XML-пакет, передаваемый методу СформироватьЧек.
Шаг 4: Если поля отсутствуют — обновить БПО или внести изменения в код вручную, как было показано выше.
Таким образом, настройка чека комиссии в УТ 11.3 требует комплексного подхода: от проверки юридических реквизитов контрагента до низкоуровневой отладки взаимодействия с драйвером ККТ. Соблюдение этих шагов позволит избежать штрафов и обеспечит корректную передачу данных в налоговые органы.