Администрирование · 12 мин
Как ограничить доступ контрагента в 1С
Как ограничить доступ контрагента в 1С: настройка профилей групп доступа, RLS-ограничения на уровне записей, проверка результата и типичные ошибки.
Под «ограничением доступа контрагента» в 1С обычно понимают две разные задачи. Первая — ограничить права пользователя-контрагента (внешнего пользователя), который заходит в базу через веб-клиент или мобильное приложение, например в 1С:Управление нашей фирмой или 1С:Управление торговлей с личным кабинетом. Вторая — разграничить доступ сотрудников к справочнику «Контрагенты»: чтобы менеджер видел только своих клиентов, а бухгалтер — всех. Оба сценария решаются механизмом групп доступа и ограничением прав на уровне записей (RLS).
Ключевой инструмент во всех современных конфигурациях на Библиотеке стандартных подсистем (БСП) — это профили групп доступа и сами группы доступа. Профиль определяет, какие роли и действия разрешены, а группа доступа связывает пользователя с конкретными значениями ограничения: организацией, складом, контрагентом, подразделением. Именно связка «пользователь → группа доступа → значения доступа» позволяет показать менеджеру только его клиентов, не трогая код конфигурации.
Прежде чем настраивать, уточните у руководителя или постановщика задачи, что именно нужно скрыть: весь справочник контрагентов, часть записей, связанные документы (заказы, счета, реализации) или отчёты. От этого зависит выбор механизма: простые роли, группы доступа с RLS или отдельная учётная запись внешнего пользователя с жёстко урезанным профилем.
Определяем сценарий: внешний пользователь или сотрудник
Первый шаг — понять, кого именно нужно ограничить. Внешний пользователь — это учётная запись, связанная с элементом справочника «Контрагенты» или «Контактные лица». Он входит в базу и видит только свои документы: заказы, счета, акты. Такой механизм типичен для 1С:УНФ, 1С:Комплексная автоматизация и отраслевых решений с клиентским порталом.
Внутренний пользователь — сотрудник компании. Ему доступ ограничивают по-другому: через группы доступа к справочникам и документам. Например, менеджер Иванов работает только с контрагентами из своей папки или с теми, где он указан ответственным. Здесь работает RLS — ограничение доступа на уровне записей, которое фильтрует данные прямо в запросах платформы.
Смешивать эти сценарии нельзя: внешний пользователь технически не может получить профиль сотрудника, а сотрудник не должен входить как внешний пользователь. Если задача звучит как «контрагент не должен видеть чужие данные» — это сценарий внешнего пользователя. Если «менеджер не должен видеть клиентов коллеги» — это RLS для внутренних пользователей.
Как выбрать действие
Включаем механизм групп доступа
Ограничение доступа на уровне записей в типовых конфигурациях по умолчанию часто выключено. Проверьте настройку: откройте «Администрирование → Настройки прав и пользователей» (в некоторых конфигурациях — «Настройка → Администрирование → Пользователи и права»). Установите флажок «Группы доступа» или «Ограничивать доступ на уровне записей», если он снят.
После включения флажка платформа начнёт применять RLS-шаблоны ко всем запросам к разграничиваемым объектам. Учтите: это может замедлить выполнение тяжёлых отчётов, особенно в больших базах, потому что к каждому запросу добавляются условия отбора. На базах со средним объёмом данных эффект обычно незаметен.
Также проверьте, что пользователи, которым нужен полный доступ (директор, главный бухгалтер, администратор), входят в группу «Администраторы» или имеют профиль с правом «Все значения доступа». Иначе после включения ограничений они тоже потеряют часть данных.
Настраиваем профиль для внешнего пользователя-контрагента
Если контрагент сам заходит в базу, создайте для него отдельный профиль. Откройте «Администрирование → Пользователи и права → Профили групп доступа» и создайте новый профиль, например «Клиент (внешний)». Включите в него только те роли, которые действительно нужны: чтение своих заказов, счетов, актов, возможность создавать заказ. Никаких ролей на справочник «Контрагенты» целиком, отчёты по продажам или регистры остатков быть не должно.
Принцип минимальных прав обязателен: проще добавить роль позже по запросу, чем обнаружить, что клиент видел цены конкурентов или чужие отгрузки. В типовых конфигурациях часто уже есть готовый профиль для внешних пользователей — используйте его как основу, скопировав и убрав лишнее.
- 1Откройте карточку контрагента в справочнике «Контрагенты»
- 2Перейдите по ссылке «Внешние пользователи» или откройте одноимённый справочник через «Администрирование»
- 3Создайте нового внешнего пользователя — поле объекта авторизации заполнится ссылкой на контрагента автоматически
- 4Задайте имя входа и пароль, при необходимости включите аутентификацию через стандартный механизм платформы
- 5Назначьте пользователю созданный урезанный профиль через группу доступа внешних пользователей
- 6Войдите под этой учётной записью и проверьте, что видны только документы данного контрагента
После создания пользователя обязательно проверьте вход под ним. Признак правильной настройки: в списках документов отображаются только записи, где этот контрагент указан в шапке; справочник «Контрагенты» либо недоступен, либо показывает одну карточку; отчёты и обработки отсутствуют в интерфейсе.
Ограничиваем сотрудникам видимость чужих контрагентов
Для внутренних пользователей механизм другой. Откройте «Администрирование → Группы доступа» и создайте группу, например «Менеджеры — свои контрагенты». В группе укажите профиль с нужными ролями и настройте вид доступа «Контрагенты»: либо перечислите конкретных контрагентов (или их группы), либо выберите вариант «Все разрешены, без исключений» / «Только указанные значения» в зависимости от логики конфигурации.
В конфигурациях, где в карточке контрагента есть поле «Основной менеджер» или «Ответственный», удобнее разграничивать по группам контрагентов: создайте в справочнике папки по менеджерам или регионам и раздавайте доступ на папки. Это проще сопровождать, чем перечислять контрагентов по одному — новый клиент автоматически попадёт в нужную папку и станет виден нужному менеджеру.
Важно понимать, как складываются права: если пользователь входит в несколько групп доступа, действует объединение разрешений. Достаточно одной группы с полным доступом, чтобы ограничения остальных перестали работать. Поэтому при расследовании «почему менеджер видит всё» первым делом проверяйте полный список его групп.
Проверяем результат и контролируем права
После настройки обязательно выполните проверку двумя способами. Первый — технический: в разделе «Администрирование → Пользователи и права» есть отчёт «Права доступа» (или «Анализ прав доступа»). Сформируйте его по пользователю — он покажет, какие роли и значения доступа реально действуют и из какой группы они взялись.
Второй способ — практический: войдите в базу под учётной записью ограниченного пользователя (или попросите его самого) и пройдите типовые операции. Откройте список контрагентов, документы, попробуйте создать документ по чужому контрагенту через подбор. RLS отсекает данные и в подборе, и в отчётах, но проверить стоит именно те формы, которыми пользователь реально пользуется.
Как проверить результат
Видны только разрешённые контрагенты или группы
Отображается весь справочник — значит, есть группа с полным доступом
Документы не отображаются и не открываются по прямой ссылке
Документ открывается по ссылке из истории — RLS не применён к объекту
Данные только по разрешённым контрагентам
В отчёте видны все клиенты — у профиля лишняя роль или отчёт не учитывает RLS
Перечислены только нужные группы и профили
Найдены лишние группы доступа с широкими правами
Типичные ошибки и ограничения механизма
Самая частая ошибка — попытка ограничить доступ через снятие флажков в интерфейсе или скрытие команд меню. Скрытая кнопка не означает запрет: пользователь может открыть объект через «Все функции», поиск или переход по ссылке. Настоящее ограничение дают только роли и RLS.
Вторая ошибка — забыть про отчёты и регистры. Если менеджеру запретили справочник контрагентов, но оставили отчёт по взаиморасчётам без учёта RLS, он увидит всех клиентов через отчёт. Проверяйте, что ограничение применяется ко всем объектам, где фигурирует контрагент: документам, регистрам накопления и сведений, отчётам.
Третья проблема — производительность. RLS добавляет условия в каждый запрос, и на больших базах с десятками тысяч контрагентов сложные разграничения могут замедлить работу. Если отчёты стали выполняться заметно дольше, пересмотрите схему: разграничение по группам контрагентов обычно легче для платформы, чем по индивидуальным значениям.
Наконец, помните о границе самостоятельной работы: если типовых механизмов групп доступа не хватает (например, нужно разграничение по произвольному условию — региону из адреса, сумме долга), потребуется доработка RLS-шаблонов в конфигураторе. Это работа для программиста 1С, а не администратора: ошибка в шаблоне ограничения может либо открыть лишнее, либо заблокировать работу всех пользователей.
Что важно запомнить
Доступ контрагента ограничивают через профили и группы доступа: внешнему пользователю — урезанный профиль с привязкой к его карточке, сотрудникам — группы доступа со значениями «только свои контрагенты» через RLS. Настройку всегда проверяйте отчётом «Права доступа» и входом под ограниченной учётной записью, а перед включением RLS на рабочей базе делайте резервную копию.
Частые вопросы
Контрагент видит чужие документы, хотя профиль урезанный. Что проверить?
Проверьте, в какие ещё группы доступа входит пользователь — права суммируются, и одна широкая группа перекрывает все ограничения. Затем сформируйте отчёт «Права доступа» по этому пользователю: он покажет источник каждой роли. Также убедитесь, что учётная запись — именно внешний пользователь, привязанный к контрагенту, а не обычный пользователь с похожим именем.
Можно ли ограничить доступ без включения RLS?
Частично — да. Роли позволяют запретить доступ к целым объектам: справочнику, документам, отчётам. Но разграничить записи внутри одного объекта (своих и чужих контрагентов) без RLS невозможно — для этого механизм ограничения на уровне записей и предназначен.
Почему после включения групп доступа у части сотрудников пропали данные?
После активации RLS пользователи без настроенных значений доступа теряют записи, к которым раньше имели полный доступ. Назначьте им группы доступа с нужными значениями или значением «все разрешены». Администраторам и руководителям, которым нужен полный объём данных, проверьте наличие соответствующего профиля.
Как дать менеджеру доступ только к контрагентам своей папки справочника?
Создайте группу доступа, в виде доступа «Контрагенты» укажите нужную группу (папку) справочника как значение. Новые элементы, созданные в этой папке, будут автоматически доступны участникам группы. При переносе контрагента в другую папку доступ изменится автоматически — это удобнее, чем перечислять контрагентов по одному.
Замедлится ли работа базы после включения ограничений на уровне записей?
RLS добавляет условия отбора в запросы платформы, поэтому некоторая дополнительная нагрузка появляется всегда. На небольших и средних базах она обычно незаметна. Если отчёты стали выполняться ощутимо дольше, упростите схему разграничения: используйте группы контрагентов вместо длинных списков отдельных значений и проверьте индексацию по полям, участвующим в отборе.
Можно ли ограничить контрагенту доступ только к своим счетам, но не к заказам?
Да. В профиле внешнего пользователя включите роли только на чтение счетов и не включайте роли на заказы. Привязка к контрагенту через объект авторизации внешнего пользователя обеспечит фильтрацию «только свои» документы, а состав ролей определит, какие виды документов вообще доступны.