Обновление конфигурации в экосистеме 1С — это процедура, которая часто приносит не только новые возможности, но и неожиданные технические сложности. Одной из наиболее резонансных проблем, с которой сталкиваются пользователи после перехода на новые релизы 1С:Управление нашей фирмой (УНФ) (например, при переходе на редакцию 1.6.15 и последующие версии), является блокировка печати чеков онлайн-кассой. На экране пользователя появляется критическая ошибка: «Тег кассира не заполнен» (в терминологии форматов фискальных документов — Тег 1021).
Эта ошибка полностью останавливает работу розничной точки, так как ККТ отказывается фискализировать продажи без корректно переданных данных сотрудника. В данной статье мы детально разберем природу этого сбоя, проанализируем законодательные требования ФНС и рассмотрим пошаговый алгоритм устранения проблемы в настройках 1С:УНФ.
Для того чтобы понять логику программы 1С и подключенного оборудования, обратимся к нормативной базе. Согласно Федеральному закону № 54-ФЗ, регламентирующему применение контрольно-кассовой техники, любой выдаваемый покупателю чек должен содержать обязательный перечень реквизитов. В этот перечень входит ФИО лица, осуществившего расчет с покупателем — то есть кассира.
В соответствии с форматами фискальных документов (ФФД версий 1.05, 1.1 и 1.2), за этот реквизит отвечает Тег 1021 («Кассир»). Если продажа осуществляется при участии человека, данный тег должен быть обязательно передан в кассу и записан в фискальный накопитель. Единственным исключением из этого правила являются расчеты через автоматические устройства (например, торговые автоматы или платежные терминалы самообслуживания), где вместо имени кассира в чек записывается номер автомата (Тег 1036).
При обновлении конфигурации 1С:УНФ происходит обновление встроенной Библиотеки подключаемого оборудования (БПО). Новые версии БПО строго следуют правилам ФФД и блокируют отправку команды печати, если в структуре XML-пакета, посылаемого на ККТ, отсутствуют обязательные реквизиты кассира. Если в старых релизах касса могла автоматически подставлять дефолтное имя из своей внутренней памяти, то современные стандарты требуют передачи этих данных непосредственно из учетной системы.
Самая распространенная ошибка системных администраторов и пользователей при настройке кассы после обновления — это попытка ограничиться указанием ответственного лица в настройках Рабочего места кассира (РМК). Программа 1С:УНФ требует жесткого сопоставления учетной записи пользователя с его физическими данными. Рассмотрим пошагово, как выстроить эту логику:
Сотрудники.ФизическиеЛица. Нам необходимо убедиться, что у данного физического лица корректно заполнено поле ФИО. Именно текстовое значение из этого поля будет передаваться в кассу в качестве Тега 1021.Многие пользователи утверждают, что сопоставление пользователя и физического лица выполнено, но ошибка «Тег кассира не заполнен» все равно продолжает появляться. Проанализируем эту ситуацию глубже. В современных прошивках онлайн-касс АТОЛ, Штрих-М и других производителей, помимо имени кассира, обязательным к передаче является его ИНН (Тег 1203).
Если в карточке физического лица в 1С поле ИНН оставлено незаполненным, то при формировании пакета данных БПО может сформировать пустой блок кассира или передать некорректную структуру данных. Драйвер кассы, получив пакет без ИНН, расценивает это как нарушение протокола ФФД и возвращает ошибку кассира. Чтобы исправить это, выполним следующие действия:
Выясним еще одну причину сбоя, которая кроется на стыке взаимодействия платформы 1С и системного ПО компьютера. При обновлении конфигурации 1С:УНФ с релиза 1.6.14 до 1.6.15 БПО начинает использовать новые программные интерфейсы (API) для общения с драйверами торгового оборудования.
Если на рабочем месте кассира установлен устаревший системный драйвер ККТ (например, АТОЛ ДТО 8.х или ДТО 9.х), он не сможет корректно распознать новые параметры передачи тегов, присылаемые из 1С. В результате драйвер «теряет» данные кассира в процессе передачи команды на печать, и касса выдает ошибку. Для решения этой проблемы выполним обновление программного обеспечения:
Рассмотрим ситуацию, когда в магазине используется одна ККТ, но под ней работают несколько менеджеров. Если в настройках РМК не задан основной ответственный пользователь по умолчанию, программа может передавать на кассу пустые значения при автоматическом открытии или закрытии смены.
Рекомендуется зайти в настройки рабочего места кассира и проверить реквизит «Основной ответственный». Здесь должен быть указан профиль пользователя, у которого выполнены все шаги по привязке физического лица и ИНН. Это гарантирует, что даже при возникновении спорных ситуаций программа всегда будет иметь резервный корректный профиль для заполнения тега кассира.
Для понимания того, как учетная система передает данные на аппаратный уровень, рассмотрим упрощенный пример кода, который выполняется в недрах конфигурации при подготовке XML-пакета для фискализации чека:
// Подготовка параметров кассира для передачи в ККТ
ПараметрыКассира = Новый Структура;
Если ЗначениеЗаполнено(ПараметрыСессии.ТекущийПользователь.ФизическоеЛицо) Тогда
ПараметрыКассира.Вставить("ИмяКассира", ПараметрыСессии.ТекущийПользователь.ФизическоеЛицо.Наименование);
Если ЗначениеЗаполнено(ПараметрыСессии.ТекущийПользователь.ФизическоеЛицо.ИНН) Тогда
ПараметрыКассира.Вставить("ИННКассира", ПараметрыСессии.ТекущийПользователь.ФизическоеЛицо.ИНН);
Иначе
// В зависимости от настроек БПО, отсутствие ИНН может быть критичным
ПараметрыКассира.Вставить("ИННКассира", "");
КонецЕсли;
КонецЕсли;
Данный фрагмент кода наглядно демонстрирует, почему при отсутствии связи между ТекущийПользователь и объектом ФизическоеЛицо структура параметров уходит на кассу пустой, вызывая отказ ККТ печатать документ.
Если все вышеперечисленные настройки выполнены, но касса упорно отказывается печатать чеки, имеет смысл применить обходной маневр, который помог автору темы на форуме. Иногда в процессе обновления метаданные конфигурации обновляются некорректно из-за накопившихся кэш-файлов платформы. В таком случае помогает откат на резервную копию базы до обновления, последовательная очистка кэша сервера и локального ПК, и повторное накатывание обновления конфигурации 1С:УНФ на чистую базу.
Выполнение этих простых, но системных шагов позволит вам навсегда избавиться от ошибки «Тег кассира не заполнен» и обеспечить стабильную работу розничной торговой точки в полном соответствии с требованиями законодательства.