Как ограничить доступ продавцов к документам только своего магазина в облачной 1С:Розница БТСС?

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

При работе в облачных решениях 1С, таких как «1С:Розница 8. Магазин бытовой техники и средств связи» (БТСС), часто возникает задача разграничения прав доступа. Типичный сценарий: владелец бизнеса хочет, чтобы продавцы в торговых точках видели и могли редактировать документы (поступления, реализации, остатки) только своего магазина, не имея доступа к данным коллег из других филиалов. Рассмотрим подробно, как решить эту задачу, учитывая специфику облачного размещения.

Метод 1: Использование механизма RLS (Record Level Security)

Самый очевидный и штатный путь — это использование ограничения доступа на уровне записей (RLS). Разберем этот механизм подробнее, так как он часто ошибочно считается недоступным в облаке.

Во многих типовых конфигурациях на базе 1С:Розница возможность ограничения прав «по магазинам» заложена в ядро системы. Чтобы активировать этот функционал, выполним следующие действия:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Установим флаг Ограничивать доступ на уровне записей.
  3. В справочнике Профили групп доступа найдем или создадим профиль для продавца.
  4. На закладке Ограничения доступа выберем вид доступа Магазины.
  5. Укажем значение «Все запрещены, исключения назначаются в группах доступа».

Проанализируем ситуацию: после этих настроек для каждой группы доступа (например, «Продавцы Магазина №1») нужно будет указать конкретный разрешенный объект из справочника Магазины. Основная проблема здесь заключается в производительности: RLS накладывает дополнительные условия на каждый SQL-запрос, что может замедлить работу системы при большом количестве данных. Однако для небольших розничных точек это решение является наиболее «чистым» с точки зрения архитектуры.

Метод 2: Создание распределенной информационной базы (РИБ) по магазинам

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

Разберем по шагам, как настроить РИБ в облаке для разделения по магазинам:

  1. В центральной базе создадим узел обмена. В типовой «Рознице» (и БТСС) предусмотрен план обмена ПоМагазинам.
  2. При создании начального образа узла укажем фильтр по конкретному магазину. Это гарантирует, что в базу торговой точки попадут только те документы, справочники и остатки, которые имеют отношение к этому магазину.
  3. Важный нюанс облака: Если сервис не позволяет выгружать .dt файлы напрямую, используйте механизмы синхронизации данных через FTP или облачные хранилища, которые поддерживает ваш провайдер.

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

Метод 3: Автономное рабочее место (АРМ)

Если ваше облако — это «1С:Фреш», то вместо классического РИБ мы рекомендуем использовать технологию Автономного рабочего места. Рассмотрим подробнее этот механизм:

АРМ — это специализированный вариант РИБ, предназначенный специально для работы в облаке. При настройке автономного места система предлагает выбрать фильтрацию данных. Выбрав фильтр по магазину, вы получите локальную копию базы на компьютере продавца, которая будет автоматически синхронизироваться с облаком. При этом продавец будет видеть только «свой» контур данных.

Метод 4: Настройка через УТ (Управление торговлей) как центр

Рассмотрим более сложную, но масштабируемую схему, которую предложил автор обсуждения. Если клиент готов к внедрению 1С:Управление торговлей (УТ) в качестве управляющей системы, можно выстроить следующую архитектуру:

В центре стоит УТ, где ведется общий учет. Для каждой торговой точки создается отдельная облачная база «Розница БТСС». Настройка обмена в этом случае выглядит так:

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


// Пример логики фильтрации в правилах регистрации
Если ТипЗнч(Объект) = Тип("ДокументОбъект.ПоступлениеТоваров") Тогда
    Если Объект.Магазин <> ПараметрыОбмена.ТекущийМагазинУзла Тогда
        Отказ = Истина;
    КонецЕсли;
КонецЕсли;

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

Метод 5: Группы доступа и персональные настройки

Иногда проблема «случайного» принятия документов за другой магазин решается не только жесткими запретами, но и корректной настройкой рабочего места. Проанализируем возможности справочника Пользователи и регистра ПерсональныеНастройки.

Для каждого продавца необходимо:

Резюме и рекомендации

Подведем итог. Если вы столкнулись с невозможностью разделения прав в облачной «Рознице БТСС», рекомендуем следующий алгоритм выбора решения:

  1. Если база небольшая (до 5-10 пользователей): Попробуйте включить штатный RLS. Это самый дешевый способ, не требующий дополнительных баз и сложных обменов.
  2. Если вы работаете в 1С:Фреш: Используйте «Автономное рабочее место» с фильтром по магазину. Это надежно и поддерживается вендором.
  3. Если важна полная изоляция и безопасность данных: Используйте схему с РИБ (распределенными базами). Каждая точка получает свою базу, куда приходят данные только по её магазину.
  4. Для крупных сетей: Оптимальна схема «УТ в центре + независимые Розницы на местах». Это обеспечивает лучшую производительность и устойчивость всей системы.

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

← На главную