Как настроить передачу ИНН кассира в чеках ККТ в 1С:Управление торговлей 10.3?

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

В процессе работы с контрольно-кассовой техникой (ККТ) и интеграции её с устаревшими, но всё ещё активно использующимися конфигурациями 1С, часто возникают вопросы соответствия актуальным требованиям налогового законодательства. Один из таких вопросов — передача ИНН кассира (тег 1203) в фискальных чеках.

В этой статье мы подробно разберем, почему возникает проблема с передачей ИНН кассира в типовой конфигурации «1С:Управление торговлей 10.3» (УТ 10.3), рассмотрим законодательные требования к этому реквизиту и детально разберем технические способы решения задачи, включая доработку программного кода конфигурации.

Законодательный контекст: обязателен ли ИНН кассира?

Перед тем как приступать к доработке программы, выясним правовые основания. Согласно требованиям ФНС России к форматам фискальных данных (ФДД 1.05, 1.1, 1.2), реквизит «ИНН кассира» (тег 1203) имеет следующие особенности:

  1. Только для электронного формата: Данный реквизит обязателен для передачи в ОФД (электронная форма чека). На бумажном чеке, который выдается покупателю в руки, ИНН кассира печатать не требуется. Это сделано для защиты персональных данных сотрудников организации.
  2. Принцип «при наличии»: В таблицах обязательности реквизитов для тега 1203 указан признак «3», что означает «рекомендуется» или «передается при наличии». Если у кассира физически отсутствует ИНН (например, он является иностранным гражданином) или данные не внесены в базу, чек всё равно будет пробит и отправлен без ошибок. Законодательных штрафов непосредственно за отсутствие ИНН кассира в чеке нет (в отличие от ФИО и должности кассира, отсутствие которых ведет к штрафам).
  3. Интерес контролирующих органов: Налоговая служба настоятельно рекомендует передавать этот тег. По ИНН кассира автоматизированные системы ФНС сверяют данные с отчетами по сотрудникам (РСВ, ЕФС-1). Это позволяет оперативно выявлять сотрудников, работающих без официального оформления, и пресекать схемы с «серыми» зарплатами.

Анализ проблемы в типовой УТ 10.3

Поскольку конфигурация «Управление торговлей 10.3» находится на ограниченной поддержке, фирма 1С добавляет в неё только критически важные изменения законодательства. Так как тег 1203 имеет признак обязательности «при наличии», разработчики 1С не стали внедрять полноценный механизм его передачи для всех видов документов в этой старой конфигурации.

Проанализируем программный код. Если мы откроем конфигуратор УТ 10.3 и выполним глобальный поиск по строке КассирИНН, то обнаружим примечательный факт. Данный параметр собирается и передается в ККТ только при формировании чека коррекции:


ПараметрыЧека.КассирИНН = РеквизитыКассир.ИНН; // Идентификационный номер налогоплательщика кассира, при наличии.

В механизме формирования обычного чека продажи (документы «Чек ККМ», «Реализация товаров и услуг» при оплате наличными/картой и др.) этот параметр попросту игнорируется и не передается драйверу ККТ. Ниже мы разберем, как исправить эту ситуацию программным путем.

Способ 1. Программная доработка УТ 10.3 (для разработчиков)

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

Шаг 1. Подготовка данных в ИБ

Прежде всего убедимся, что ИНН кассира вообще есть в базе данных и его можно сопоставить с текущим пользователем. В УТ 10.3 связь настраивается следующим образом:

  1. У каждого пользователя в справочнике Пользователи есть связанное физическое лицо из справочника ФизическиеЛица.
  2. В карточке физического лица должно быть заполнено стандартное поле ИНН. Убедитесь, что у всех ваших кассиров это поле заполнено корректно (12 цифр).

Шаг 2. Корректировка передачи параметров чека

Нам необходимо передать значение ИНН в структуру параметров, которая отправляется на ККТ. В зависимости от релиза вашей УТ 10.3 и используемой версии БПО (Библиотеки подключаемого оборудования), формирование XML-пакета чека может происходить в разных местах.

