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