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