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