К статье
Практический материал

Администрирование · 12 мин

Как в 1С сделать, чтобы пользователь видел только свои документы

Как ограничить в 1С видимость документов: настройка RLS, профили групп доступа, шаблоны ограничений и проверка результата. Практическая пошаговая инструкция.

Задача «пользователь видит только свои документы» возникает почти в каждой базе 1С, где с одним справочником или журналом работают несколько сотрудников: менеджеры не должны видеть чужие заказы, кадровики — чужие заявления, а бухгалтеры — документы других организаций. В типовых конфигурациях на платформе 1С:Предприятие 8.3 для этого предусмотрен механизм ограничения доступа на уровне записей (RLS, Record Level Security), который работает совместно с профилями групп доступа.

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

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

Определяем, что считать «своим» документом

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

  • По автору документа — пользователь видит только то, что создал сам. Подходит для журналов вроде «Заявки», «Служебные записки». Минус: если документ создал один сотрудник, а ведёт другой, второй его не увидит.
  • По ответственному (менеджеру) — документ привязан к реквизиту «Ответственный» или «Менеджер». Стандартный сценарий для заказов покупателей и коммерческих предложений.
  • По подразделению — сотрудник видит документы своего отдела. Удобно, когда внутри отдела документы общие, а между отделами закрыты.
  • По организации или складу — классический вариант для многофирменного учёта и разделения по точкам продаж.

Проверьте, что выбранный реквизит реально заполняется в документах. Если «Ответственный» в половине заказов пустой, ограничение по нему приведёт к тому, что эти документы никто не увидит или, наоборот, увидят все — в зависимости от шаблона. Потратьте время на очистку данных до включения ограничений, а не после.

Включаем ограничение доступа на уровне записей

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

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

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

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

Настраиваем профиль и группу доступа

Профиль группы доступа определяет, какие роли и какие виды ограничения действуют на пользователя. Работать с правами напрямую через конфигуратор для этой задачи не нужно — всё делается в пользовательском режиме.

Откройте «Администрирование → Настройки прав и пользователей → Профили групп доступа». Создайте новый профиль, например «Менеджеры — только свои документы». В профиле отметьте нужные роли (доступ к разделу продаж, к документам заказов и т.п.), а на закладке видов ограничения укажите, по какому измерению будет ограничиваться доступ: «Организации», «Подразделения», «Склады», «Партнёры» — набор зависит от конфигурации.

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

Ограничение по ответственному или автору

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

Шаблоны ограничений и тонкая настройка RLS

Шаблон ограничения — это текст на языке запросов 1С, который платформа подставляет в каждый запрос к ограничиваемой таблице. Посмотреть и изменить шаблоны можно в конфигураторе: свойства роли → «Шаблоны ограничений». Типовые шаблоны используют параметры вроде «Разрешённые организации», значения которых подставляются из групп доступа пользователя.

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

bsl
#Шаблон ограничения для роли (пример логики)
ДокументЗаказПокупателя ГДЕ
    ЗаказПокупателя.Ответственный = &ТекущийПользователь
// Параметр сеанса ТекущийПользователь
// заполняется в модуле сеанса при входе

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

Проверяем результат и типичные ошибки

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

Контрольные точки

Как проверить результат

Список документов под пользователем
Норма

Видны только документы со своим значением ответственного/организации/подразделения

Тревожный признак

Видны чужие документы или список вообще пустой

Отчёты по тем же данным
Норма

В отчёт попадают только разрешённые записи, итоги совпадают со списком

Тревожный признак

Отчёт показывает чужие данные — значит, роль отчёта не покрыта шаблоном

Проведение и изменение
Норма

Свой документ открывается, проводится и изменяется

Тревожный признак

Свой документ виден, но не сохраняется — не хватает интерактивных прав в роли

Быстродействие
Норма

Список открывается за приемлемое время, как до настройки

Тревожный признак

Открытие списков и проведение заметно замедлились

Если пользователь видит чужие документы, проверьте три вещи: включён ли флажок ограничения на уровне записей, входит ли пользователь в нужную группу доступа и не входит ли он одновременно в группу с широкими правами (разрешения суммируются, и «лишняя» группа сведёт на нет ограничение). Если пользователь не видит вообще ничего — чаще всего в группе доступа не заполнены разрешённые значения или у профиля не отмечены нужные роли.

Типичные ошибки
01
Настроили ограничение по реквизиту, который не заполнен в документах — записи «повисают» и пропадают из видимости у всех.
02
Добавили пользователя в новую группу, но забыли исключить из старой с полным доступом — ограничение не сработало, потому что права суммируются.
03
Проверяли настройку под администратором — у него RLS не действует, и проблема всплыла только у реальных пользователей.
04
Написали сложный шаблон RLS с соединениями — база начала тормозить при каждом открытии списка.
05
Ограничили списки, но забыли про отчёты и обработки — чужие данные остались видны в аналитике.

Альтернативные способы скрыть чужие документы

RLS — не единственный инструмент, и не всегда оптимальный. Сравните варианты под свою задачу.

Сравнение вариантов ограничения

RLS через группы доступа

Надёжно: данные не покидают базу. Подходит для постоянного разграничения. Минус — сложность настройки и нагрузка на производительность.

Настройка отборов в списках и формах

Просто и быстро, но это косметика: пользователь может снять отбор или увидеть данные в отчёте. Годится только как удобство, не как защита.

Разделение по подразделениям/организациям

Компромисс: настраивается штатно почти во всех конфигурациях, но ограничивает по структуре, а не по конкретному автору.

Программная доработка (свои шаблоны RLS)

Позволяет реализовать любое правило, включая «только автор». Требует разработчика, снятия с полной поддержки и тестирования при обновлениях.

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

Итог

Что важно запомнить

«Только свои документы» в 1С настраивается связкой: включённый RLS → профиль с нужными ролями → группа доступа с разрешёнными значениями → пользователь в этой группе. Проверять результат нужно под ограниченным пользователем и не только в списках, но и в отчётах. Нестандартные правила (по автору, по ответственному) реализуются собственными шаблонами RLS — только на копии базы и с контролем производительности.

Частые вопросы

Почему после включения RLS программа стала работать медленнее?

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

Можно ли ограничить видимость без прав администратора?

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

Руководитель должен видеть документы всех подчинённых. Как это сделать?

Не ограничивайте руководителя вовсе или добавьте его в несколько групп доступа — разрешённые значения суммируются. Если иерархия сложная, используют иерархические группы доступа по подразделениям: руководитель получает доступ к родительскому подразделению и видит вложенные.

Ограничение работает в списках, но в отчётах видны чужие данные. Что не так?

Значит, роль, дающая доступ к отчёту, либо не покрыта шаблоном ограничения, либо пользователь имеет лишнюю роль с полным доступом к данным. Проверьте состав ролей профиля и убедитесь, что ограничение распространяется на все объекты, участвующие в отчёте.

Сработает ли настройка после обновления конфигурации?

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

Можно ли скрыть не весь документ, а отдельные поля, например суммы?

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