Рассмотрим распространенную ситуацию в конфигурации 1С:Документооборот (редакции 2.0 и 2.1). Вы выдали пользователям необходимые профили, например, "Работа с входящими и исходящими документами". Один сотрудник создает документ, регистрирует его и отправляет другому на рассмотрение. Второй пользователь видит новую задачу в своем списке, но при попытке ее открыть получает сообщение платформы: "У пользователя недостаточно прав для операции с базой данных".
Самое интересное в этой ситуации заключается в том, что если перенаправить задачу третьему лицу (у которого, например, полные права), и тот откроет ее, то после этого форма задачи волшебным образом начинает открываться и у второго пользователя без ошибок. Проанализируем причину такого поведения системы и разберем по шагам варианты решения проблемы.
В 1С:Документооборот для ограничения доступа на уровне записей (RLS) используется сложная система дескрипторов. Чтобы система не "зависала" при записи каждого документа, вычисляя, кому он доступен, применяется отложенное (асинхронное) обновление прав доступа.
Когда создается задача, права на саму задачу выдаются исполнителю мгновенно (поэтому он видит ее в списке). Однако при открытии формы задачи система пытается прочитать связанные объекты: сам предмет (документ), присоединенные файлы, родительский бизнес-процесс. Пересчет прав на эти объекты помещается в специальную оперативную очередь. Если пользователь пытается открыть задачу слишком быстро — до того, как регламентное задание обработает эту очередь — платформа выдает ошибку, так как нужные дескрипторы для него еще не сформированы.
Когда кто-то другой (с более высокими правами) открывает объект, он может инициировать принудительный синхронный пересчет дескриптора. Именно поэтому после "вмешательства" другого сотрудника задача становится доступной первоначальному исполнителю.
Выясним, к какому именно объекту система не дает доступ. Для этого:
Справочник.Файлы, БизнесПроцесс.Рассмотрение и так далее.Если проблема в файлах или процессах, возможно, пользователю действительно не хватает базовых профилей групп доступа (например, он не добавлен в стандартную группу полномочий "Пользователи"). Убедитесь, что сотрудник включен в эту группу.
Если ошибка возникла сразу после обновления конфигурации (например, на версии 2.0 или 2.1), права могли не пересчитаться полностью. В таких случаях необходимо запустить пересчет вручную и дождаться его окончания.
Совет: При серьезных обновлениях 1С:Документооборот всегда внимательно читайте сопроводительный файл поставки (например, "новое в версии...pdf"). Зачастую перед обновлением или сразу после него требуется запуск специальных обработок для корректного перехода на новую структуру прав.
Если пересчет прав зависает постоянно в процессе обычной работы, разберем настройки фоновых заданий. Очередь дескрипторов обрабатывается автоматически.
Если вы используете файловый режим работы информационной базы без выделенного сеанса для фоновых заданий, регламентные задания не будут выполняться автоматически "в фоне". Отложенный расчет прав в таком режиме приводит к постоянным задержкам.
В этом случае рекомендуется перейти в настройки программы (раздел администрирования) и снять флаг "Отложенное обновление прав доступа". После этого пересчет дескрипторов будет выполняться синхронно в момент записи объекта. Сохранение документов станет происходить чуть медленнее, зато пользователи сразу получат доступ к назначенным задачам без ошибок.
Иногда проблема кроется не в очереди, а в логике ограничения доступа. Посмотрим на настройки вида документа.
Если в документе заполнена табличная часть "Рабочая группа", доступ к нему имеют только те, кто в ней указан. Чтобы исполнитель задачи автоматически получал доступ к документу, на основании которого создана задача, в настройках соответствующего вида документа должен быть установлен флаг Автоматически вести состав рабочей группы. Если он снят, участники процессов просто не добавляются в список лиц с правом чтения, что и вызывает ошибку RLS.
Также не лишним будет в окне управления правами запустить процедуру Удаление неиспользуемых дескрипторов доступа. Сильное разрастание этой таблицы со временем замедляет работу системы и разбор оперативной очереди.