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