Часто при разработке или настройке конфигураций на платформе 1С мы сталкиваемся с ситуацией, когда элемент формы, например, реквизит ИНН, виден администратору, но полностью исчезает для обычного пользователя. Если при отладке вы обнаружили, что элемента просто нет в коллекции ЭтаФорма.Элементы, значит, платформа исключила его еще на этапе формирования структуры формы. Давайте вместе разберем, где именно искать причину такого поведения системы.
Первое, что мы должны проанализировать — это права доступа. В 1С ограничение может быть наложено не только на весь объект целиком, но и на отдельные его реквизиты. Если у пользователя в настройках роли для справочника Физические лица снята отметка Чтение для поля ИНН, платформа автоматически «вырезает» этот элемент из формы.
Чтобы проверить это:
Физические лица.Функциональные опции — мощный инструмент, который может скрывать элементы в зависимости от настроек системы. Даже если вы не нашли явной привязки в редакторе опций, стоит проверить, не зависят ли они от параметров сеанса.
Попробуйте проанализировать код в модулях:
Рассмотрим процедуру ПриСозданииНаСервере в модуле формы. Иногда разработчики скрывают или удаляют элементы программно. Проверьте, нет ли там условий, проверяющих права пользователя:
Если Не ПравоДоступа("Просмотр", Метаданные.Справочники.ФизическиеЛица) Тогда
Элементы.ИНН.Видимость = Ложь;
КонецЕсли;
Поскольку элемент отсутствует физически, мы должны использовать метод «сравнения прав». Запустите сеанс отладки под пользователем с полными правами и под проблемным пользователем. Сравните состав прав с помощью инструмента «Сравнение прав» в конфигураторе. Обратите внимание на наличие прав на просмотр и редактирование реквизитов.
Если конфигурация УНФ дорабатывалась, велика вероятность, что логика изменения интерфейса скрыта в расширении. Проверьте список активных расширений. Возможно, там реализован обработчик ПриСозданииНаСервере, который с использованием аннотаций &Вместо или &Перед удаляет поле ИНН из коллекции элементов для определенных групп пользователей.
Даже если шаблоны ограничений (RLS) не используются явно, проверьте группы доступа пользователя. В типовых решениях права часто распределяются через Профили групп доступа. Если пользователь не входит в группу, имеющую право доступа к персональным данным, система может скрывать конфиденциальные реквизиты, такие как ИНН, из соображений безопасности.
Чтение.Элементы.Удалить()).ПриСозданииНаСервере.Используя этот комплексный подход, вы обязательно найдете, в какой именно настройке «зарыта» причина исчезновения реквизита. Помните, что в управляемых формах 1С платформа обладает высоким приоритетом в определении видимости элементов, поэтому часто поиск нужно начинать именно с прав доступа на уровне ролей.