Как настроить вывод ФИО кассира вместо системного администратора при печати чеков на фискальном регистраторе

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

При подключении фискальных регистраторов (в частности, ККТ АТОЛ) к конфигурации «1С:Бухгалтерия предприятия 3.0» нередко возникает ситуация, когда смена на кассе всегда открывается под системным администратором. В дальнейшем при пробитии чеков на бумажной ленте вместо реального имени сотрудника печатается «Сист. администратор», а попытка пробить чек под паролем другого кассира приводит к ошибке авторизации ККТ. Разберем по шагам, почему возникает эта коллизия, как устроена передача данных кассира в 1С и какими способами можно настроить корректный вывод ФИО.

Выясним причину конфликта паролей и подстановки администратора

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

В современных реалиях (ФФД 1.05 и ФФД 1.2) концепция изменилась: касса не должна брать имя сотрудника из своей внутренней памяти. Программа 1С обязана передавать в драйвер конкретные фискальные теги чека:

  1. Тег 1021 — наименование должности и ФИО кассира.
  2. Тег 1203 — ИНН кассира.

Если эти теги не заполнены в пакете данных чека, касса берет резервное значение из внутренних таблиц (где под номером 30 записан «Системный администратор»).

Как 1С:Бухгалтерия 3.0 собирает данные кассира

Рассмотрим, откуда типовая конфигурация получает сведения для заполнения реквизитов чека. Посмотрим на пример запроса из общего модуля или модуля документа, формирующего чек (например, метод СобратьДанныеЧеков документа ПриходныйКассовыйОрдер):


ВЫБРАТЬ ПЕРВЫЕ 1
    ЕСТЬNULL(ФизическиеЛица.ФИО, НЕОПРЕДЕЛЕНО) КАК КассирФИО,
    ЕСТЬNULL(ФизическиеЛица.ИНН, НЕОПРЕДЕЛЕНО) КАК КассирИНН
ПОМЕСТИТЬ Кассир
ИЗ
    Справочник.Пользователи КАК Пользователи
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
    ПО Пользователи.ФизическоеЛицо = ФизическиеЛица.Ссылка
ГДЕ
    Пользователи.Ссылка = &Пользователь

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

Далее проанализируем обработку этих данных на уровне библиотеки подключаемого оборудования (БПО). В общем модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент при вызове команд (например, открытие смены) выполняется проверка:


Кассир = ?(ВходныеПараметры <> Неопределено И ВходныеПараметры.Свойство("Кассир"), 
           ВходныеПараметры.Кассир, 
           НСтр("ru='Администратор'"));

Если во входных параметрах структуры имя кассира не определено, БПО автоматически подставляет значение по умолчанию — «Администратор».

Решение 1. Проверка и заполнение карточки пользователя в 1С

Разберем основной и самый простой шаг, который решает проблему в типовой конфигурации без внесения изменений в код:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав — Пользователи.
  2. Откроем карточку пользователя, под которым осуществляется вход в программу и оформление кассовых документов.
  3. Проверим заполнение реквизита Физическое лицо. Если поле не заполнено, выберем соответствующее физлицо или создадим новое.
  4. Откроем карточку самого физического лица и убедимся, что там указаны полное ФИО и корректный ИНН.
  5. Убедимся, что у учетной записи пользователя кассира назначены достаточные права (роли) для чтения справочника ФизическиеЛица, иначе при включенном механизме ограничения прав на уровне записей (RLS) запрос вернет пустое значение.

Решение 2. Переход на современный стандарт драйвера ККТ

Если оборудование подключено по устаревшей схеме «Фискальный регистратор», ККТ требует авторизацию по внутренним номерам операторов. Для исключения конфликта паролей переведем кассу на современный тип подключения:

  1. Откроем раздел Администрирование — Подключаемое оборудование.
  2. Вместо устаревшего типа создадим запись с типом ККТ с передачей данных.
  3. В качестве обработчика драйвера выберем драйвер версии 10.х (например, «АТОЛ: ККТ с передачей данных в ОФД 10.х»).
  4. В настройках подключения укажем системный пароль доступа по умолчанию (30).

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

Решение 3. Корректировка внутренней таблицы операторов ККТ

Если используется старая прошивка или специализированная доработка, где смена по-прежнему жестко фиксируется за номером 30, разберем обходной путь через драйвер производителя:

  1. Закроем программу 1С и запустим утилиту «Тест драйвера ККТ».
  2. Установим связь с кассой и перейдем в раздел работы с внутренними таблицами ККТ (параметры оборудования).
  3. Найдем таблицу операторов (кассиров).
  4. Найдем строку с номером 30 (по умолчанию там прописано «Системный администратор»).
  5. Переименуем запись под номером 30, указав универсальное наименование (например, «Кассир») либо ФИО ответственного сотрудника, если на данном рабочем месте чеки выбивает только один человек.
  6. Сохраним изменения в таблице ККТ.

Этот способ позволяет избавиться от печати надписи «Сист. администратор» на сервисных чеках открытия смены, даже если драйвер не передает динамические реквизиты кассира в этот отчет.

← На главную