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

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

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

Разберем подробно каждый из подходов, проанализируем их преимущества и возможные риски для производительности системы.

Способ 1. Использование механизма RLS (Row Level Security)

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

Проанализируем шаги по настройке RLS в типовом решении:

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

Важный нюанс: механизм RLS создает дополнительную нагрузку на SQL-сервер, так как к каждому запросу системы неявно добавляется условие ГДЕ. Чтобы система работала стабильно, проследим за выполнением регламентных заданий по обновлению данных для ограничения доступа. Без их корректного завершения менеджеры могут увидеть пустые списки даже в своих собственных документах.

Способ 2. Ограничение через динамические списки в расширении

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

Для реализации этого метода создадим расширение конфигурации и перехватим событие ПриСозданииНаСервере для формы списка документов СчетНаОплатуПокупателю или ЗаказКлиента.

Посмотрим на пример кода, который устанавливает фильтр по текущему пользователю:


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

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

Способ 3. Ограничение по Группам доступа контрагентов

Рассмотрим ситуацию, когда менеджеру нужно запретить видеть не просто «чужие документы», а «чужих клиентов». В 1С:УТ 11 реализован мощный механизм Групп доступа контрагентов.

Проанализируем алгоритм настройки:

  1. В карточках контрагентов заполним поле Группа доступа (например, «Регион Север», «Регион Юг» или по фамилиям менеджеров).
  2. В настройках прав доступа ограничим видимость именно этих групп.

Этот подход более эффективен, так как он автоматически скрывает всю цепочку документов: от СчетНаОплату до РеализацияТоваровУслуг и ПоступлениеБезналичныхДенежныхСредств. Если менеджер не имеет доступа к контрагенту, он не увидит ни одного документа по нему, что исключает путаницу в дебиторской задолженности.

Особенности работы со связанными документами

При настройке ограничений мы должны учитывать структуру подчиненности. В 1С:УТ 11 документы тесно связаны между собой. Разберем типичную проблему: менеджер создает ЗаказКлиента, на основании которого создается СчетНаОплату.

Если мы ограничим доступ только к объекту Документ.СчетНаОплатуПокупателю, но оставим доступ к ЗаказКлиента, возникнут следующие коллизии:

Поэтому рекомендуется настраивать RLS комплексно, включая все документы торгового цикла, либо использовать ограничение через подразделения.

Использование групп доступа по подразделениям

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

Проанализируем преимущества этого метода:

Выясним, как это работает на уровне данных: в каждом документе (Счет, Заказ, Реализация) есть реквизит Подразделение. Система сравнивает значение этого реквизита с разрешенными подразделениями в профиле пользователя. Если совпадения нет — документ скрывается.

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

Подводя итог, можно выделить следующие рекомендации для выбора решения:

  1. Если требуется максимальная безопасность и позволяет производительность сервера — используем стандартный RLS в производительном режиме по виду доступа Ответственные.
  2. Если компания большая и важна скорость работы — реализуем фильтрацию в динамических списках через расширение, но помним о «дырах» в отчетах.
  3. Для комплексного управления продажами лучше всего подходит ограничение по Группам доступа контрагентов, так как оно закрывает доступ ко всей истории взаимоотношений с клиентом.

Рассмотренные методы позволяют гибко настроить рабочую среду менеджера, минимизировать ошибки и защитить коммерческие данные компании.

← На главную