При фискализации чеков на кассовых аппаратах (в частности, ККТ АТОЛ) пользователи и разработчики нередко сталкиваются с ситуацией, когда в печатной форме фискального документа в поле кассира выводится системное имя «СИС. АДМИНИСТРАТОР» вместо реального ФИО сотрудника, оформившего продажу. Согласно требованиям 54-ФЗ и форматов фискальных документов (тег 1021 — «Кассир»), указание реального должностного лица является обязательным реквизитом чека при расчетах с участием физических лиц.
Разберем детально механизм работы ККТ, выясним причину такого поведения и рассмотрим все доступные варианты решения проблемы как через пользовательский интерфейс 1С, так и на уровне настроек драйвера и программного кода.
Проанализируем внутреннюю логику фискального регистратора. В прошивке кассового аппарата существует внутренняя таблица операторов/кассиров. По умолчанию строке №30 соответствует пароль 30 и системная должность «СИС. АДМИНИСТРАТОР».
При печати чека из 1С драйвер передает в ККТ параметры фискализации. Если управляющая система 1С передает пустое значение тега 1021 (или пустую строку в параметрах формирования чека), кассовый аппарат берет значение имени оператора из своей внутренней таблицы, ориентируясь на пароль доступа, указанный при подключении оборудования (по умолчанию используется пароль системного администратора 30).
В типовых конфигурациях (например, «1С:Розница», «1С:Управление торговлей», «1С:ERP») имя кассира извлекается не напрямую из логина текущего пользователя базы данных, а из связанного с ним физического лица. Если эта связка не заполнена, в драйвер передается пустое значение.
Выполним проверку и настройку по шагам:
Физические лица.1203 может требоваться в электронных чеках).Если на торговой точке работает один постоянный оператор или смена закрывается регламентным заданием под фиксированной учетной записью, можно отредактировать внутреннюю таблицу кассового аппарата напрямую через утилиту управления драйвером.
Разберем порядок действий:
СИС. АДМИНИСТРАТОР на реальное ФИО кассира либо очистим данное поле.В нетиповых конфигурациях, самописных обработках обслуживания или старых версиях Библиотеки подключаемого оборудования (БПО) необходимо убедиться, что реквизит кассира корректно передается в методы драйвера перед закрытием чека.
Посмотрим на пример формирования вызова метода драйвера:
Функция ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал, ОплатаПоПодарочномуСертификату = 0, КассирИзЧека = "", НомерЧека) Экспорт
// Определяем имя кассира: если в документе кассир не указан, берем текущего пользователя
ИмяКассира = ?(КассирИзЧека = "", СокрЛП(ПараметрыСеанса.ТекущийПользователь), КассирИзЧека);
// Передаем параметры в драйвер оборудования
Результат = Объект.Драйвер.СформироватьЧек(
Объект.ИДУстройства,
ИмяКассира,
СуммаНал,
СуммаБезнал,
ОплатаПоПодарочномуСертификату,
НомерЧека
);
Возврат Результат;
КонецФункции
При использовании современных версий БПО передача данных осуществляется через XML-пакет CheckPackage. В этом случае убедимся, что корневой узел Parameters содержит заполненные атрибуты CashierName и при необходимости CashierINN:
// Заполнение атрибутов пакета фискализации
ЗаписьXML.ЗаписатьАтрибут("CashierName", СокрЛП(ФИОКассира));
Если ЗначениеЗаполнено(ИННКассира) Тогда
ЗаписьXML.ЗаписатьАтрибут("CashierINN", СокрЛП(ИННКассира));
КонецЕсли;
Таким образом, для гарантированного вывода корректных данных сотрудника достаточно привязать физическое лицо к учетной записи в 1С либо явно прописать передачу непустой строки с ФИО в алгоритмах формирования чека.