После обновления конфигурации 1С:Документооборот (1С:ДО) КОРП или ДГУ с более старых версий (например, 3.0.17.x) на версию 3.0.20.21 (и последующие релизы этой ветки) системные администраторы и аналитики часто сталкиваются с критической проблемой. Пользователи без административных прав перестают видеть свои задачи и документы в списках — задача решается через инструмент централизованной настройки доступа в 1С:ДО 3.0. При этом счетчики (например, количество новых задач в разделе «Задачи мне») исправно показывают новые элементы, но сами списки остаются абсолютно пустыми. Под правами администратора все документы и задачи отображаются корректно.
В журнале регистрации при этом фиксируется ошибка следующего вида:
Ошибка при вызове метода контекста (Выполнить)
{ОбщийМодуль.ОбщегоНазначения.Модуль(617)}:Выборка = Запрос.Выполнить().Выбрать();
...
{ОбщийМодуль.ДействияСервер.Модуль(1812)}:ВидОбъекта = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Предмет, "ВидДокумента");
...
{РегистрСведений.МоиДокументы.Форма.ФормаМоиДокументы.Форма(1373)}:ОбзорСпискаДокументовКлиент.ОбновитьМиникарточку(ЭтотОбъект);
по причине:
Ошибка выполнения запроса
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.
[НарушениеПравДоступа]
Давайте подробно разберем, почему возникает эта ошибка, и рассмотрим пошаговые сценарии ее решения.
Для начала проанализируем, что происходит в системе в момент возникновения ошибки. При активации строки в списке документов интерфейс программы пытается обновить так называемую миникарточку (панель предварительного просмотра) с помощью вызова функции ОбзорСпискаДокументовКлиент.ОбновитьМиникарточку(). Чтобы заполнить данные на этой панели, система обращается к серверной функции для получения реквизитов документа (например, проверки, подписан ли документ, каков его вид и т.д.).
Для этого используется стандартная функция БСП ОбщегоНазначения.ЗначениеРеквизитаОбъекта(). Если у пользователя на уровне СУБД (механизм RLS — Row Level Security) в данный момент отсутствуют права на чтение конкретного документа или задачи, то этот запрос вызывает исключение базы данных НарушениеПравДоступа — для диагностики таких случаев есть детальный анализ прав пользователей и RLS. Из-за жесткого падения этого запроса ломается построение всего динамического списка, и пользователь видит пустой экран вместо своих данных.
Почему же у пользователя «пропадают» права, которые у него точно были до обновления? Для расследования таких инцидентов подойдёт анализ прав доступа и RLS по объектам. В версии 1С:ДО 3.0.20 разработчики внедрили масштабные оптимизации механизмов расчета прав доступа и дескрипторов. Права доступа теперь рассчитываются в отложенном режиме через специальные очереди. Если после обновления эти очереди не были обработаны до конца, пользователи временно теряют видимость всех объектов.
Рассмотрим два основных метода решения этой проблемы.
В большинстве случаев проблема кроется в том, что после обновления конфигурации не завершились фоновые процессы пересчета прав доступа. Обычного ручного запуска заданий «Обновление прав доступа (оперативное)» или «Обновление прав доступа (долгое)» может быть недостаточно, так как они зависят от других очередей. Для этой задачи есть контроль и запуск регламентных заданий 1С.
Выполним следующие шаги для принудительного и полного пересчета прав:
Очередь обновления прав доступа — обрабатывает накопившиеся изменения в правах;Долгая очередь обновления кэширующих данных — выполняет тяжелые расчеты связей и дескрипторов;Обновление прав доступа (оперативное) — быстро распределяет оперативные права;Обновление прав доступа (долгое) — выполняет фоновый пересчет масштабных изменений прав;Управление правами доступа — координирует общие настройки политик безопасности.Если регламентные задания выполнены, но у некоторых сотрудников права все равно пропадают или слетают снова, проанализируем архитектурную особенность интеграции версии 3.0.20 — проблему решит модуль интеграции 1С:ERP с 1С:Документооборот 3.0. В этом релизе появился новый механизм загрузки сотрудников при несовпадении регламентированной структуры подразделений учетной системы (например, 1С:ERP или 1С:Комплексная автоматизация) и управленческой структуры 1С:Документооборота.
Выясним, как этот механизм может скрыто ломать права пользователей:
Для исправления этой ситуации без привлечения программиста выполним следующие действия:
Проанализировав обе эти причины и применив указанные решения, мы сможем гарантированно вернуть пользователям доступ к их рабочим задачам и документам, полностью избавившись от ошибки НарушениеПравДоступа.