Как организовать работу единого кассира во всех магазинах распределенной базы (РИБ)?

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

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

Суть проблемы: конфликт настроек и распределения данных

В типовых конфигурациях 1С для корректного запуска Рабочего места кассира (РМК) система должна однозначно определить контекст: какой это Магазин, какой Склад и какая КассаККМ будут использоваться при пробитии чека. Обычно эти данные хранятся в справочнике НастройкиПользователей или непосредственно в карточке пользователя.

Когда данные синхронизируются через РИБ, настройки пользователя «мигрируют» между узлами. Если в центральном узле за пользователем закреплен «Магазин №1», то при попытке зайти под этой же учетной записью в «Магазине №2», система выдаст ошибку или попытается открыть интерфейс первого магазина, что приведет к невозможности совершить продажу. Давайте проанализируем ситуацию и найдем оптимальные пути решения.

Решение 1: Использование персональных кодов и штрихкодов сотрудников

Это самый простой и эффективный штатный метод, не требующий программирования. Разберем его по шагам:

  1. Создадим в системе одного технического пользователя для входа в базу (например, с именем «Кассир»). Этот пользователь будет общим для всех компьютеров.
  2. Для реальных сотрудников (включая хозяйку магазина) создадим карточки в справочнике ФизическиеЛица или Сотрудники.
  3. В карточке каждого сотрудника настроим Персональный код или закрепим за ним карту со штрихкодом.
  4. В настройках РМК (раздел Продажи — Настройки РМК) установим флаг «Использовать авторизацию».

Теперь процесс работы будет выглядеть так: программа запущена под общей учетной записью, но перед началом каждой продажи система требует отсканировать бейдж или ввести код. Проанализируем преимущество: в чеке будет указана фамилия именно того человека, который авторизовался кодом, при этом системные настройки магазина останутся привязанными к конкретному рабочему месту. Это полностью решает задачу учета личных продаж владельца в любой точке сети.

Решение 2: Настройка локальных параметров в узлах РИБ

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

В каждом периферийном узле (в каждом магазине) администратор может вручную скорректировать настройки пользователя. Для этого перейдем в Администрирование — Настройки пользователей и прав — Персональные настройки. Здесь мы укажем основной магазин и склад, актуальные именно для текущей базы.

Чтобы эти настройки не затирались при следующем обмене данными из центрального узла, необходимо настроить правила регистрации объектов. В плане обмена ПоМагазину можно исключить регистры сведений, отвечающие за персональные настройки пользователей (например, НастройкиПользователей), чтобы они оставались уникальными для каждой базы. Таким образом, один и тот же логин в Магазине №1 будет «смотреть» на Склад №1, а в Магазине №2 — на Склад №2.

Решение 3: Программная подстановка настроек через расширение

Для тех, кто готов к небольшой доработке системы, оптимальным решением станет использование расширения. Выясним причину, по которой это удобно: мы можем заставить программу игнорировать настройки в карточке пользователя и брать данные из Рабочего места (компьютера).

Проанализируем пример логики, которую можно внедрить в процедуру при запуске РМК:


&После("ПриСозданииНаСервере")
Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Определяем текущее рабочее место (компьютер)
    ТекущееРМ = МенеджерОборудованияВызовСервера.ПолучитьРабочееМестоКлиента();
    
    // Получаем магазин, закрепленный за этим рабочим местом
    МагазинРМ = ПолучитьМагазинПоРабочемуМесту(ТекущееРМ);
    
    Если ЗначениеЗаполнено(МагазинРМ) Тогда
        // Подставляем параметры в структуру настроек РМК
        ПараметрыКассира.Магазин = МагазинРМ;
        ПараметрыКассира.Склад = МагазинРМ.СкладПоУмолчанию;
    КонецЕсли;
КонецПроцедуры

Такой подход позволяет пользователю вообще не думать о переключениях. Где бы он ни авторизовался, программа сама определит его местоположение по ID компьютера и подставит нужную кассу и склад.

Решение 4: Команда «Сменить магазин» в интерфейсе РМК

В современных версиях «1С:Розница 3.0» и «1С:УНФ» разработчики добавили штатный механизм переключения. Рассмотрим, как им пользоваться:

  1. Откройте РМК под своим пользователем.
  2. Перейдите в меню «Еще» (или воспользуйтесь горячими клавишами, если они настроены).
  3. Выберите пункт «Сменить магазин».
  4. В открывшемся списке выберите текущую торговую точку.

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

Решение 5: Настройка завершения сеанса

Для обеспечения безопасности и корректности учета, особенно когда владельцу приходится часто отлучаться от кассы, рекомендуется использовать настройку «Завершать сеанс после каждой продажи». Разберем, как это работает вместе с «единым пользователем»:

После пробития чека и выхода слип-чека, система автоматически сбрасывает авторизацию текущего продавца и возвращается к экрану выбора пользователя или ожидания штрихкода. Это позволяет владельцу быстро подойти, авторизоваться, совершить операцию и уйти, не оставляя кассу открытой под своим именем. В условиях РИБ это гарантирует, что следующий кассир, который начнет работу, будет использовать свои локальные настройки, и данные в центральную базу уйдут без ошибок.

Важный совет: При использовании любого из вышеперечисленных методов всегда проверяйте заполнение аналитики в документах ЧекККМ. Даже если вы используете «единого пользователя», в поле Ответственный или Продавец должен попадать конкретный сотрудник, чтобы отчеты о продажах и расчет премий (если они есть) работали корректно во всей сети магазинов.

← На главную