К статье
Практический материал

Разработка и Конфигурация · 13 мин

Элементы формы в 1С:Предприятие: виды, назначение и настройка

Что такое элементы формы в 1С:Предприятие: виды полей ввода, таблиц, кнопок и групп, настройка свойств, программное управление и типичные ошибки при работе с формами.

Элементы формы в 1С:Предприятие — это визуальные и служебные объекты, из которых состоит любой экран, с которым работает пользователь: документ, справочник, отчёт или обработка. Поле ввода, кнопка, табличная часть, надпись, флажок, группа вкладок — всё это элементы формы, каждый из которых связан с данными объекта и имеет набор свойств, определяющих внешний вид и поведение.

Понимание того, как устроены элементы формы, необходимо в трёх ситуациях: когда требуется изменить типовую форму под процессы компании, когда разрабатывается собственная обработка или отчёт, и когда нужно программно управлять формой — скрывать поля, менять доступность, проверять ввод. Без этих знаний любая доработка интерфейса превращается в метод проб и ошибок.

Материал ориентирован на управляемые формы — современный механизм платформы 1С, который используется во всех актуальных конфигурациях. Обычные формы встречаются только в старых решениях и рассматриваются отдельно как особый случай.

Что такое форма и из чего она состоит

Форма в 1С — это объект конфигурации, который описывает, как данные показываются пользователю и как он с ними взаимодействует. У одного объекта (например, документа «Реализация товаров») может быть несколько форм: форма документа, форма списка, форма выбора. Каждая решает свою задачу, но устроена одинаково — из элементов, расположенных в иерархическом дереве.

Структура формы включает три взаимосвязанные части. Первая — дерево элементов: визуальная иерархия, где группы содержат вложенные поля, кнопки и таблицы. Вторая — реквизиты формы: данные, которые форма отображает и редактирует. Третья — команды формы: действия, доступные пользователю через кнопки и меню. Элемент формы без привязки к реквизиту или команде либо декоративен, либо не работает.

Ключевой принцип управляемых форм: разработчик описывает логическую структуру, а платформа сама решает, как её отрисовать на конкретном клиенте — в тонком клиенте Windows, в веб-браузере или на мобильном устройстве. Поэтому в управляемых формах нельзя задать точные координаты элемента в пикселях, как это было в обычных формах.

Основные виды элементов формы

Все элементы делятся на несколько функциональных групп. Знание этой классификации помогает быстро найти нужный элемент в палитре конфигуратора и правильно выбрать тип для конкретной задачи.

Поля ввода и связанные с ними элементы

Поле — самый распространённый элемент. В зависимости от типа связанных данных платформа автоматически подбирает вид поля: для строки — поле ввода, для булево — флажок, для перечисления — поле со списком выбора, для даты — поле с календарём. Вид можно изменить вручную через свойство «Вид», если стандартное представление не подходит.

Отдельные разновидности полей: поле надписи (только чтение), поле переключателя (выбор одного значения из нескольких), поле полосы регулирования, поле календаря, поле картинки. Выбор вида влияет не только на внешний вид, но и на доступные события и свойства элемента.

Таблицы и списки

Таблица формы отображает табличную часть документа, динамический список или таблицу значений. Это составной элемент: внутри него располагаются колонки, каждая из которых — самостоятельное поле со своими свойствами. Таблица поддерживает события выбора, изменения строки, начала и окончания редактирования.

Для динамических списков таблица дополнительно связана с настройками отбора, сортировки и группировки, которые пользователь может менять самостоятельно через «Ещё — Настроить список», если разработчик не запретил это свойствами.

Кнопки, команды и декорации

Кнопка формы связана с командой: стандартной (записать, провести, закрыть) или созданной разработчиком. Кнопки размещаются в командной панели формы, в командной панели таблицы или непосредственно на форме. Декорации — надписи и картинки без привязки к данным — используются для пояснений, разделителей и оформления.

Группы: управление компоновкой

Группа — контейнер, объединяющий другие элементы. Виды групп: обычная группа (горизонтальная или вертикальная), страницы и страница (вкладки), командная панель, группа кнопок. Группировка определяет порядок обхода элементов, их выравнивание и поведение при изменении размера окна. Правильно построенная иерархия групп — основа формы, которая корректно выглядит на разных экранах.

Редактировать реквизитПоле

Платформа сама подберёт вид: ввод, флажок, список выбора

Показать несколько строк данныхТаблица

Табличная часть, динамический список или таблица значений

Выполнить действиеКнопка + команда

Сначала создаётся команда формы, затем кнопка

Упорядочить элементыГруппа

Горизонтальная, вертикальная или страницы

Ключевые свойства элементов и что они меняют

