При работе с торговым оборудованием в 1С:Управление торговлей 11.3 часто возникает ситуация, когда в личном кабинете ОФД данные чека отображаются некорректно. Одной из наиболее распространенных проблем является неверная идентификация лица, оформившего расчет: вместо ИНН кассира (Тег 1203) отображается ИНН оператора перевода (Тег 1016) или данные вовсе отсутствуют. Разберем детально, как продиагностировать эту проблему, проверить настройки программы и убедиться, что данные уходят в ККТ в правильном формате.
Прежде всего, проанализируем техническую сторону вопроса. Согласно формату фискальных данных (ФФД 1.05 и выше), за ИНН кассира отвечает Тег 1203. Этот реквизит является обязательным для большинства операций. Тег 1016 (ИНН оператора перевода денежных средств) используется только в специфических случаях, когда ваша организация выступает платежным агентом.
Путаница часто возникает из-за визуального представления в интерфейсах некоторых ОФД, где поле может называться «ИНН оператора», подразумевая под этим оператора кассы (кассира). Однако, если техподдержка ОФД указывает на ошибку в заполнении тега, необходимо проверить цепочку передачи данных от 1С до фискального накопителя.
Рассмотрим, откуда программа берет информацию для формирования чека. В 1С:УТ 11.3 данные кассира подтягиваются из карточки пользователя. Проверим настройки по шагам:
Важно помнить, что если ИНН был внесен только что, кассиру необходимо перезапустить сеанс работы с программой (РМК), чтобы обновленные данные попали в кэш и начали передаваться в драйвер оборудования.
Если в справочниках данные указаны верно, но в ОФД все равно уходит ошибка, нам необходимо выяснить, какой именно XML-пакет 1С отправляет на драйвер кассы. Для этого воспользуемся механизмом отладки. Проанализируем ситуацию, найдя в конфигурации процедуру, отвечающую за формирование пакета чека.
Поищем по строке CheckPackage. Обычно формирование происходит в модулях подключаемого оборудования. На выходе мы должны получить сформированную XML-строку. Рассмотрим пример кода, который отвечает за добавление атрибута ИНН кассира в пакет:
Если Не ПустаяСтрока(ОбщиеПараметры.КассирИНН) Тогда
ЗаписьXML.ЗаписатьАтрибут("CashierVATIN", XMLСтрока(ОбщиеПараметры.КассирИНН));
КонецЕсли;
В структуре XML-чека атрибут CashierVATIN соответствует ИНН кассира. Если в режиме отладки вы видите, что вместо этого атрибута заполняется MoneyTransferOperatorVATIN, значит, в программе ошибочно включен режим платежного агента или используется устаревшая версия обработки драйвера. Убедитесь, что релиз конфигурации не ниже 11.3.4, так как именно в этих версиях была реализована полноценная поддержка ФФД 1.05.
Если 1С формирует верный XML-пакет, но в чек попадают некорректные данные, проблема может крыться в драйвере или прошивке кассового аппарата. Проанализируем способы проверки для популярных производителей.
Для ККТ АТОЛ:
Выясним, что именно получает касса, через «Тест драйвера ККТ» (версия 10). Для этого можно заглянуть в лог-файл драйвера, который обычно находится в папке пользователя или в каталоге установки драйвера (файл fptr10.log). В нем нужно искать параметр LIBFPTR_PARAM_CASHIER_VATIN. Если значение передается из 1С, оно будет зафиксировано в логе перед командой закрытия чека.
Для ККТ Штрих-М:
В драйвере версии 4.14 и выше можно проверить содержимое фискального документа непосредственно из памяти кассы:
Если стандартные средства визуализации подводят, разберем продвинутый метод — использование команд нижнего уровня. Это позволяет получить «сырые» данные, которые касса отправила в ОФД. В тесте драйвера ККМ перейдем на вкладку Нижний уровень.
Для получения данных о конкретном документе используем последовательность команд:
A4 45 [НомерЧека в hex] — выбор документа для анализа.A4 46 — чтение параметров выбранного документа.Анализ полученного ответа позволит точно сказать, какой ИНН был записан в документ. Если в дампе памяти данные верны, а в ОФД — нет, проблему следует решать на стороне оператора фискальных данных.
Подведем итог нашему исследованию. Для корректной передачи ИНН кассира необходимо соблюдение трех условий:
CashierVATIN.Если вы убедились, что 1С передает верный атрибут CashierVATIN, но в ОФД он отображается как «ИНН оператора», в большинстве случаев это является особенностью интерфейса конкретного ОФД, который таким образом именует любое поле ИНН физического лица в чеке. В этом случае дополнительных действий со стороны программиста не требуется, так как законодательные нормы по заполнению тегов соблюдены.