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

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

Конструктор управляемой формы 1С: что это и как с ним работать

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

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

Конструктор существенно ускоряет типовые задачи: форма документа, форма списка справочника, форма выбора. За несколько шагов мастера он создаёт структуру реквизитов, размещает элементы, связывает их с данными объекта и генерирует модуль формы с заготовками обработчиков событий. Дальше разработчик дорабатывает результат в редакторе формы.

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

Что такое управляемая форма и чем она отличается от обычной

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

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

Как открыть конструктор и создать форму

Конструктор запускается из дерева конфигурации. Откройте нужный объект (справочник, документ, регистр), перейдите на вкладку «Формы» и нажмите кнопку добавления. Если форм ещё нет, конструктор предложит выбрать тип формы сразу; если формы есть, добавление новой также откроет мастер.

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

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

Типы форм и когда какой выбирать

От типа формы зависит её основной реквизит — источник данных. Форма элемента получает реквизит типа «СправочникОбъект» или «ДокументОбъект», форма списка — динамический список с основной таблицей объекта. Неправильно выбранный тип на старте потом сложно исправить: проще удалить форму и создать заново.

Сравнение вариантов

Форма элемента / документа

Для редактирования одного объекта. Содержит все реквизиты и табличные части, поддерживает запись и проведение.

Форма списка

Для просмотра и поиска объектов. Основа — динамический список, можно настроить отбор, сортировку и условное оформление.

Форма выбора

Открывается при подборе значения в поле ввода. Обычно упрощённый вариант списка без лишних команд.

Произвольная форма

Без основного реквизита. Подходит для обработок, настроек и диалогов, где данные хранятся в реквизитах самой формы.

Настройка реквизитов и элементов после конструктора

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

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

Модуль формы и обработчики событий

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

Разделяйте код по контекстам исполнения. Обращение к базе данных, запросы и работа с объектами возможны только на сервере; интерактивные действия с пользователем — только на клиенте. Частая ошибка новичка — вызов запроса напрямую из клиентской процедуры, что приводит к ошибке компиляции или падению в тонком клиенте.

1c
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если Объект.Ссылка.Пустая() Тогда
		Объект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
	КонецЕсли;
КонецПроцедуры

Как проверить, что форма работает правильно

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

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

Как проверить результат

Отображение данных
Норма

Все поля показывают значения реквизитов объекта

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

Поля пустые или выводится ошибка обращения к данным

Запись и проведение
Норма

Документ записывается и проводится без ошибок

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

Кнопки неактивны или появляется сообщение о недоступности операции

Клиентские вызовы
Норма

Серверный код вызывается только из серверных процедур

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

Ошибка «Процедура или функция не определена» в тонком клиенте

Адаптивность
Норма

Элементы корректно перестраиваются при изменении размера окна

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

Поля обрезаны, таблицы выходят за границы формы

Типичные ошибки и ограничения конструктора

Конструктор не заменяет понимания архитектуры управляемых форм. Он не настраивает функциональные опции, права доступа к элементам, сложные отборы динамических списков и параметризуемые команды — всё это дорабатывается вручную.

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

Альтернативы конструктору

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

Маршрут решения

Как выбрать действие

Нужна стандартная форма нового объекта собственной разработкиИспользуйте конструктор — это самый быстрый путь
Дорабатывается форма типовой конфигурации на поддержкеСоздайте расширение и заимствуйте форму туда
Нужен нестандартный диалог без привязки к объектуСоздайте произвольную форму и добавьте реквизиты вручную
Форма почти повторяет уже существующуюСкопируйте готовую форму и измените привязку данных
Итог

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

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

Частые вопросы

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

Нет, конструктор работает только при создании. Для существующей формы изменения вносятся в редакторе формы вручную. Если структура сильно устарела, проще удалить форму и создать новую, перенеся обработчики из старого модуля.

Почему поле на форме не показывает данные?

Чаще всего у элемента не заполнено свойство «Путь к данным» или указан реквизит, которого нет в списке реквизитов формы. Откройте палитру свойств элемента и проверьте привязку; заодно убедитесь, что сам реквизит существует в объекте конфигурации.

Чем форма выбора отличается от формы списка?

Форма выбора открывается при подборе значения в поле ввода и возвращает выбранное значение вызывающей форме. Технически это та же форма списка, но обычно с упрощённым набором колонок и без команд создания и изменения. Если форма выбора не создана, платформа использует форму списка.

Нужно ли создавать все формы вручную?

Нет. Если у объекта нет собственных форм, платформа автоматически генерирует стандартные формы элемента и списка во время выполнения. Собственная форма нужна, когда требуется нестандартное расположение элементов, дополнительная логика или особые команды.

Как добавить на управляемую форму свою кнопку с обработчиком?

В редакторе формы добавьте команду на вкладке «Команды», задайте ей действие — платформа создаст заготовку процедуры в модуле. Затем перетащите команду в дерево элементов, например в командную панель или группу кнопок, и напишите код обработчика с нужной директивой контекста.

Работает ли конструктор в расширении конфигурации?

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