Часто при анализе работы пользователей в Журнале регистрации мы сталкиваемся с ситуацией, когда при установке отбора по конкретному документу (например, по Реализации товаров и услуг), в список попадают сотни записей с ошибками Доступ. Отказ в доступе, которые формально не относятся к данному документу. Давайте разберемся, почему это происходит и как правильно интерпретировать данные события в условиях работы механизмов RLS (ограничения доступа на уровне записей).
Основная причина заключается в том, как платформа 1С:Предприятие фиксирует события в журнале. Когда вы открываете форму документа, система не просто считывает один объект. Она выполняет ряд запросов к базе данных, чтобы отобразить реквизиты, связанные справочники, цены и остатки. Если у пользователя настроены ограничения RLS на справочники (например, на Типы цен номенклатуры), любая попытка системы «заглянуть» в данные, к которым у пользователя нет прав, вызывает событие Отказ в доступе.
Почему же эти события «привязываются» к вашему документу? Все дело в контексте выполнения транзакции или запроса:
RLS срабатывает на вложенных данных (типах цен).Данные этой записи попадает ссылка на тот документ, который был «в контексте» запроса в момент ошибки.Таким образом, наличие документа в отборе — это не ошибка фильтрации 1С, а отражение того факта, что текущая операция (открытие документа или работа с ним) неявно обращается к объектам, защищенным RLS.
Важно понимать, что в конфигурациях, подобных УТ 10.3, логика работы с ценами может быть реализована достаточно глубоко. Например, если документ регистрирует цены продажи, то при открытии формы происходит обращение к регистрам сведений или справочникам цен. Если эти метаданные закрыты от пользователя, система будет генерировать ошибку при каждом обращении к документу, использующему эти цены.
Рассмотрим, что происходит «под капотом» при открытии формы:
ПриОткрытии или ПриСозданииНаСервере вызывает заполнение колонок табличной части.RLS к каждой строке выборки.Справочник.ТипыЦенНоменклатуры запрещает чтение, фиксируется запись в Журнал регистрации с указанием текущего контекста (вашего документа).Чтобы окончательно убедиться, что происходит именно «косвенное» обращение, выполним следующие шаги:
RLS. Часто достаточно временно дать полные права, чтобы увидеть, исчезают ли записи. Если исчезают — причина точно в настройках доступа.Технологический журнал для фиксации событий EXCP и DBMSSQL. Это позволит увидеть полный стек вызовов и понять, какой именно запрос «триггерит» отказ в доступе.Важно понимать: наличие таких записей в журнале при отборе по документу — это не поломка платформы, а свидетельство того, что бизнес-логика документа пересекается с ограничениями доступа пользователя. Чтобы минимизировать «шум» в журнале, можно предпринять следующее:
Отказ в доступе, если они мешают поиску других операций с документом.Подводя итог, помните: Журнал регистрации отображает реальную картину взаимодействия прав доступа и объектов. Если вы видите лишние строки, значит, в данный момент система пытается получить данные, которые для текущего пользователя скрыты, используя ваш документ как контекст этой попытки.