Каждый элемент имеет палитру свойств, доступную в конфигураторе через контекстное меню «Свойства». Часть свойств одинакова почти для всех элементов, часть — специфична для конкретного вида. Разберём те, с которыми приходится работать чаще всего.

Универсальные свойства: Имя (идентификатор для обращения из кода), Заголовок (текст, видимый пользователю), Видимость и Доступность (показан ли элемент и можно ли с ним взаимодействовать), ТолькоПросмотр (данные видны, но не редактируются), Подсказка и ОтображениеПодсказки. Свойство «ПутьКДанным» у полей связывает элемент с реквизитом формы — без него поле не отображает и не сохраняет значение.

Специфичные свойства полей ввода: КнопкаВыбора, КнопкаОчистки, БыстрыйВыбор для ссылочных полей, Маска для строк, МинимальноеЗначение и МаксимальноеЗначение для чисел. Для таблиц важны ИзменятьСоставСтрок, ИзменятьПорядокСтрок, РежимВыделения. Свойства, изменённые в конфигураторе, действуют всегда; свойства, изменённые программно, — только в рамках сеанса работы с формой.

Как добавить и настроить элемент в конфигураторе

Добавление элемента выполняется в редакторе формы конфигуратора. Откройте форму объекта, перейдите на вкладку с деревом элементов (обычно левая верхняя панель) и используйте контекстное меню «Добавить» или перетащите реквизит из панели реквизитов в нужное место дерева. Перетаскивание реквизита удобнее: платформа сразу создаст поле подходящего вида и установит связь с данными.

Порядок элементов в дереве определяет порядок их отображения и обхода по клавише Tab. Элементы перемещаются кнопками со стрелками или перетаскиванием. Если поле оказалось не в той группе, оно будет отображаться не там, где ожидалось, — это самая частая причина «пропавших» на форме полей.

Порядок добавления поля ввода на форму
  1. 1
    Откройте форму объекта в конфигураторе, перейдите в редактор формы
  2. 2
    Найдите нужный реквизит на панели реквизитов справа
  3. 3
    Перетащите реквизит в нужную группу дерева элементов
  4. 4
    Откройте свойства элемента, проверьте Заголовок, Вид, ПутьКДанным
  5. 5
    Настройте при необходимости КнопкуВыбора, БыстрыйВыбор, подсказку
  6. 6
    Сохраните конфигурацию и проверьте форму в режиме 1С:Предприятие

После добавления обязательно проверьте форму в режиме предприятия: открытие, заполнение поля, сохранение, повторное открытие. Проверка особенно важна, если форма дорабатывалась в расширении конфигурации — там ошибки привязки элементов проявляются только при запуске.

Программное управление элементами формы

В модуле формы элементы доступны через коллекцию Элементы (на клиенте и на сервере в контексте формы). Обращение выполняется по имени: Элементы.Комментарий.Видимость = Ложь;. Так можно динамически менять заголовки, доступность, видимость, цвета, списки выбора и другие свойства в ответ на действия пользователя или состояние данных.

Типовой сценарий — обработчики событий. У полей чаще всего используются ПриИзменении, НачалоВыбора, ОбработкаВыбора, АвтоПодбор; у таблиц — ПриАктивизацииСтроки, ПередУдалением, ПриОкончанииРедактирования; у формы в целом — ПриСозданииНаСервере, ПриОткрытии, ПередЗаписью. Обработчик назначается в палитре свойств элемента на вкладке событий, платформа создаёт заготовку процедуры в модуле формы.

bsl
&НаКлиенте
Процедура ВидЦеныПриИзменении(Элемент)
	Элементы.Цена.ТолькоПросмотр = НЕ ЗначениеЗаполнено(Объект.ВидЦены);
	Если Элементы.Цена.ТолькоПросмотр Тогда
		Объект.Цена = 0;
	КонецЕсли;
КонецПроцедуры

Программно можно не только менять свойства, но и создавать элементы с нуля — методами Элементы.Добавить() и Элементы.Вставить() на сервере. Это используется в универсальных обработках, где состав полей заранее неизвестен. Учтите: динамически созданные элементы не сохраняются между вызовами сервера, их нужно пересоздавать в ПриСозданииНаСервере либо после каждого изменения структуры данных.

Управляемые и обычные формы: в чём разница для элементов

В старых конфигурациях на обычных формах элементы размещались по абсолютным координатам, а разработчик полностью управлял отрисовкой. Набор элементов там похож, но имена и свойства отличаются: например, «ПолеВвода», «Надпись», «ТабличноеПоле» как отдельные типы, тогда как в управляемых формах это виды одного элемента «Поле».

