Как организовать работу двух кассиров на одной онлайн-кассе в 1С

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

При автоматизации торговых точек нередко возникает потребность подключить два или более рабочих места кассиров к одному фискальному регистратору (онлайн-ККТ). При этом необходимо вести раздельный учет выручки по каждому кассиру, пробивать чеки со своими реквизитами и организовать хранение наличности в отдельных денежных ящиках. Разберем особенности реализации такой схемы, правовые ограничения по 54-ФЗ и технические способы настройки оборудования и конфигурации 1С.

Правовые требования и реквизиты фискального чека

Проанализируем требования Федерального закона № 54-ФЗ и форматов фискальных документов (ФФД) относительно смены кассиров:

  1. Передача данных кассира в чеке: В соответствии с ФФД реквизиты кассира задаются тегом 1021 («Кассир») и тегом 1203 («ИНН кассира»). Эти теги передаются индивидуально в каждый фискальный чек. Закон не требует, чтобы смена закрывалась при смене фактического кассира за рабочим местом. Открытие смены фиксирует лишь того сотрудника, который пробил первый чек или выполнил операцию открытия, но все последующие чеки в течение одной открытой смены могут регистрироваться с указанием других кассиров.
  2. Кассовая дисциплина и наличность: Согласно указаниям ЦБ РФ № 3210-У, сумма фактических наличных денежных средств на кассовом узле сверяется с общим счетчиком наличности в ККТ. В фискальном накопителе и регистрах кассы вся наличность учитывается суммарно. Использование двух раздельных мест хранения требует строгого учета остатков на стороне 1С, чтобы общая сумма в двух ящиках совпадала с регистром ККТ.

Почему не работают стандартные секции и X-отчеты ККТ

Выясним причину, почему нельзя разделить выручку исключительно средствами самого фискального регистратора:

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

Для решения задачи построения отчетности по кассирам в течение дня применяются следующие механизмы:

  1. В каждом кассовом документе или чеке в 1С обязательно фиксируются автор документа, ответственный кассир, рабочее место и тип проведенной оплаты.
  2. В 1С формируется собственный оперативный отчет (например, по регистру накопления или журналу документов), группирующий продажи и возвраты в разрезе кассиров и способов расчета.
  3. При закрытии смены перед формированием общего отчета о закрытии смены (Z-отчета) кассиры снимают внутренние промежуточные отчеты из 1С для сверки остатков наличности в своих ящиках.

Техническая реализация передачи кассира из 1С

Рассмотрим, как передавать данные конкретного кассира при формировании фискального чека. При интеграции с драйверами торгового оборудования (например, АТОЛ с использованием библиотеки FprnM1C82_54FZ.dll или нативных компонентов) в структуру или XML-пакет параметров фискализации передаются реквизиты текущего пользователя сеанса.

Посмотрим на пример логики передачи реквизитов кассира в коде 1С перед вызовом функции фискализации чека:


// Подготовка данных кассира для фискального чека
ИмяКассира = глПользователь.Наименование;
ИННКассира = глПользователь.ИНН;

Если ПустаяСтрока(ИННКассира) = 0 Тогда
    ОбъектДрайвера.КассирИНН = ИННКассира;
КонецЕсли;

ОбъектДрайвера.Кассир = ИмяКассира;
// Далее вызывается метод формирования и печати чека

Предотвращение конфликтов блокировки порта при одновременной печати

Если несколько пользователей работают в терминальных сессиях (RDP) и одновременно отправляют чеки на печать, возникает ошибка блокировки COM-порта или сетевого сокета («Порт занят»). Разберем, как устранить эту проблему:

  1. Кратковременное занятие порта: В коде 1С соединение с ККТ не должно удерживаться постоянно открытым. Порт открывается непосредственно перед фискализацией конкретного чека и принудительно закрывается сразу после завершения печати или ошибки.
  2. Организация очереди через веб-сервер ККТ: Современные версии драйверов содержат локальный веб-сервер, принимающий JSON-запросы по протоколу HTTP/HTTPS. Сервер драйвера самостоятельно выстраивает входящие запросы в очередь и последовательно отправляет их на кассу без блокировки сеансов 1С.
  3. Очередь чеков средствами 1С: При пробитии чека документ в 1С помещается в специальный регистр/таблицу очереди со статусом «К печати». Фоновое регламентное задание или выделенный сеанс последовательно считывает записи из очереди, отправляет их на кассу и фиксирует результат фискализации.

Подключение и управление денежными ящиками

Физически к стандартному разъему RJ-11/RJ-12 на корпусе фискального регистратора можно подключить только один денежный ящик. Разберем варианты организации раздельного хранения наличности для двух рабочих мест:

  1. Автономные ящики с ключевым замком: Самый простой вариант — использование стандартных механических денежных ящиков, открываемых кассирами вручную с помощью ключа.
  2. USB/RS-232 триггеры денежного ящика: К компьютеру второго кассира подключается специализированное устройство (USB Cash Drawer Trigger). В момент проведения наличной оплаты 1С посылает управляющий сигнал на виртуальный COM-порт триггера, вызывая автоматическое открытие ящика второго кассира.
  3. Использование вспомогательного нефискального принтера: На рабочем месте второго кассира устанавливается недорогой чековый принтер (POS-принтер), к которому подключается второй денежный ящик. При проведении оплаты 1С отправляет на него команду открытия ящика или печатает копию чека/товарного чека для покупателя.
← На главную