Почему в ОФД вместо ИНН кассира отображается ИНН оператора и как это исправить в 1С:УТ 11.3

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

При работе с торговым оборудованием в 1С:Управление торговлей 11.3 часто возникает ситуация, когда в личном кабинете ОФД данные чека отображаются некорректно. Одной из наиболее распространенных проблем является неверная идентификация лица, оформившего расчет: вместо ИНН кассира (Тег 1203) отображается ИНН оператора перевода (Тег 1016) или данные вовсе отсутствуют. Разберем детально, как продиагностировать эту проблему, проверить настройки программы и убедиться, что данные уходят в ККТ в правильном формате.

Понимание разницы между тегами 1203 и 1016

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

Путаница часто возникает из-за визуального представления в интерфейсах некоторых ОФД, где поле может называться «ИНН оператора», подразумевая под этим оператора кассы (кассира). Однако, если техподдержка ОФД указывает на ошибку в заполнении тега, необходимо проверить цепочку передачи данных от 1С до фискального накопителя.

Шаг 1: Проверка корректности заполнения данных в 1С

Рассмотрим, откуда программа берет информацию для формирования чека. В 1С:УТ 11.3 данные кассира подтягиваются из карточки пользователя. Проверим настройки по шагам:

  1. Перейдем в справочник Пользователи.
  2. Найдем сотрудника, который оформляет продажи, и откроем его карточку.
  3. Убедимся, что в поле Физическое лицо указана ссылка на соответствующий элемент справочника «Физические лица».
  4. Перейдем в карточку этого физического лица и проверим наличие заполненного ИНН. Это должен быть корректный 12-значный номер.

Важно помнить, что если ИНН был внесен только что, кассиру необходимо перезапустить сеанс работы с программой (РМК), чтобы обновленные данные попали в кэш и начали передаваться в драйвер оборудования.

Шаг 2: Отладка формирования XML-пакета (CheckPackage)

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

Поищем по строке CheckPackage. Обычно формирование происходит в модулях подключаемого оборудования. На выходе мы должны получить сформированную XML-строку. Рассмотрим пример кода, который отвечает за добавление атрибута ИНН кассира в пакет:


Если Не ПустаяСтрока(ОбщиеПараметры.КассирИНН) Тогда 
    ЗаписьXML.ЗаписатьАтрибут("CashierVATIN", XMLСтрока(ОбщиеПараметры.КассирИНН));
КонецЕсли;

В структуре XML-чека атрибут CashierVATIN соответствует ИНН кассира. Если в режиме отладки вы видите, что вместо этого атрибута заполняется MoneyTransferOperatorVATIN, значит, в программе ошибочно включен режим платежного агента или используется устаревшая версия обработки драйвера. Убедитесь, что релиз конфигурации не ниже 11.3.4, так как именно в этих версиях была реализована полноценная поддержка ФФД 1.05.

Шаг 3: Проверка данных на уровне драйвера ККТ

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

Для ККТ АТОЛ:

Выясним, что именно получает касса, через «Тест драйвера ККТ» (версия 10). Для этого можно заглянуть в лог-файл драйвера, который обычно находится в папке пользователя или в каталоге установки драйвера (файл fptr10.log). В нем нужно искать параметр LIBFPTR_PARAM_CASHIER_VATIN. Если значение передается из 1С, оно будет зафиксировано в логе перед командой закрытия чека.

Для ККТ Штрих-М:

В драйвере версии 4.14 и выше можно проверить содержимое фискального документа непосредственно из памяти кассы:

  1. Откроем «Тест драйвера», перейдем в раздел ФН, вкладка Данные.
  2. Установим тип данных — «Фискальный документ по номеру».
  3. Введем номер чека и нажмем «Прочитать данные». Программа выведет список всех тегов, записанных в ФН. Если там отсутствует тег 1203, значит, драйвер его не обработал.

Шаг 4: Использование команд нижнего уровня для точной диагностики

Если стандартные средства визуализации подводят, разберем продвинутый метод — использование команд нижнего уровня. Это позволяет получить «сырые» данные, которые касса отправила в ОФД. В тесте драйвера ККМ перейдем на вкладку Нижний уровень.

Для получения данных о конкретном документе используем последовательность команд:

  1. A4 45 [НомерЧека в hex] — выбор документа для анализа.
  2. A4 46 — чтение параметров выбранного документа.

Анализ полученного ответа позволит точно сказать, какой ИНН был записан в документ. Если в дампе памяти данные верны, а в ОФД — нет, проблему следует решать на стороне оператора фискальных данных.

Итоги и рекомендации

Подведем итог нашему исследованию. Для корректной передачи ИНН кассира необходимо соблюдение трех условий:

  1. В 1С правильно заполнена цепочка Пользователь -> Физическое лицо -> ИНН.
  2. Версия 1С и используемая библиотека подключаемого оборудования (БПО) поддерживают ФФД 1.05 и передают атрибут CashierVATIN.
  3. Прошивка ККТ является актуальной и способна принимать Тег 1203 от драйвера.

Если вы убедились, что 1С передает верный атрибут CashierVATIN, но в ОФД он отображается как «ИНН оператора», в большинстве случаев это является особенностью интерфейса конкретного ОФД, который таким образом именует любое поле ИНН физического лица в чеке. В этом случае дополнительных действий со стороны программиста не требуется, так как законодательные нормы по заполнению тегов соблюдены.

← На главную