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

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

Как нарисовать форму в 1С: пошаговое руководство

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

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

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

Ниже разобран полный цикл: от создания новой формы до размещения элементов, настройки поведения и проверки результата. Материал ориентирован на управляемые формы, которые используются в современных конфигурациях (Бухгалтерия, Управление торговлей, ЗУП), но принципы применимы и к обычным формам.

Как устроена форма в 1С и что значит «нарисовать»

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

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

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

Создание новой формы объекта через конструктор

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

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

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

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

Редактор формы: реквизиты, элементы и их связь

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

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

Элементы можно перемещать вверх и вниз по дереву — порядок в дереве определяет порядок на экране. Кнопки перемещения есть на командной панели окна элементов. Удаление элемента из дерева не удаляет реквизит: данные остаются, и поле можно вернуть, снова перетащив реквизит.

Группировка элементов и управление компоновкой

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

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

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

Виды групп и их назначение

Обычная группа (вертикальная)

Элементы идут друг под другом; базовый вариант для секций формы

Обычная группа (горизонтальная)

Элементы в одну строку; подходит для пары «поле + кнопка» или связанных полей

Страницы

Закладки формы; используйте, когда полей много и их нужно разбить по смыслу

Группа кнопок

Объединение кнопок командной панели в подменю

Кнопки, команды и командная панель

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

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

&НаКлиенте

Процедура ПроверитьЗаполнение(Команда)

Если Не ЗначениеЗаполнено(Объект.Комментарий) Тогда

Сообщить("Заполните комментарий");

КонецЕсли;

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

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

Программное изменение формы и типичные ошибки

Иногда форму нужно менять динамически: скрывать поля по условию, делать реквизит обязательным, менять заголовок. Это делается в модуле формы через коллекцию Элементы и свойство УсловноеОформление. Например, скрыть поле можно так: Элементы.ПолеКомментарий.Видимость = Ложь;.

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

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

Проверка результата и публикация изменений

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

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

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

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

Открытие формы в режиме предприятия
Норма

Форма открывается, все поля на месте, порядок логичный

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

Ошибка при открытии, пустая форма, пропавшие поля

Изменение размера окна
Норма

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

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

Поля наезжают друг на друга или исчезают

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

Каждая кнопка выполняет своё действие без ошибок

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

Кнопка есть, но ничего не делает — не назначен обработчик

Проверка в другом клиенте
Норма

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

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

Компоновка ломается, элементы недоступны

FAQ

Можно ли нарисовать форму в 1С без программирования?

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

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

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

Как добавить поле на форму типовой конфигурации, не нарушая поддержку?

Создайте расширение конфигурации, добавьте в него нужную форму объекта, затем разместите на форме новый реквизит (его можно добавить в само расширение). Типовая конфигурация останется на поддержке и будет обновляться штатно.

Почему добавленное поле не видно на форме?

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

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

Для реквизита объекта в конфигураторе установите свойство «Проверка заполнения» в значение «Выдавать ошибку» — платформа сама подсветит незаполненное поле при записи. Для реквизита формы аналогичная настройка есть в списке реквизитов формы.

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

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

Итог

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

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