Обычно за формирование XML-пакета для ККТ отвечает общий модуль МенеджерОборудованияКлиентСервер или специализированная обработка обслуживания ККТ. Нам нужно найти функцию, которая формирует структуру или XML-документ чека (например, ПолучитьПакетДокументаПринтераФискального или аналогичную).

Рассмотрим пример доработки, где мы программно добавляем ИНН кассира в параметры чека. Нам нужно получить ИНН текущего пользователя:


// Получаем физлицо текущего пользователя
ТекущийПользователь = ПараметрыСеанса.ТекущийПользователь;
ФизЛицо = ТекущийПользователь.ФизЛицо;

ИННКассира = "";
Если ЗначениеЗаполнено(ФизЛицо) Тогда
    ИННКассира = СокрЛП(ФизЛицо.ИНН);
КонецЕсли;

Далее найдем фрагмент кода, где заполняется объект кассира для передачи в XML. Обычно там фигурирует только ФИО кассира. Добавим туда передачу ИНН:


// Было в типовом коде:
// ПараметрыЧека.Кассир = Строка(ТекущийПользователь);

// Дорабатываем код:
ПараметрыЧека.Вставить("Кассир", Строка(ТекущийПользователь));
Если ЗначениеЗаполнено(ИННКассира) Тогда
    ПараметрыЧека.Вставить("КассирИНН", ИННКассира);
КонецЕсли;

Если в вашей конфигурации интеграция с ККТ идет через формирование XML-строки напрямую, найдите узел, формирующий тег кассира, и добавьте туда атрибут ИНН (или КассирИНН в зависимости от требований используемой версии драйвера оборудования):


// Пример формирования атрибутов XML
ЗаписьXML.ЗаписатьАтрибут("Кассир", СокрЛП(ТекущийПользователь.Наименование));
Если ЗначениеЗаполнено(ИННКассира) Тогда
    ЗаписьXML.ЗаписатьАтрибут("КассирИНН", ИННКассира);
КонецЕсли;

После внесения этих изменений драйвер ККТ (например, АТОЛ или Штрих-М) получит ИНН кассира из 1С и передаст его в фискальный накопитель, который, в свою очередь, запишет его в тег 1203 электронной формы чека.

Способ 2. Запись ИНН напрямую в кассовый аппарат (альтернатива без программирования)

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

Суть метода заключается в том, чтобы жестко записать ФИО и ИНН кассира во внутреннюю память (таблицы) самого кассового аппарата.

Рассмотрим, как это сделать по шагам на примере ККТ марки АТОЛ:

  1. Закройте программу 1С, чтобы освободить порт подключения к ККТ.
  2. Запустите утилиту «Тест драйвера ККТ» (версии 10.х).
  3. Установите флаг «Включено» для связи с кассой.
  4. Перейдите в раздел «Свойства» -> «Параметры ККТ».
  5. Найдите раздел настроек, отвечающий за пользователей/кассиров (обычно это раздел «Кассиры» или «Пользователи»).
  6. В поле «Кассир 1» введите ФИО вашего сотрудника (например, Иванов И.И.) и его должность.
  7. В соседнем поле для этого же кассира укажите его 12-значный ИНН.
  8. Сохраните изменения в памяти ККТ.

При использовании этого метода кассовый аппарат будет автоматически подставлять сохраненные ФИО и ИНН кассира в каждый пробиваемый чек, игнорируя пустые значения, приходящие из программы 1С.

Важное ограничение: Этот способ абсолютно не подходит для торговых точек с посменной работой нескольких сотрудников или большим штатом кассиров. Если на ККТ будет пробивать чеки другой сотрудник, а в ОФД уйдет жестко прописанный ИНН первого кассира, это будет прямым нарушением ведения кассовой дисциплины и искажением отчетности в ФНС.

Резюме

Мы выяснили, что в типовой версии «1С:Управление торговлей 10.3» передача ИНН кассира в обычных чеках не реализована «из коробки» из-за рекомендательного характера этого реквизита на момент разработки стандартов. Для решения этой задачи у нас есть два пути:

← На главную