Разработка и Конфигурация · 11 мин
Элементы формы в 1С: что это и как с ними работать
Что такое элементы формы в 1С: виды управляемых форм, программное обращение к элементам, типичные ошибки и практические приёмы разработчика.
Элементы формы в 1С — это визуальные и служебные компоненты, из которых собирается интерфейс формы: поля ввода, надписи, кнопки, таблицы, группы, переключатели, декорации и командные панели. Каждый элемент привязан к данным формы (реквизиту) или выполняет служебную роль — например, группирует другие элементы или отображает подсказку. Понимание того, как устроены элементы формы, необходимо любому разработчику 1С, который создаёт документы, справочники, обработки или дорабатывает типовые конфигурации.
В управляемых формах (платформа 8.2 и выше) разработчик не рисует форму попиксельно, а описывает её структуру: какие элементы есть, как они сгруппированы и к каким данным привязаны. Итоговую разметку платформа рассчитывает сама с учётом клиента — тонкого, веб-клиента или мобильного. Поэтому работа с элементами формы сводится к управлению их свойствами: видимостью, доступностью, заголовком, отображением и поведением.
Что такое форма и из чего она состоит
Форма в 1С — это описание экрана, который видит пользователь при работе с объектом: документом, элементом справочника, отчётом или обработкой. Каждая форма состоит из трёх взаимосвязанных частей: реквизитов (данных формы), элементов (визуального представления) и команд (действий пользователя). Элемент формы без привязки к данным — это либо оформление, либо управляющий компонент вроде кнопки.
В конфигураторе структура формы отображается в виде дерева на закладке «Форма» редактора. Верхний уровень дерева — сама форма, вложенные узлы — группы и элементы. Порядок элементов в дереве определяет порядок их отображения на экране, а вложенность — визуальную группировку. Свойства выбранного элемента редактируются в палитре свойств справа.
Важно различать реквизит формы и элемент формы. Реквизит — это данные (например, строка «Комментарий» или таблица «Товары»), а элемент — способ показать эти данные пользователю. Один реквизит может быть связан с несколькими элементами, а может вообще не иметь визуального представления, если данные нужны только для программной логики.
Основные виды элементов формы
Платформа 1С предоставляет фиксированный набор видов элементов. Выбор вида определяет, как элемент выглядит и какие свойства ему доступны. Ниже — основные категории, которые встречаются в каждой типовой форме.
Поле — самый распространённый элемент. В зависимости от типа связанных данных поле автоматически принимает вид: поле ввода для строк и чисел, поле флажка для булевых значений, поле переключателя, поле календаря, поле картинки. Вид поля можно изменить вручную в свойстве «Вид».
Группа — контейнер для других элементов. Группы бывают обычными (с заголовком и рамкой или без), страницами и страницей, командными панелями. Именно через группы строится компоновка формы: горизонтальное или вертикальное расположение элементов, выравнивание, поведение при растягивании окна.
Таблица — элемент для отображения табличных частей и динамических списков. Таблица содержит колонки, каждая из которых — тоже элемент формы. Кнопка запускает команду формы. Декорация — статичная надпись или картинка для оформления и подсказок.
В свойстве ПутьКДанным указано имя реквизита
В дереве элементов имеет дочерние узлы
Заполнено свойство ИмяКоманды
Свойство ПутьКДанным пустое, задан Заголовок или Картинка
Как добавить элемент на форму в конфигураторе
Откройте форму объекта в конфигураторе (например, форму документа) и перейдите на закладку «Форма». Новый элемент добавляется через контекстное меню дерева элементов: «Добавить» → нужный вид элемента. После добавления элемент появится в дереве, и его свойства откроются в палитре свойств.
Ключевые действия после добавления — задать имя элемента, привязать его к данным через свойство «ПутьКДанным» (для полей) и настроить заголовок. Если элемент нужно разместить внутри группы, перетащите его в дереве на узел группы. Порядок в дереве определяет порядок на экране, поэтому элементы легко перемещать мышью.
- 1Откройте форму в конфигураторе и перейдите на закладку «Форма»
- 2Добавьте реквизит формы нужного типа на закладке «Реквизиты»
- 3Перетащите реквизит из панели реквизитов в дерево элементов — платформа сама создаст поле подходящего вида
- 4Настройте заголовок, подсказку и группировку в палитре свойств
- 5Запустите отладку (F5) и проверьте отображение элемента в пользовательском режиме
Обратите внимание на приём «перетаскивания реквизита в дерево»: это самый быстрый способ создать поле, потому что платформа автоматически заполнит «ПутьКДанным», заголовок и выберет подходящий вид поля. Ручное создание элемента с последующей привязкой оправдано только для нестандартных случаев.
Программная работа с элементами формы
В модуле формы все элементы доступны через коллекцию Элементы. Обращение идёт по имени элемента: Элементы.Комментарий.Видимость = Ложь;. Чаще всего программно меняют свойства Видимость, Доступность, ТолькоПросмотр, Заголовок, ЦветТекста и ОтметкаНезаполненного.
Типовой сценарий — управление видимостью в зависимости от данных. Например, показывать поле «Договор» только если выбран контрагент. Такую логику размещают в обработчиках событий формы: ПриОткрытии, ПриИзменении конкретного поля или в обработчике ожидания.
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
Элементы.Договор.Видимость = ЗначениеЗаполнено(Объект.Контрагент);
КонецПроцедурыЭлементы можно создавать и удалять программно через методы Элементы.Добавить() и Элементы.Удалить(), но только в обработчике ПриСозданииНаСервере и только на сервере. Это применяется в универсальных обработках, где состав полей заранее неизвестен. Для типовых форм документов такой подход обычно избыточен.
Свойства элементов: что настраивать в первую очередь
Из десятков свойств элемента в повседневной работе реально используются около десятка. Видимость и Доступность управляют тем, видит ли пользователь элемент и может ли с ним работать. Разница принципиальна: недоступный элемент виден, но заблокирован (серый), невидимый — полностью скрыт.
Заголовок и Подсказка отвечают за понятность интерфейса. ПоложениеЗаголовка позволяет перенести заголовок влево, вверх или скрыть. АвтоОтметкаНезаполненного и связанное свойство реквизита «Проверка заполнения» обеспечивают контроль обязательных полей без написания кода.
Для групп критичны свойства Группировка (горизонтальная/вертикальная), Отображение (рамка, отступ) и Поведение (сворачиваемая, всплывающая). Неправильная группировка — причина большинства проблем с «разъезжающейся» формой при изменении размера окна.
Типичные ошибки при работе с элементами формы
Начинающие разработчики часто путают реквизит и элемент: пытаются прочитать значение через Элементы.Поле.Значение вместо обращения к реквизиту формы или объекту. Элемент отвечает только за отображение; данные хранятся в реквизитах и объекте формы.
Вторая частая ошибка — обращение к элементу до его создания. На клиенте коллекция Элементы доступна после создания формы, но попытка обратиться к ней в серверном контексте до вызова ПриСозданииНаСервере или в обработчиках объекта (а не формы) приводит к ошибке исполнения.
Как проверить результат работы
После добавления или изменения элементов форму нужно проверить в режиме предприятия, а не только в конфигураторе. Дерево элементов показывает структуру, но итоговая компоновка рассчитывается платформой при открытии формы и зависит от размера окна, масштаба и клиента.
Проверяйте форму в трёх состояниях: при создании нового объекта, при открытии существующего и после записи. Убедитесь, что динамическая видимость и доступность корректно переключаются при изменении ключевых полей, а обязательные поля подсвечиваются при попытке записи с пустым значением.
Как проверить результат
Поле видно, заголовок читается, значение сохраняется при записи
Поле отсутствует на форме или данные не сохраняются — проверьте ПутьКДанным
Элемент появляется и скрывается при изменении управляющего поля
Состояние сбрасывается после записи — логика не вызывается повторно
Элементы переносятся и сжимаются без наложения
Поля наезжают друг на друга — пересмотрите группировку
Давайте элементам осмысленные имена сразу при создании: «ГруппаОсновныеРеквизиты» читается лучше, чем «Группа1». Через полгода сопровождения формы с десятками элементов понятные имена экономят заметное время при поиске нужного свойства в коде.
Частые вопросы об элементах формы в 1С
Чем элемент формы отличается от реквизита формы?
Реквизит — это данные, хранящиеся в форме (строка, число, таблица значений). Элемент — визуальный компонент, который отображает реквизит или выполняет служебную функцию (группа, кнопка, надпись). Один реквизит может быть связан с несколькими элементами или не иметь ни одного.
Как скрыть элемент формы программно?
В модуле формы установите свойство: Элементы.ИмяЭлемента.Видимость = Ложь;. Вызывайте этот код в обработчиках, которые срабатывают при каждом изменении условий (например, ПриИзменении управляющего поля), а не только при открытии формы.
Можно ли добавить элемент на форму без изменения конфигурации?
Да, двумя способами: через расширение конфигурации (рекомендуемый способ для типовых решений) или программно методом Элементы.Добавить в обработчике ПриСозданииНаСервере. Оба подхода сохраняют возможность обновления основной конфигурации.
Почему свойство элемента недоступно на сервере?
Часть свойств элементов (например, связанные с интерактивным вводом) доступна только в клиентском контексте, потому что управляемая форма разделена между клиентом и сервером. Проверяйте в синтакс-помощнике колонку доступности свойства: «Сервер», «Тонкий клиент», «Веб-клиент».
Как сделать поле обязательным для заполнения?
Установите у соответствующего реквизита объекта или формы свойство «Проверка заполнения» в значение «Выдавать ошибку». Платформа автоматически подсветит пустое поле при записи и покажет сообщение — писать код проверки не требуется.
Что делать, если элементы «разъезжаются» при изменении размера окна?
Проверьте группировку: элементы, которые должны стоять в одну строку, поместите в группу с горизонтальной группировкой. Настройте свойства растягивания (РастягиватьПоГоризонтали) и ширины у полей. Готовую форму проверяйте при разных размерах окна.
Что важно запомнить
Элементы формы — это визуальные компоненты управляемой формы, привязанные к реквизитам или выполняющие служебные роли. Управляйте ими через дерево элементов в конфигураторе и коллекцию Элементы в модуле формы, различайте данные и их отображение, а доработки типовых форм выполняйте через расширения.