Как настроить печать чеков при комиссионной торговле в 1С:УТ 11.3 на кассах ШТРИХ-М

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

Проблема корректного оформления кассовых чеков при комиссионной торговле является одной из самых острых для пользователей 1С:Управление торговлей 11.3. Часто возникает ситуация, когда в программе товар числится как комиссионный, отчеты комитенту формируются правильно, но кассовый аппарат (например, ШТРИХ-М-01Ф) продолжает пробивать чеки как при обычной продаже. В результате в ОФД не уходят обязательные признаки агента и данные о владельце товара, что является нарушением требований 54-ФЗ и ФФД 1.05.

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

Законодательные требования к чеку комиссионера

Прежде всего, проанализируем нормативную базу. Согласно Приказу ФНС от 21.03.2017 № ММВ-7-20/229@, при осуществлении расчетов комиссионером в чеке должны присутствовать дополнительные реквизиты. Рассмотрим их подробнее:

  1. Признак агента (тег 1057): указывает роль организации (в нашем случае — "КОМИССИОНЕР").
  2. Признак агента по предмету расчета (тег 1222): аналогичный признак, но указываемый для каждой конкретной товарной позиции в чеке. Это позволяет смешивать собственные и комиссионные товары в одном документе.
  3. Данные поставщика (тег 1224): включает в себя наименование комитента (тег 1225) и его телефон (тег 1226).
  4. ИНН поставщика (тег 1226): ИНН юридического или физического лица, чей товар продается.

Важный нюанс: Многие пользователи ошибочно полагают, что в чеке должна указываться система налогообложения (СНО) комитента. Однако, согласно письму Минфина № 03-01-15/66398, в чеке всегда указывается СНО пользователя ККТ (комиссионера). При этом ставка НДС должна соответствовать ставке, применяемой комитентом для данного товара.

Почему 1С и ШТРИХ-М "не видят" комиссию?

Разберем ситуацию, когда настройки в 1С выполнены (указан вид договора "С комитентом", заполнена карточка партнера), но чек выходит "пустым". Основная причина кроется в механизме взаимодействия 1С с драйвером кассового аппарата.

Проанализируем техническую цепочку: 1С формирует XML-пакет с данными чека -> этот пакет передается в Библиотеку подключаемого оборудования (БПО) -> БПО транслирует данные драйверу ККТ -> драйвер дает команду кассе. В старых версиях УТ 11.3 используется устаревший формат XML, который не содержит полей для передачи признаков агента, либо драйвер ШТРИХ-М версии ниже 4.14 не умеет эти поля обрабатывать через стандартный интерфейс 1С.

Как отмечают технические специалисты, теги 1222, 1224, 1225 часто не передаются, если в структуре данных отсутствует хотя бы один обязательный элемент, например, телефон поставщика. Без телефона блок данных поставщика считается невалидным и полностью игнорируется драйвером.

Проверка и настройка данных в 1С:УТ 11.3

Перед тем как переходить к программированию, проверим базовые настройки в пользовательском интерфейсе:

  1. Перейдем в карточку Соглашения с комитентом и убедимся, что тип операции установлен как "Прием на комиссию".
  2. В карточке Контрагента (комитента) обязательно должен быть заполнен ИНН и, что критично, корректный номер телефона в контактной информации.
  3. Проверим настройки самой ККТ. В утилите регистрации (или через драйвер) должен быть установлен флаг "Комиссионер" в признаках агента. Это делается при регистрации или перерегистрации аппарата в ФНС.

Техническое решение: доработка передачи тегов в конфигураторе

Если типовые средства не помогают, нам необходимо вмешаться в процесс формирования XML-пакета. Рассмотрим, где именно в коде происходит эта магия. Основная работа ведется в общих модулях, отвечающих за подключаемое оборудование.

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

Проанализируем фрагмент кода, который отвечает за наполнение структуры предмета расчета:


// Пример заполнения данных агента для передачи в драйвер
Если СтрокаЧека.Свойство("ПризнакАгента") И ЗначениеЗаполнено(СтрокаЧека.ПризнакАгента) Тогда
    // 5 - это код признака "Комиссионер" по классификации ФФД
    ДанныеПредметаРасчета.Вставить("ПризнакАгента", 5); 
    
    // Формируем структуру данных поставщика
    ДанныеПоставщика = Новый Структура;
    ДанныеПоставщика.Вставить("Наименование", СтрокаЧека.НаименованиеПоставщика);
    ДанныеПоставщика.Вставить("ИНН", СтрокаЧека.ИННПоставщика);
    
    // Телефон обязателен! Без него тег 1224 не уйдет в кассу
    Телефоны = Новый СписокЗначений;
    Телефоны.Добавить(СтрокаЧека.ТелефонПоставщика);
    ДанныеПоставщика.Вставить("Телефоны", Телефоны);
    
    ДанныеПредметаРасчета.Вставить("ДанныеПоставщика", ДанныеПоставщика);
КонецЕсли;

Важно помнить, что 1С передает данные драйверу в виде XML. Если библиотека LinePro.dll или ShtrihM_KKT_8.3.х не поддерживает актуальные схемы обмена, никакие изменения в коде 1С не помогут. В этом случае единственным выходом будет обновление драйвера ШТРИХ-М до версии 4.15 или выше и обновление БПО в конфигурации до версии не ниже 2.1.

Работа с СНО и НДС

Разберем подробнее вопрос налогообложения, так как он вызывает больше всего споров. При продаже комиссионного товара комиссионер обязан указать ставку НДС комитента, даже если сам находится на УСН.

Посмотрим, как это реализовано в 1С: если в карточке номенклатуры или в документах поступления указана ставка "НДС 20%", программа должна передать её в чек. Однако, если организация-продавец на УСН, встроенные алгоритмы могут принудительно заменять ставку на "Без НДС". Для решения этой проблемы в коде формирования чека необходимо добавить проверку: если товар является комиссионным (находится на забалансовом счете 004), то ставка НДС должна браться из данных документа, а не из констант учетной политики организации.

Диагностика через Тест драйвера

Чтобы выяснить, на чьей стороне проблема — 1С или кассы, выполним диагностику:

  1. Закроем 1С.
  2. Откроем утилиту "Тест драйвера ККТ" (от ШТРИХ-М).
  3. Перейдем в раздел "Таблицы" и проверим таблицу 18 (названия могут меняться в зависимости от модели), где хранятся признаки агента.
  4. Попробуем сформировать чек вручную через вкладку "Операции". Если при ручном вводе тега 1222 и ИНН поставщика касса выдает ошибку "Некорректный параметр", значит проблема в прошивке или настройках таблицы ККТ. Если чек пробивается корректно — проблема в формировании XML внутри 1С.

Проанализируем итоговый алгоритм действий для исправления ситуации: Шаг 1: Обновить драйвер ШТРИХ-М на рабочем месте до актуальной версии (ветка 4.14.700+ или 5.x). Шаг 2: Убедиться, что в 1С в карточке комитента заполнен телефон. Шаг 3: Проверить через "Отладчик", попадают ли поля AgentSign и PurveyorData в XML-пакет, передаваемый методу СформироватьЧек. Шаг 4: Если поля отсутствуют — обновить БПО или внести изменения в код вручную, как было показано выше.

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

← На главную