Как в 1С:Управление торговлей 11 ограничить доступ к заказам, чтобы менеджер видел только свои документы?

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

В крупных торговых компаниях часто возникает задача разграничения прав доступа. Типичный сценарий: менеджер по продажам должен иметь доступ только к тем заказам, за которые он несет ответственность, не видя при этом документы своих коллег. В конфигурации «1С:Управление торговлей 11» (а также в ERP и КА 2) эта задача решается с помощью механизма RLS (Record Level Security) — ограничения доступа на уровне записей.

Давайте вместе разберем по шагам, как правильно настроить систему, чтобы каждый сотрудник работал только в своем информационном поле, и проанализируем различные способы реализации этой задачи.

Способ 1. Ограничение через группы доступа партнеров

Это самый стандартный и рекомендуемый метод для 1С:УТ 11. Он основан на логике, что если менеджер имеет доступ к клиенту (партнеру), то он видит и его заказы. Рассмотрим этот процесс подробно.

Шаг 1. Включение функциональной опции

Прежде всего, проверим, активирован ли сам механизм ограничений в базе. Перейдем в раздел НСИ и администрирование -> Настройка пользователей и прав. Здесь нам необходимо развернуть подраздел Группы доступа и убедиться, что установлена галочка Ограничивать доступ на уровне записей.

Шаг 2. Активация групп доступа партнеров

В этом же окне настроек найдем ссылку Группы доступа партнеров. Нам нужно включить этот функционал, чтобы в карточках клиентов появилось соответствующее поле. Без этой настройки мы не сможем сегментировать клиентскую базу для разных менеджеров.

Шаг 3. Создание групп и привязка к партнерам

Теперь создадим саму «корзину», в которую поместим клиентов конкретного менеджера:

  1. Перейдем в справочник Группы доступа партнеров (его можно найти через «Все функции» или в разделе НСИ).
  2. Создадим группу, например, «Клиенты Иванова».
  3. Откроем карточку Партнера (клиента) и на вкладке «Основное» или в специальном поле укажем созданную группу доступа (также полезно настроить видимость реквизитов справочников).

Шаг 4. Настройка профиля и группы доступа пользователя

Теперь свяжем пользователя с разрешенными данными (для ускорения процесса можно использовать копирование прав между пользователями). Проанализируем настройки в разделе Настройка пользователей и прав -> Группы доступа:

  1. Найдем группу доступа, в которой состоит наш менеджер.
  2. Перейдем на закладку Ограничения доступа.
  3. В колонке «Вид доступа» выберем Группы партнеров.
  4. В правой части установим значение «Все запрещены, кроме выбранных» и добавим в список группу «Клиенты Иванова».

После этих действий система автоматически пересчитает права, и менеджер увидит только те заказы, клиенты которых входят в его группу.

Способ 2. Ограничение по подразделениям

Иногда требуется ограничить видимость не персонально по менеджеру, а по отделу или организации. Рассмотрим ситуацию: в заказе клиента всегда заполняется поле Подразделение. Если мы настроим ограничение по этому объекту, менеджер отдела продаж «Запад» не увидит документы отдела «Восток».

Для этого в профиле групп доступа нужно добавить вид доступа Подразделения и указать элементы справочника СтруктураПредприятия.

Технический нюанс: Производительный режим RLS

Важно понимать, что включение RLS может замедлить работу системы, так как к каждому запросу к базе данных 1С будет добавлять дополнительные условия (подзапросы). Выясним, как минимизировать потери производительности.

В настройках пользователей и прав обязательно проверьте режим работы ограничений. Мы рекомендуем использовать Производительный режим. В этом режиме данные об ограничениях кэшируются в специальных вспомогательных таблицах, что значительно ускоряет выборку данных в списках заказов по сравнению со «Стандартным» режимом.

Проверка корректности настроек

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

Альтернативный вариант: Использование расширений (без RLS)

Если база очень большая и включение RLS недопустимо из-за падения скорости, рассмотрим вариант «визуального» ограничения. Мы можем создать расширение конфигурации, которое будет автоматически накладывать фильтр при открытии списка заказов.

Посмотрим на пример логики, которую можно реализовать в процедуре ПриСозданииНаСервере для формы списка заказов:


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

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

Резюме

Для того чтобы менеджер в 1С:УТ 11 видел только свои заказы, необходимо:

  1. Включить Ограничение доступа на уровне записей.
  2. Использовать механизм Групп доступа партнеров, распределив клиентов между менеджерами.
  3. Настроить Профили групп доступа, указав разрешенные группы партнеров для конкретных пользователей.
  4. Убедиться, что используется Производительный режим RLS для сохранения быстродействия системы.
← На главную