При организации розничных продаж в магазинах с высокой проходимостью часто возникает классическая дилемма. С одной стороны, за кассовым аппаратом посменно или даже одновременно работают несколько продавцов-консультантов. С другой стороны, постоянный перезапуск программы 1С для смены пользователя занимает слишком много времени, тормозит очередь и негативно сказывается на лояльности покупателей. Кроме того, создание десятков учетных записей в условиях высокой текучести кадров превращается в головную боль для системного администратора.
В этой статье мы подробно проанализируем ситуацию, разберем методические и юридические нюансы работы нескольких сотрудников на одной кассе в «1С:Управление торговлей 11» (на примере редакции 11.3/11.4), а также рассмотрим варианты решения — от стандартных настроек до доработки системы с помощью расширения.
---
Прежде чем переходить к технической реализации, выясним причину, почему нельзя просто запустить 1С под учетной записью «Продавец ККМ» и разрешить всем подряд пробивать чеки без идентификации. Здесь действуют два жестких ограничения:
Таким образом, наша задача — обеспечить работу под одним сеансом 1С (чтобы не перенастраивать оборудование и не тратить время на перезапуск), но при этом гарантировать разделение личных продаж и корректную передачу данных реального сотрудника на фискальный регистратор.
---
Рассмотрим подробнее стандартный механизм, заложенный разработчиками 1С. В типовой конфигурации методически разделены две роли:
Если ваша единственная цель — вести учет личных продаж для расчета премий, в УТ 11 предусмотрен штатный механизм:
Шаг 1. Перейдем в настройки программы и активируем опцию фиксации личных продаж менеджеров в настройках РМК (Рабочего места кассира).
Шаг 2. Каждому продавцу в справочнике «Физические лица» (или «Сотрудники») сопоставим персональную пластиковую карту или бейдж со штрихкодом.
Шаг 3. При оформлении продажи в РМК перед сканированием товаров продавец считывает свой штрихкод. Система автоматически подставляет его в табличную часть Товары в качестве продавца для конкретной строки или для всего документа в целом.
При этом чек ККМ пробивается под учетной записью дежурного кассира (который авторизован в сеансе 1С), что не нарушает закон, если этот кассир действительно официально назначен ответственным за кассу в эту смену. Но если продавцы сами принимают деньги и бьют чеки по очереди — этот вариант юридически не подходит.
---
Разберем компромиссный вариант, который часто применяется на практике для обхода проблемы высокой текучести кадров без изменения программного кода.
Вместо создания именных учетных записей (ИвановИИ, ПетровПП) в базе данных создаются служебные пользователи под номерами:
При приеме на работу нового сотрудника за ним внутренним приказом закрепляется определенный номер (например, Кассир №2). В справочнике пользователей 1С для этого пользователя временно меняется ФИО физического лица на актуальные данные нового сотрудника. При его увольнении учетная запись не удаляется — в ней просто меняются ФИО и ИНН на данные следующего принятого работника.
Плюсы метода: не нужно плодить сотни неактивных пользователей в базе данных, настройки торгового оборудования для «Кассир №1» остаются неизменными.
Минусы: все еще требуется перезапуск сеанса 1С при пересменке, что неудобно при быстрой смене сотрудников в течение дня.
---
Если требуется идеальное решение: работа под одним пользователем 1С, моментальная авторизация продавца на кассе (например, по штрихкоду бейджа или PIN-коду) и передача его реальных ФИО/ИНН в ККТ — без программирования не обойтись. Проанализируем, как реализовать такую доработку через механизм расширений конфигурации, не снимая основную конфигурацию УТ 11 с поддержки.
Нам потребуется внести изменения в три ключевые точки системы:
ФизическоеЛицо в документ ЧекККМ и вывести его на форму РМК.Рассмотрим пример программной реализации подмены данных кассира перед отправкой чека на печать. Нам нужно перехватить процедуру формирования фискального чека. В современных версиях БПО для этого используется переопределение параметров фискализации.
Посмотрим на пример кода, который внедряется в модуль менеджера оборудования или обработчик фискализации через расширение:
&Вместо("ПодготовитьДанныеДляПечатиЧека")
Процедура Мой_ПодготовитьДанныеДляПечатиЧека(ПараметрыПечати, ДокументОбъект) Экспорт
// Сначала вызываем стандартную обработку формирования данных
ПродолжитьВызов(ПараметрыПечати, ДокументОбъект);
// Проверим, заполнен ли наш кастомный реквизит "ФизическоеЛицо" в документе ЧекККМ
Если ТипЗнч(ДокументОбъект) = Тип("ДокументСсылка.ЧекККМ") И ЗначениеЗаполнено(ДокументОбъект.ФизическоеЛицо) Тогда
ФизЛицоОбъект = ДокументОбъект.ФизическоеЛицо;
// Получаем ФИО и ИНН реального сотрудника, который пробивает чек
ФИОКассира = ФизЛицоОбъект.Наименование;
ИННКассира = ФизЛицоОбъект.ИНН;
// Подменяем данные кассира в структуре параметров, отправляемой на драйвер ККТ
Если ПараметрыПечати.Свойство("ТаблицаКассиры") Тогда
// Вариант для некоторых старых драйверов
ПараметрыПечати.Кассир = ФИОКассира;
ПараметрыПечати.ИННКассира = ИННКассира;
Иначе
// Стандартный путь для современных версий БПО (ФФД 1.05 / 1.2)
ПараметрыПечати.Вставить("Кассир", ФИОКассира);
ПараметрыПечати.Вставить("КассирИНН", ИННКассира);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
При такой реализации логика работы кассиров на рабочем месте выглядит следующим образом:
Касса_Магазин_1. Оборудование инициализируется один раз и готово к работе.ФизическоеЛицо документа ЧекККМ.Этот подход полностью решает проблему очередей, исключает необходимость администрирования лишних пользователей 1С, обеспечивает точнейший учет личных продаж и гарантирует абсолютное соответствие требованиям 54-ФЗ.