Почему в чеке ККТ вместо имени кассира печатается «Сис. администратор» и как это исправить?

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

При фискализации чеков на кассовых аппаратах (в частности, ККТ АТОЛ) пользователи и разработчики нередко сталкиваются с ситуацией, когда в печатной форме фискального документа в поле кассира выводится системное имя «СИС. АДМИНИСТРАТОР» вместо реального ФИО сотрудника, оформившего продажу. Согласно требованиям 54-ФЗ и форматов фискальных документов (тег 1021 — «Кассир»), указание реального должностного лица является обязательным реквизитом чека при расчетах с участием физических лиц.

Разберем детально механизм работы ККТ, выясним причину такого поведения и рассмотрим все доступные варианты решения проблемы как через пользовательский интерфейс 1С, так и на уровне настроек драйвера и программного кода.

Причина возникновения надписи «Сис. администратор»

Проанализируем внутреннюю логику фискального регистратора. В прошивке кассового аппарата существует внутренняя таблица операторов/кассиров. По умолчанию строке №30 соответствует пароль 30 и системная должность «СИС. АДМИНИСТРАТОР».

При печати чека из 1С драйвер передает в ККТ параметры фискализации. Если управляющая система 1С передает пустое значение тега 1021 (или пустую строку в параметрах формирования чека), кассовый аппарат берет значение имени оператора из своей внутренней таблицы, ориентируясь на пароль доступа, указанный при подключении оборудования (по умолчанию используется пароль системного администратора 30).

Решение 1. Заполнение реквизитов пользователя в 1С (штатный способ)

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

Выполним проверку и настройку по шагам:

  1. Перейдем в раздел Администрирование → Настройки пользователей и прав → Пользователи.
  2. Откроем карточку пользователя, под которым осуществляется вход в режим РМК или оформление чеков.
  3. Проверим заполнение реквизита Физическое лицо. Если поле пустое, выберем соответствующего сотрудника из справочника Физические лица.
  4. Откроем карточку самого физического лица и убедимся, что реквизит ФИО заполнен полностью и без ошибок (также рекомендуется проверить наличие ИНН, так как тег 1203 может требоваться в электронных чеках).
  5. Перезапустим сеанс пользователя и повторим печать чека.

Решение 2. Настройка таблицы кассиров в драйвере ККТ

Если на торговой точке работает один постоянный оператор или смена закрывается регламентным заданием под фиксированной учетной записью, можно отредактировать внутреннюю таблицу кассового аппарата напрямую через утилиту управления драйвером.

Разберем порядок действий:

  1. Закроем 1С, чтобы освободить COM-порт или канал связи с кассой.
  2. Запустим утилиту Тест драйвера ККТ (для АТОЛ — Драйвер ККТ 10.х).
  3. Установим флаг Включено для подключения к фискальному регистратору.
  4. Перейдем в раздел Параметры ККТ → Таблицы (или вкладка Операторы / Кассиры).
  5. Найдем строку оператора с номером 30 (или тот номер, чей пароль указан в 1С в параметрах торгового оборудования).
  6. Заменим значение СИС. АДМИНИСТРАТОР на реальное ФИО кассира либо очистим данное поле.
  7. Сохраним изменения в таблицах ККТ и проверим печать чека.

Решение 3. Программная проверка передачи данных кассира в коде

В нетиповых конфигурациях, самописных обработках обслуживания или старых версиях Библиотеки подключаемого оборудования (БПО) необходимо убедиться, что реквизит кассира корректно передается в методы драйвера перед закрытием чека.

Посмотрим на пример формирования вызова метода драйвера:


Функция ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал, ОплатаПоПодарочномуСертификату = 0, КассирИзЧека = "", НомерЧека) Экспорт
    
    // Определяем имя кассира: если в документе кассир не указан, берем текущего пользователя
    ИмяКассира = ?(КассирИзЧека = "", СокрЛП(ПараметрыСеанса.ТекущийПользователь), КассирИзЧека);
    
    // Передаем параметры в драйвер оборудования
    Результат = Объект.Драйвер.СформироватьЧек(
        Объект.ИДУстройства,
        ИмяКассира,
        СуммаНал,
        СуммаБезнал,
        ОплатаПоПодарочномуСертификату,
        НомерЧека
    );
    
    Возврат Результат;
КонецФункции

При использовании современных версий БПО передача данных осуществляется через XML-пакет CheckPackage. В этом случае убедимся, что корневой узел Parameters содержит заполненные атрибуты CashierName и при необходимости CashierINN:


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

Таким образом, для гарантированного вывода корректных данных сотрудника достаточно привязать физическое лицо к учетной записи в 1С либо явно прописать передачу непустой строки с ФИО в алгоритмах формирования чека.

← На главную