Почему любой пользователь может выполнять чужие задачи в бизнес-процессах 1С:ERP и 1С:УТ и как это исправить

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

При внедрении бизнес-процессов и согласований в конфигурациях 1С:ERP Управление предприятием, 1С:Управление торговлей (УТ) или 1С:Комплексная автоматизация (КА) часто возникает неприятная ситуация: бизнес-процесс успешно запускается, задачи маршрутизируются и приходят адресатам, однако любой пользователь системы может открыть и выполнить абсолютно любую чужую задачу, даже если он не назначен исполнителем и у него нет соответствующей роли.

Рассмотрим подробно причины такого поведения программы, выясним, почему стандартное заполнение регистра адресации не блокирует доступ к объектам, и разберем по шагам правильную настройку прав доступа на уровне записей (RLS).

Анализ причины: Почему заполненный регистр адресации не ограничил доступ

Проанализируем архитектуру подсистемы Бизнес-процессы и задачи на базе Библиотеки стандартных подсистем (БСП). В типовых конфигурациях за распределение задач отвечают два ключевых механизма:

  1. Регистр сведений Исполнители задач (регистр адресации): определяет логику маршрутизации задач. На основе этого регистра система решает, кому отправить уведомление и чьи списки «Мои задачи» пополнить новыми элементами. Однако сам по себе этот регистр не является механизмом ограничения прав доступа.
  2. Роль Добавление и изменение задач (в некоторых версиях — Добавление изменение заданий): дает право на чтение, изменение и выполнение объектов метаданных типа Задача.

По умолчанию в поставляемых «из коробки» решениях 1С механизм RLS (Record-Level Security — ограничение доступа на уровне записей) отключен из соображений максимальной производительности СУБД. При выключенном RLS роль Добавление и изменение задач дает полнотекстовый доступ ко всем задачам в базе. Система видит, что у пользователя есть эта роль, и разрешает ему интерактивно открыть и выполнить задачу любого другого сотрудника, даже если тот не указан в качестве исполнителя.

Шаг 1. Включение ограничения доступа на уровне записей (RLS)

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

  1. Перейдем в раздел НСИ и администрирование.
  2. В блоке администрирования откроем пункт Настройки пользователей и прав.
  3. Раскроем группу Ограничение доступа.
  4. Установим флаг Ограничивать доступ на уровне записей.

После включения этой опции платформа 1С начнет автоматически добавлять к SQL-запросам дополнительные условия проверки прав. Пользователь сможет увидеть и выполнить задачу только при выполнении одного из условий:

1. Пользователь указан как персональный исполнитель задачи в поле Исполнитель.
2. Пользователь является автором бизнес-процесса или самой задачи.
3. Пользователь входит в ролевую группу исполнителей согласно регистру Исполнители задач (с учетом уточняющих объектов адресации, таких как организация или подразделение).
4. На пользователя оформлено официальное замещение (делегирование) от имени основного исполнителя.

Шаг 2. Настройка профилей и групп доступа

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

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

Рассмотрим два основных варианта настройки групп доступа:

Вариант А. Настройка единой группы доступа с запретом чужих объектов

Это наиболее простой и быстрый вариант, не требующий создания множества дублирующих групп под каждого сотрудника:

  1. В разделе НСИ и администрирование -> Настройки пользователей и прав перейдем в журнал Группы доступа.
  2. Создадим или отредактируем группу доступа, использующую профиль с ролью Добавление и изменение задач.
  3. В настройках ограничений видов доступа для объекта доступа Пользователи выберем значение Все запрещены, исключения назначаются в группах.
  4. Включим в эту группу всех необходимых сотрудников.

При такой настройке система разрешает каждому конкретному пользователю видеть и редактировать только те записи, где он явно указан автором или исполнителем. Чужие задачи полностью исчезнут из списков и журналов.

Вариант Б. Создание пользовательских профилей групп доступа

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

  1. Перейдем в справочник Профили групп доступа.
  2. Создадим копию типового профиля (например, «Менеджер по продажам»).
  3. Исключим из исходной копии роль Добавление и изменение задач.
  4. Создадим отдельный профиль «Исполнитель задач» и включим в него только роль Добавление и изменение задач.
  5. Настроим ограничение вида доступа по пользователям/исполнителям.
  6. Назначим созданный профиль пользователям через соответствующую группу доступа.

Шаг 3. Использование механизма замещения без изменения прав

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

  1. Перейдем в раздел Главное -> Мои задачи или Администрирование -> Замещение исполнителей.
  2. Создадим документ/запись Замещение.
  3. Укажем, кого именно замещает сотрудник и на какой период.

Механизм RLS автоматически учтет действующую запись замещения и предоставит временно назначенному коллеге доступ к задачам отсутствующего сотрудника без нарушения общей системы безопасности.

Особенности работы с RLS и обновления конфигурации

Проанализируем важные нюансы, о которых следует помнить при включении RLS:

  1. Влияние на скорость работы: Включение RLS увеличивает нагрузку на СУБД. В современных версиях БСП (в ERP 2.4/2.5 и УТ 11.4/11.5) применяется производительный (универсальный) режим RLS. Права предрассчитываются и записываются в специальные вспомогательные таблицы, что минимизирует задержки при формировании списков задач.
  2. Обновление конфигурации: При редактировании типовых профилей вручную в конфигураторе при последующих обновлениях системы могут возникнуть конфликты. Рекомендуется создавать пользовательские профили в режиме «1С:Предприятие» или выносить индивидуальные доработки прав в расширения конфигурации.
← На главную