Почему не отображаются документы в журнале закупок УТ 11.4 при наличии прав и как это исправить

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

В современных конфигурациях на базе 1С:ERP (включая Управление торговлей 11.4) механизм работы журналов документов значительно усложнен по сравнению со старыми версиями. Часто возникает ситуация: программист дает права на документы поступления, дает права на сам журнал, но пользователь видит пустой список. Разберем детально, почему так происходит и как заставить документы отображаться.

Поймем механизм: роль регистра «Реестр документов»

Проанализируем сначала архитектурную особенность. В УТ 11.4 журналы (например, «Закупки», «Продажи») строятся не по физическим таблицам документов (таким как Документ.ПриобретениеТоваровУслуг), а по вспомогательному объекту — регистру сведений РеестрДокументов. Это сделано для повышения производительности при работе с большими объемами данных и сложными фильтрами.

Если в этом регистре нет записей или у пользователя нет прав на чтение конкретных строк этого регистра, журнал будет абсолютно пустым, даже если сами документы в базе есть и права на них выданы. Выясним причину, проверив, заполнен ли этот регистр. Для этого под полными правами откроем «Все функции» (или «Функции для технического специалиста») и найдем РегистрСведений.РеестрДокументов. Если он пуст, значит, в системе отключено или не сработало регламентное задание по обновлению реестра. Однако чаще всего проблема кроется именно в RLS (Record Level Security).

Анализ ограничений RLS на уровне регистра

Рассмотрим ситуацию, когда стандартный шаблон RLS ограничивает видимость данных. В УТ 11.4 часто используется расширенный шаблон. Посмотрим на пример типичного ограничения для этого регистра:


#ПоЗначениямРасширенный("РегистрСведений.РеестрДокументов","Чтение","",
"",
"",
"Организации","Т.Организация","И(",
"ГруппыПартнеров","Т.Партнер","ИЛИ",
"Условие","Т.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.ПустаяСсылка)",") И (",
"Подразделения","Т.Подразделение","ИЛИ",
"Условие", "Т.Подразделение = ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)",") И (",
"Кассы,Подразделения,Склады","Т.МестоХранения.Ключ","ИЛИ",
"Условие","Т.МестоХранения.Ключ = НЕОПРЕДЕЛЕНО ИЛИ Т.МестоХранения.Ключ ЕСТЬ NULL",") И",
"ПравоЧтенияПоИдентификатору","Т.ТипСсылки","",
"","","", "","","", "","","", "","","", "","","", "","","", "","","", "","","")

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

Шаг 1: Диагностика через консоль запросов

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


ВЫБРАТЬ ПЕРВЫЕ 10
    Реестр.Ссылка,
    Реестр.Организация,
    Реестр.Склад
ИЗ
    РегистрСведений.РеестрДокументов КАК Реестр

Если запрос возвращает пустой результат под пользователем, но под администратором данные видны — причина на 100% в праве «Чтение» и установленных ограничениях в ролях. Если же в консоли данные видны, а в журнале нет — проблема в праве «Просмотр» или программных фильтрах в форме журнала.

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

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

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

Шаг 3: Создание специальной роли (практическое решение)

Как показывает практика (и сообщение №11 из обсуждения), иногда типовые ограничения RLS в РеестрДокументов работают избыточно жестко. Если бизнес-задача позволяет пользователю видеть список всех документов (даже если он не может открыть сам документ без прав), можно создать новую роль.

Разберем этот метод по шагам:

  1. В конфигураторе создадим новую роль, например, ЧтениеРеестраДокументовБезОграничений.
  2. Найдем в дереве метаданных РегистрСведений.РеестрДокументов.
  3. Установим права «Чтение» и «Просмотр».
  4. Важно: Поле RLS для права «Чтение» оставим пустым (без шаблонов).
  5. Добавим эту роль в профиль пользователя.

После этого динамический список журнала закупок начнет отображать записи, так как платформа перестанет фильтровать таблицу РеестрДокументов на уровне СУБД для этого пользователя.

Дополнительные факторы: почему еще журнал может быть пустым

Рассмотрим еще несколько неочевидных причин, которые стоит проверить:

  1. Функциональные опции: Если в системе отключена опция «Многофирменный учет», но RLS пытается фильтровать по организациям, может возникнуть конфликт. Проверим настройки в разделе «НСИ и администрирование».
  2. Права на связанные справочники: Для отображения строк в динамическом списке пользователю необходимы права Просмотр на справочники Организации, Партнеры, Контрагенты и Склады. Если есть право только на «Чтение» (без просмотра), платформа может скрывать строки, где эти объекты используются в качестве колонок.
  3. Дата запрета редактирования: Иногда (хотя и редко) настройки даты запрета могут влиять на отображение в специализированных интерфейсах, если в коде формы прописаны соответствующие условия.
  4. Типы документов: Журнал закупок отображает не только «Приобретение товаров и услуг», но и «Возвраты поставщикам», «Таможенные декларации» и т.д. Если у пользователя нет прав Чтение хотя бы на один из типов документов, входящих в состав журнала, динамический список может работать нестабильно.

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

Таким образом, для решения проблемы пустых журналов в УТ 11.4 следует в первую очередь фокусироваться на правах доступа к регистру сведений «Реестр документов» и корректности заполнения настроек в Группах доступа. Использование роли без RLS для этого регистра является самым быстрым и эффективным «лечением» в случае, если типовые профили не обеспечивают нужной видимости данных.

← На главную