Почему на управляемой форме 1С скрываются вкладки и элементы в зависимости от ролей пользователя?

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

При разработке и сопровождении конфигураций на платформе 1С:Предприятие 8.3 (например, ЗКГУ, ЗУП 3.1, ERP) разработчики часто сталкиваются с ситуацией, когда у пользователей с ограниченными правами пропадают целые страницы (вкладки) или отдельные реквизиты документов. При этом в обработчиках формы ПриСозданииНаСервере или ПриОткрытии явного переопределения свойства Видимость через отладчик обнаружить не удается.

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

1. Права на просмотр реквизитов в ролях и автоскрытие страниц платформой

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

  1. Если у роли пользователя снято право Просмотр для конкретного реквизита, платформа автоматически исключает связанный с ним элемент интерфейса из формы.
  2. Если на вкладке (элементе формы с типом Страница) расположены элементы, привязанные к реквизитам, на которые у пользователя нет права Просмотр, платформа скроет все эти элементы.
  3. Когда на странице не остается ни одного доступного и видимого элемента, платформа 1С автоматически скрывает всю вкладку целиком. При этом у самого элемента формы страницы свойство Видимость в коде может оставаться равным Истина.

Для проверки откроем конфигуратор, найдем назначенную пользователю роль (или роли), развернем права нужного документа и проверим колонку Просмотр для каждого реквизита, расположенного на проблемной вкладке.

2. Свойство элемента «Пользовательская видимость» в конфигураторе

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

Разберем по шагам, как проверить эту настройку:

  1. Откроем форму документа в конфигураторе.
  2. Выделим элемент формы (поле ввода, группу или страницу) и перейдем в палитру свойств.
  3. Найдем свойство Пользовательская видимость и нажмем кнопку открытия диалога настройки.
  4. Убедимся, что для роли текущего пользователя установлен флажок видимости. Если для роли флаг снят, элемент не будет отображен в пользовательском сеансе по умолчанию.

3. Механизмы Библиотеки стандартных подсистем (БСП)

В типовых решениях (включая ЗКГУ и ЗУП) логика управления элементами форм вынесена из модулей самих форм в общие модули подсистем управления доступом и зарплатно-кадрового учета. Код может отрабатывать в переопределяемых модулях БСП:

  1. Проверяются не только типовые роли платформы, но и профили групп доступа, а также контекстные права (например, доступ к чтению персональных данных или расчетных листков).
  2. Модули подсистемы прав могут программно изменять видимость и доступность целых групп элементов в зависимости от функционального состава прав текущего пользователя.
  3. Для поиска такого кода выполним глобальный поиск по имени реквизита формы или имени страницы в общих модулях с постфиксами Переопределяемый, КлиентСервер и СобытияФорм.

4. Влияние функциональных опций

Платформа 1С позволяет связывать элементы формы, команды и реквизиты с Функциональными опциями. Если в программе отключена соответствующая опция (например, отключен учет по нескольким организациям, учет вредных условий труда или использование тарифных сеток), платформа исключает связанные элементы интерфейса до выполнения пользовательского кода.

Проверим в свойствах элемента формы реквизит ФункциональныеОпции. Если там указана опция, необходимо проверить значение константы или параметра, от которого зависит данная функциональная опция в режиме предприятия.

5. Сохраненные пользовательские настройки формы

Управляемая форма сохраняет индивидуальные настройки расположения и видимости элементов в системном хранилище настроек. Если пользователь или администратор ранее скрыл элемент вручную через меню интерфейса, форма запоминает это состояние.

Разберем по шагам, как сбросить персональные настройки формы:

  1. В пользовательском сеансе откроем форму документа.
  2. Нажмем кнопку Еще в правом верхнем углу и выберем пункт Изменить форму....
  3. В открывшемся окне нажмем Еще — Установить стандартные настройки.
  4. Если доступ к интерфейсу заблокирован, администратор может очистить сохраненные настройки формы для конкретного пользователя через меню Администрирование — Настройки пользователей и прав — Очистка настроек.

6. Ограничение доступа на уровне записей и полей (RLS) и расширения

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

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

← На главную