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

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

Как создать элементы формы в 1С

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

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

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

Материал ориентирован на управляемые формы, которые используются в современных конфигурациях (БП, УТ, ERP, ЗУП) и в тонком, и в веб-клиенте. Обычные формы встречаются только в старых решениях и устроены иначе.

Где создаются формы и как открыть редактор

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

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

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

Какие типы элементов формы существуют

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

Тип элементаНазначениеТипичное применение
ПолеВвод и отображение данныхРеквизиты объекта: наименование, дата, сумма
КнопкаВыполнение команды«Записать», «Печать», пользовательские действия
ТаблицаРедактирование списковТабличные части документа, динамические списки
ГруппаОбъединение и компоновка элементовСтраницы, колонки, горизонтальные блоки
ДекорацияСтатичные надписи и картинкиПодсказки, заголовки, разделители

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

Как добавить поле ввода, кнопку и таблицу в редакторе

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

Поле ввода

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

Кнопка

Кнопка требует привязки к команде. Сначала создайте команду формы на вкладке «Команды» и задайте её обработчик (действие) — процедуру в модуле формы. Затем добавьте кнопку и в свойстве «ИмяКоманды» укажите созданную команду. Кнопку можно перетащить в командную панель формы или разместить в любом месте.

Таблица

Таблица создаётся перетаскиванием реквизита типа «ТаблицаЗначений» или табличной части объекта в дерево элементов. Колонки добавляются так же — перетаскиванием реквизитов таблицы внутрь элемента-таблицы. Для таблицы настраивают свойства «ИзменятьСоставСтрок», «ИзменятьПорядокСтрок» и командную панель.

Порядок действий при добавлении поля
  1. 1
    Откройте форму объекта в конфигураторе
  2. 2
    Убедитесь, что нужный реквизит есть в окне «Реквизиты»; если нет — добавьте его
  3. 3
    Перетащите реквизит в дерево элементов в нужную группу
  4. 4
    Проверьте автоматически выбранный вид поля и при необходимости измените его в свойствах
  5. 5
    Настройте заголовок, подсказку и доступность
  6. 6
    Сохраните форму и проверьте результат в режиме «Предприятие»

Настройка свойств элементов

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

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

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

Программное создание элементов формы

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

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

// Добавляем реквизит формы

ДобавляемыеРеквизиты = Новый Массив;

ДобавляемыеРеквизиты.Добавить(

Новый РеквизитФормы("КомментарийДинамический",

Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(200))));

ИзменитьРеквизиты(ДобавляемыеРеквизиты);

// Создаём элемент и привязываем к реквизиту

НовыйЭлемент = Элементы.Добавить("ПолеКомментарий", Тип("ПолеФормы"));

НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;

НовыйЭлемент.ПутьКДанным = "КомментарийДинамический";

НовыйЭлемент.Заголовок = "Комментарий";

КонецПроцедуры

Обратите внимание на порядок: сначала ИзменитьРеквизиты(), потом Элементы.Добавить(). Если создать элемент до реквизита, привязка «ПутьКДанным» будет невозможна. Программно созданные элементы не видны в редакторе формы — искать их нужно только в коде модуля.

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

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

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

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

Если элемент не виден, проверьте цепочку: видимость самого элемента, видимость всех родительских групп, функциональные опции, права доступа к реквизиту. Чаще всего «пропавшее» поле скрыто именно на уровне родительской группы или функциональной опции, а не своим свойством.

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

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

Отображение поля на форме
Норма

Поле видно в ожидаемом месте, заголовок корректен

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

Поля нет — проверить видимость групп и функциональные опции

Ввод и сохранение значения
Норма

Введённое значение сохраняется после записи объекта

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

Значение пропадает — не заполнен «ПутьКДанным» или реквизит не связан с объектом

Работа кнопки
Норма

Нажатие выполняет команду, обработчик отрабатывает

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

Кнопка неактивна или ничего не делает — не привязана команда или нет обработчика

Открытие в веб-клиенте
Норма

Форма выглядит так же, как в тонком клиенте

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

Элементы смещены или скрыты — пересмотреть группировку и растягивание

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

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

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

Почему перетащенный реквизит не появился на форме?

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

Можно ли изменить форму, не снимая конфигурацию с поддержки?

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

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

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

Как программно изменить видимость элемента в процессе работы?

Обратитесь к элементу через коллекцию: Элементы.ИмяЭлемента.Видимость = Ложь;. Для серверных обработчиков это работает напрямую, для клиентских — тоже доступно, поскольку изменение свойств элементов не требует вызова сервера.

Почему в веб-клиенте форма выглядит иначе, чем в тонком?

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

Итог

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

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