Если вы поддерживаете старую конфигурацию, учитывайте главное ограничение: обычные формы работают только в толстом клиенте. При переводе решения на управляемые формы элементы не конвертируются автоматически — форму проектируют заново, перенося логику из обработчиков. Попытка копировать код между видами форм почти всегда приводит к ошибкам компиляции модуля.

Управляемые и обычные формы

Управляемые формы

Декларативное описание, работа в веб-клиенте и на мобильных, автоматическая компоновка. Ограничение: нельзя задать точные координаты и пиксельное оформление

Обычные формы

Полный контроль над отрисовкой, координатное размещение. Ограничение: только толстый клиент, технология устарела и не развивается

Типичные ошибки при работе с элементами формы

Большинство проблем с элементами формы сводится к нескольким повторяющимся причинам. Их знание сокращает отладку в разы.

Типичные ошибки
01
Обращение к элементу по имени, которое не совпадает с именем в дереве — ошибка «Поле объекта не обнаружено» при открытии формы
02
Поле добавлено на форму, но не заполнено свойство ПутьКДанным — поле отображается пустым и не сохраняет значение
03
Изменение данных объекта в клиентском обработчике без контекста — часть реквизитов недоступна на клиенте, нужен серверный вызов
04
Скрытие обязательного поля вместо снятия флажка ПроверкаЗаполнения — документ не проводится, а причина пользователю не видна
05
Доработка типовой формы вместо расширения — конфликты и потеря изменений при обновлении конфигурации

Отдельная группа проблем — производительность. Обращение к Элементы на сервере, частые серверные вызовы из обработчиков изменения полей, тяжёлые запросы в ПриАктивизацииСтроки делают форму медленной. Правило простое: в клиентских обработчиках — минимум логики, обращения к базе данных — только в серверных процедурах и только при реальной необходимости.

Контрольные точки

Как проверить результат доработки формы

Открытие формы
Норма

Форма открывается без ошибок, все элементы на месте

Тревожный признак

Сообщение о ненайденном элементе или реквизите

Заполнение и сохранение
Норма

Введённые значения сохраняются и видны при повторном открытии

Тревожный признак

Поле очищается после записи — нет связи с данными

Порядок обхода
Норма

Tab переводит фокус в логичной последовательности

Тревожный признак

Фокус перескакивает — нарушен порядок в дереве элементов

Веб-клиент
Норма

Форма выглядит корректно и в браузере

Тревожный признак

Элементы наезжают друг на друга — проверьте группировку

Частые вопросы об элементах формы 1С

Чем элемент формы отличается от реквизита формы?

Реквизит — это данные (значение, которое хранится и обрабатывается), а элемент — визуальное представление на экране. Один реквизит может быть связан с несколькими элементами или не иметь ни одного (тогда он доступен только программно). Элемент без реквизита — декорация или кнопка.

Можно ли добавить элемент на форму без изменения конфигурации?

Да, через расширение конфигурации: оно позволяет добавлять элементы, реквизиты и обработчики на типовую форму, не снимая её с поддержки. Это рекомендуемый способ доработки типовых решений. Полностью без доработки — только через механизм дополнительных реквизитов и сведений, который доступен в большинстве типовых конфигураций в режиме предприятия.

Почему поле видно в конфигураторе, но не отображается у пользователя?

Проверьте три причины: свойство «Видимость» элемента и всех родительских групп, функциональные опции (поле может быть связано с отключенной опцией) и права доступа к реквизиту — при отсутствии права просмотра платформа скрывает поле автоматически.

Как сделать поле обязательным для заполнения?

Установите у элемента свойство «АвтоОтметкаНезаполненного» или у реквизита объекта — проверку заполнения «Выдавать ошибку». Для гибких условий используйте обработчик «ОбработкаПроверкиЗаполнения» на сервере, где проверку можно включать в зависимости от значений других полей.

Как программно найти элемент, если его имя неизвестно заранее?

Используйте метод Элементы.Найти("ИмяЭлемента") — он вернёт элемент или Неопределено, что безопасно для проверки. Перебрать все элементы можно циклом по коллекции Элементы, а поиск по связанным данным — через свойство ПутьКДанным у полей.

Можно ли изменить порядок полей на форме без конфигуратора?

В типовых конфигурациях пользователь может частично менять форму через «Ещё — Изменить форму»: скрывать и перемещать элементы, менять состав командной панели. Настройка сохраняется для конкретного пользователя и не требует прав разработчика, но не позволяет добавлять новые реквизиты.

Итог

Что важно запомнить

Элементы формы — это поля, таблицы, кнопки, группы и декорации, из которых строится экран 1С. Каждый элемент связан с реквизитом или командой и настраивается через свойства в конфигураторе либо программно через коллекцию Элементы. Типовые формы дорабатывайте расширениями, а результат всегда проверяйте в режиме предприятия.