Почему в чеке ККМ при комиссионной торговле не печатается строка с комитентом в 1С:Бухгалтерия 3.0?

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

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

Симптомы проблемы

Ситуация выглядит следующим образом: организация выступает в роли комиссионера. В настройках программы и кассы (драйвер Атол или аналогичный) установлены признаки «Комиссионер» или «Агент». При продаже комиссионного товара через документ Розничная продажа (Чек) или Реализация товаров чек пробивается, но в нем отсутствует информация о поставщике (комитенте). При этом в ОФД эти данные также не передаются.

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

Шаг 1. Проверка базовых настроек учета

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

Проверим следующие пункты:

  1. Вид номенклатуры. Откроем карточку товара. Поле Вид номенклатуры должно иметь значение «Товары на комиссии» или аналогичное, предполагающее агентскую схему.
  2. Счета учета. В документе продажи (и в проводках) товар должен списываться с забалансового счета 004 «Товары, принятые на комиссию». Если товар списывается с 41 счета, программа будет считать его собственным.
  3. Договор с контрагентом. Убедитесь, что поступление товара оформлено по договору с видом «С комитентом (принципалом) на продажу». Если сведения о договорах переносились из другой системы, важно подобрать подходящие решения для переноса данных в 1С:Бухгалтерию.

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

Шаг 2. Различие между Реализацией и Розничным чеком

Важно понимать, что механизмы определения комитента в документах Реализация (акт, накладная) и Розничная продажа (чек) различаются.

Рекомендуем провести тест: попробуйте оформить продажу этого же товара через документ Реализация (акт, накладная) физическому лицу и пробить чек оттуда. Если из реализации чек выходит корректным (с данными комитента), а из розницы — нет, значит проблема может крыться в алгоритме подбора остатков.

Шаг 3. Анализ программного кода формирования чека

В конфигурации 1С:Бухгалтерия 3.0 за формирование параметров чека отвечает общий модуль, связанный с печатью фискальных документов. Рассмотрим логику, по которой программа находит комитента для розничного чека.

В документе РозничнаяПродажа в форме ФормаДокументаОбщая или в общем модуле используется функция получения сведений о комитентах. Она работает следующим образом: система анализирует остатки товаров на счете 004 и выбирает поставщика (комитента) по методу ФИФО (первый пришел — первый ушел).

Вот пример логики, которая используется в типовых конфигурациях для заполнения признака агента:


// Фрагмент логики заполнения данных чека
ИначеЕсли ЗначениеЗаполнено(СтрокаТовары.Номенклатура) И СведенияОКомитентах <> Неопределено Тогда
    ЕстьОбщийПлатежныйАгентПоЧеку = Ложь;
    // Получаем сведения о комитенте для конкретной номенклатуры
    СведенияОКомитенте = СведенияОКомитентах[СтрокаТовары.Номенклатура];
    
    Если СведенияОКомитенте <> Неопределено Тогда
        // Устанавливаем признак, что это комиссионный товар
        СтрокаПозицииЧека.ПризнакАгентаПоПредметуРасчета = Перечисления.ПризнакиАгента.Комиссионер;
        // Заполняем данные поставщика (ИНН, Наименование, Телефон)
        ЗаполнитьЗначенияСвойств(СтрокаПозицииЧека.ДанныеПоставщика, СведенияОКомитенте);
    КонецЕсли;
КонецЕсли;

Если вы используете эмулятор фискального регистратора (встроенный в 1С или драйвер), и на нем чек формируется корректно, а на физической кассе (например, Атол) данные пропадают — проблема не в коде 1С, а в передаче данных в драйвер.

Шаг 4. Скрытая причина: Валидация данных драйвером ККТ

Самая неочевидная, но распространенная причина, по которой пропадают данные комитента — это некорректные данные в карточке контрагента, которые не проходят проверку (валидацию) на стороне драйвера ККТ.

Драйверы современных касс (особенно Атол 10-й версии и выше, работающие по ФФД 1.2) очень строго относятся к формату передаваемых тегов. Одним из обязательных реквизитов для агента является Телефон поставщика (Тег 1224).

Ограничения Тега 1224 (Телефон поставщика):

Суть проблемы: В карточке контрагента в 1С поле «Телефон» часто заполняется менеджерами в свободной форме. Например: +7 (495) 123-45-67, доб. 102 (Бухгалтерия) или просто копируется несколько номеров через запятую.

Когда 1С передает такой «грязный» номер в драйвер ККТ:

  1. Драйвер получает структуру данных, содержащую ИНН, Наименование и Телефон комитента.
  2. Драйвер пытается валидировать поле «Телефон».
  3. Видя недопустимые символы (скобки, буквы) или превышение длины (более 19 символов), драйвер считает значение тега ошибочным.
  4. Критический момент: Вместо того чтобы выдать ошибку и остановить печать чека, многие драйверы просто отбрасывают весь блок данных агента, считая его некорректным, и печатают чек как обычную продажу собственного товара.

Именно поэтому на эмуляторе (который менее строг к форматам) все работает, а на реальной кассе — нет.

Решение проблемы

Для исправления ситуации выполним следующие действия:

1. Очистка номера телефона комитента

Зайдите в справочник Контрагенты, найдите вашего комитента. Откройте поле с телефоном. Удалите все лишние символы, скобки, пробелы и комментарии. Оставьте только номер в формате +79991234567. Убедитесь, что длина номера не превышает 19 знаков.

2. Проверка ИНН и Наименования

Хотя телефон является частой причиной, также проверьте:

3. Использование отладки (для продвинутых пользователей)

Если очистка телефона не помогла, включите логирование драйвера ККТ. В логах (например, для Атол это файл fptr10.log) найдите момент передачи чека. Ищите команды LIBFPTR_PARAM_TAG_VALUE (установка значения тега). Если вы увидите предупреждения вида Invalid length или Invalid value рядом с тегом 1224 (телефон) или 1226 (ИНН), это подтвердит проблему формата данных.

Заключение

При работе с комиссионным товаром в 1С:Бухгалтерия 3.0 исчезновение строки комитента чаще всего связано не с ошибкой в программе, а со строгой валидацией данных на уровне фискального регистратора. «Длинный» или некорректно записанный номер телефона поставщика заставляет драйвер игнорировать агентские реквизиты. Приведите контактные данные контрагентов в соответствие с требованиями ФФД (только цифры и «+», до 19 символов), и чек будет формироваться корректно. Для автоматической проверки и исправления реквизитов при большом количестве контрагентов применяются программные роботы One RPA.

← На главную