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