Как в 1С настроить видимость документов только по одной организации для пользователя?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия
← На главную

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

Жесткое ограничение прав: использование механизма RLS

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

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

  1. Убедимся, что у пользователя, которого мы хотим ограничить, нет роли Полные права и он не состоит в группе доступа Администраторы. Для администраторов механизм RLS не работает по умолчанию. Пользователю необходимо назначить профиль с ограниченными правами, например, «Бухгалтер» или «Менеджер по продажам».
  2. Перейдем в справочник Группы доступа. Создадим новую группу или изменим существующую, к которой привязан наш пользователь.
  3. На вкладке Ограничения доступа выберем вид доступа Организации.
  4. Явно укажем разрешенные (или запрещенные) значения, выбрав конкретную организацию, с которой должен работать пользователь.

Выясним важную особенность: включение механизма RLS может существенно замедлить работу системы. Платформа 1С неявно добавляет условия проверки прав к каждому запросу к базе данных. В базах с большим объемом информации это может привести к увеличению времени открытия списков, проведения документов и формирования отчетов.

Упрощенная задача: настройка основной организации без RLS

Иногда жесткая безопасность не требуется. Требуется лишь, чтобы у пользователя по умолчанию во всех списках, оборотно-сальдовых ведомостях (ОСВ) и новых документах всегда подставлялась определенная организация, но видимость оставалась по всем. Посмотрим, как это сделать без включения тяжелого механизма RLS.

В типовых конфигурациях существует несколько простых способов задать основную организацию:

  1. Зайти в персональные настройки пользователя и указать основную организацию там.
  2. В списке справочника организаций встать на нужную строку и нажать горячую клавишу F11.
  3. Там же, в списке организаций, нажать большую кнопку Использовать как основную.

Важное уточнение: такая настройка лишь заполняет соответствующий реквизит по умолчанию при создании новых объектов. Она не скрывает документы других организаций из общих динамических списков или журналов. Пользователь по-прежнему будет видеть чужие данные и при желании сможет вручную выбрать другую организацию.

Альтернативные варианты решения задачи

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

1. Визуальное скрытие через расширения конфигурации

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

2. Использование механизма разделения данных (Области данных)

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

← На главную