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