Как исправить ошибку при пробитии комиссионного чека в 1С:Бухгалтерии?

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

При оформлении продаж по посредническим договорам (комиссия, агентские схемы) в программе 1С:Бухгалтерия пользователи часто сталкиваются с аппаратными и программными ошибками в момент пробития чека на фискальном регистраторе ККТ. Данная проблема обострилась после вступления в силу изменений в 54-ФЗ, ужесточивших требования к оформлению чеков посредниками. В этой статье мы подробно разберем причины возникновения таких сбоев и пошагово рассмотрим методы их устранения.

Выясняем причину: законодательный контекст и требования к тегам

При продаже комиссионного товара или услуги кассовый чек должен содержать информацию о фактическом владельце этого товара (поставщике/комитете). Согласно требованиям форматов фискальных данных (ФФД), в XML-пакет, передаваемый из 1С в кассовый аппарат, должны в обязательном порядке записываться следующие реквизиты:

  1. Тег 1222 — «Признак агента по предмету расчета» (указывает роль продавца, например, комиссионер или поверенный).
  2. Тег 1224 — «Данные поставщика» (наименование и контактный телефон юридического лица или ИП, чей товар продается).
  3. Тег 1226 — «ИНН поставщика» (идентификационный номер налогоплательщика-собственника товара).

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

Развеиваем мифы: ФФД 1.05 против ФФД 1.1

Среди пользователей и некоторых технических специалистов распространено заблуждение, что для пробития комиссионных чеков требуется обязательный переход на версию ФФД 1.1 или ФФД 1.2. Проанализируем эту ситуацию с технической точки зрения.

Формат ФФД 1.05 полностью поддерживает комиссионные (агентские) теги. Переходить на более высокие версии формата фискальных данных только ради продажи комиссионных товаров не требуется. Главное — обеспечить соответствие внутреннего программного обеспечения самой ККТ и драйверов торгового оборудования актуальным требованиям.

Разрешение путаницы с версией ПО ККТ: идентификатор «1245» и прошивка «10-7942»

Часто при анализе чека информации о ККТ АТОЛ или отчета о регистрации пользователи видят обозначение 1245 (или полную версию фискального ядра 3.0.1245) и принимают его за версию драйвера или прошивки. Разберем этот момент подробнее.

Число 1245 — это не версия драйвера ККТ. На платформе АТОЛ 2.5 это универсальный *идентификатор программного обеспечения ККТ* (модели ядра фискального процессора). Он одинаков для большинства аппаратов данного поколения.

Реальная версия прошивки ККТ записывается как «ID серии» (например, 10-7942, 12-8531 и т. д.). Для успешной работы с комиссионными тегами под ФФД 1.05 прошивка вашего аппарата АТОЛ должна быть версии 10-7942 и выше. Именно в этих версиях внутреннего ПО была реализована полноценная поддержка тегов покупателя и расширенных признаков предмета расчета (таких как тег 1212).

Версия драйвера АТОЛ (ДТО) имеет формат типа 10.5.x.x, 10.8.x.x или 10.10.x.x. Для корректной трансляции XML-пакетов из 1С в ККТ настоятельно рекомендуется использовать версию ДТО не ниже 10.5.0.0.

Важнейшая аппаратная настройка ККТ: проверка признака агента

Даже если у вас установлена последняя версия 1С:Бухгалтерии, обновлены драйверы и прошивка кассы, чек все равно может не пробиться с ошибкой вида «Ошибка программирования реквизита 1057» или «Недопустимое сочетание реквизитов».

Причина кроется в параметрах регистрации самого фискального накопителя в ФНС. При регистрации (или перерегистрации) кассового аппарата в утилите фискализации АТОЛ обязательно должна быть установлена галочка «Комиссионер» (или «Агент»). Если ККТ зарегистрирована как обычная касса в режиме «Оказание услуг/Продажа товаров» без признака посредника, то при попытке 1С передать в чек тег 1222 касса аппаратно заблокирует эту операцию, так как это нарушает параметры ее регистрации.

Настройка учета в конфигурации 1С:Бухгалтерия

Рассмотрим по шагам, какие настройки должны быть выполнены внутри учетной системы 1С для правильного формирования пакета данных ККТ:

  1. Проверка договора с контрагентом. Перейдем в карточку партнера (комитета/поставщика) и откроем используемый договор. Вид договора в обязательном порядке должен иметь значение «С комитентом (принципалом) на продажу». Если указан обычный договор «С поставщиком», 1С сформирует чек на продажу собственных товаров и не передаст необходимые теги.
  2. Карточка номенклатуры. Для позиций, которые вы продаете по договору комиссии, должен быть установлен правильный вид номенклатуры. Убедимся, что счет учета этой номенклатуры настроен как забалансовый (обычно это счет 004.01 «Товары на складе»).
  3. Заполнение обязательных реквизитов контрагента. Откроем карточку комитента. Поля ИНН, Наименование и Телефон (в контактной информации) должны быть заполнены. Если телефон отсутствует, ККТ выдаст ошибку, так как тег 1224 требует строковой передачи контактного номера телефона поставщика.

Скрытая техническая проблема: пробелы в контактных данных

Разберем неочевидный баг, с которым сталкиваются многие пользователи. В ряде релизов «Библиотеки подключаемого оборудования» (БПО), встроенной в 1С:Бухгалтерию, отсутствовала автоматическая очистка передаваемых строковых значений от лишних пробелов по краям.

Если в карточке контрагента в поле телефона или Email закрался случайный пробел (например, в начале строки: " +79991112233" или в конце email: "info@test.ru "), то при парсинге JSON-запроса драйвер ККТ АТОЛ 10.х вернет ошибку: «Некорректные параметры в команде» или «Ошибка парсинга запроса».

Для исправления этой проблемы в кодовой базе 1С разработчики используют принудительную очистку строк методом СокрЛП(). Посмотрим на пример кода, который решает эту задачу при подготовке данных для ККТ:


// Очистка контактных данных перед отправкой в БПО
Функция ПодготовитьКонтактныеДанныеДляККТ(ЗначениеРеквизита) Экспорт
    // Удаляем концевые и начальные пробелы
    ОчищеннаяСтрока = СокрЛП(ЗначениеРеквизита);
    // Удаляем неразрывные пробелы, которые часто копируются из веб-форм
    ОчищеннаяСтрока = СтрЗаменить(ОчищеннаяСтрока, Символы.НПП, "");
    Возврат ОчищеннаяСтрока;
EndФункции

Если вы не имеете возможности вносить изменения в конфигурацию программным путем, то решением станет ручная проверка карточек контрагентов на наличие лишних символов пробела или обновление конфигурации 1С:Бухгалтерия до актуального релиза, где эта ошибка в БПО уже исправлена.

Пошаговый алгоритм диагностики при возникновении ошибки

Если при попытке пробить чек программа выдает ошибку, выполним следующие действия для локализации проблемы:

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

Выполнение этих шагов гарантирует успешное устранение большинства аппаратных и программных сбоев при печати посреднических фискальных документов.

← На главную