Как настроить передачу ИНН кассира в ОФД при использовании 1С 7.7 и ККТ Атол

Программист 1С v7.7 Торговля и дистрибуция
← На главную

При работе со старыми конфигурациями на платформе 1С 7.7, такими как «Штрих-М: Кассир 1.10», в связке с современными онлайн-кассами (например, Атол 22Ф), часто возникает проблема: ФИО кассира печатается, а его ИНН не передается в ОФД. Это происходит даже в тех случаях, когда все данные корректно заполнены в таблицах драйвера ККТ. Разберем подробно, почему так происходит и как обеспечить выполнение требований законодательства по форматам фискальных данных (ФФД).

Почему запись в таблицы ККТ больше не работает

В ранних версиях кассового ПО и протоколов обмена было достаточно один раз прописать данные кассиров в энергонезависимую память кассового аппарата (в так называемые «Таблицы»). При открытии чека касса просто брала ФИО из соответствующей строки. Однако с переходом на ФФД 1.05 и выше правила игры изменились.

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

Различие между Тегами 1021 и 1203

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

  1. Тег 1021 (Кассир): содержит ФИО лица, осуществляющего расчет.
  2. Тег 1203 (ИНН кассира): содержит 12-значный номер налогоплательщика.

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

Программная передача данных кассира в 1С 7.7

Если вы используете драйвер Атол (например, версии 8.16), стандартный метод записи в таблицу WriteTable() может не давать результата для ОФД. Вместо этого необходимо использовать механизм передачи низкоуровневых тегов перед закрытием чека. Выясним, как это реализовать в коде.

Рассмотрим пример кода, который позволяет передать ФИО кассира (тег 1021) напрямую через объект драйвера:


Объект.Password = "30"; // Пароль администратора ККТ
Объект.TagNumber = 1021; // Номер тега "Кассир"
Объект.TagType = 7;    // Тип тега (7 - строка)
Объект.TagValueStr = "Иванов И.И."; // ФИО кассира
Объект.FNSendTag(); // Команда отправки тега в ФН

По аналогии с этим примером, для передачи ИНН кассира необходимо использовать Тег 1203. Обратите внимание, что тип значения для ИНН также должен соответствовать требованиям драйвера (обычно это строка из 12 цифр).


Объект.TagNumber = 1203; // Номер тега "ИНН кассира"
Объект.TagType = 7;    // Тип тега (строка)
Объект.TagValueStr = "123456789012"; // Реальный ИНН сотрудника
Объект.FNSendTag();

Важный нюанс: Данные команды FNSendTag() должны вызываться в процессе открытия чека или непосредственно перед его закрытием (командой CloseCheck), но обязательно ПОСЛЕ того, как касса вошла в режим формирования чека.

Проблема закрытого кода в конфигурациях Штрих-М

В конфигурации «Штрих-М: Кассир 1.10» большая часть логики работы с торговым оборудованием вынесена в защищенные модули или скомпилированные компоненты. Если программа жестко закодирована под использование старых методов Атол (через таблицы), то простое изменение настроек в интерфейсе не поможет.

В такой ситуации у нас есть три пути:

  1. Внедрение внешней компоненты: Написать или использовать готовую внешнюю обработку обслуживания (.ert), которая будет перехватывать процесс печати чека и добавлять нужные теги.
  2. Использование промежуточного слоя: Некоторые системные администраторы используют специальные «прокси-драйверы», которые модифицируют пакет данных, идущий от 1С к кассе, вставляя туда ИНН кассира по умолчанию.
  3. Обновление конфигурации: Переход на «Штрих-М: Кассир 5». В пятой версии работа с современными версиями ФФД и драйверами Атол 10-й серии реализована штатно, и там поля для ИНН кассира доступны в настройках пользователей.

Проверка версии прошивки и драйвера

Иногда программный код написан верно, но касса все равно «режет» ИНН. Проанализируем техническую составляющую оборудования Атол 22Ф. Для корректной работы с тегами требуются актуальные версии внутреннего ПО ККТ.

Если ваша касса работает на Платформе 2.5 (старая архитектура Атол), убедитесь, что версия прошивки не ниже 5199. На более старых прошивках поддержка передачи тега 1203 через драйверы 8-й серии работала нестабильно. Однако лучшим решением сегодня является переход на Платформу 5.0 и использование Драйвера ККТ 10.x.

В 10-й версии драйвера работа с кассиром выглядит иначе. Вместо FNSendTag используются свойства объекта LIBFPTR_PARAM_CASHIER_NAME и LIBFPTR_PARAM_CASHIER_INN. Посмотрим на логику работы с новым драйвером:


Драйвер.setParam(65530, "Иванов И.И."); // LIBFPTR_PARAM_CASHIER_NAME
Драйвер.setParam(65531, "123456789012"); // LIBFPTR_PARAM_CASHIER_INN
Драйвер.operatorLogin();

Эта команда регистрирует кассира в текущем сеансе работы драйвера, и данные будут автоматически подставляться в каждый чек.

Резюме и рекомендации

Подведем итог. Если вы столкнулись с тем, что ИНН кассира не уходит в ОФД на 1С 7.7:

Помните, что отсутствие ИНН кассира в электронном чеке — это формальное нарушение порядка применения ККТ, и своевременное исправление этой ошибки убережет вашу организацию от лишнего внимания со стороны налоговых органов.

← На главную