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

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

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

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

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

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

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

Какие бывают формы и какую выбрать

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

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

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

Подготовка: что проверить перед созданием формы

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

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

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

Создание формы через конструктор: пошагово

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

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

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

Ручная доработка формы: реквизиты, элементы и команды

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

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

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

&НаКлиенте

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

ЗаполнитьПоУмолчаниюНаСервере();

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

&НаСервере

Процедура ЗаполнитьПоУмолчаниюНаСервере()

Объект.Ответственный = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;

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

Форма в расширении конфигурации

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

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

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

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

Изменение типовой формы

Подходит для собственных конфигураций без поставщика. В типовых усложняет обновление и требует снятия объекта с поддержки.

Форма в расширении

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

Новая форма вместо типовой

Полный контроль над интерфейсом, но придётся самостоятельно реализовывать всю логику, которую давала типовая форма.

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

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

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

Для поиска логических ошибок используйте отладчик: поставьте точку останова в обработчике (F9 на строке в модуле формы) и пройдите код по шагам. В табло (Shift+F9) удобно смотреть значения реквизитов формы в момент выполнения.

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

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

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

Форма открывается без сообщений об ошибках

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

Ошибка компиляции модуля или «Поле не найдено»

Запись данных
Норма

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

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

Поле очищается или не записывается в базу

Команды формы
Норма

Кнопки выполняют задуманное действие без исключений

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

Ошибка вызова серверной процедуры из клиентского контекста

Типичные ошибки при создании форм

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

Типичные ошибки
01
Элемент формы не привязан к реквизиту: поле отображается, но данные не сохраняются. Проверьте свойство «ПутьКДанным» элемента.
02
Вызов серверной процедуры из клиентского кода без директивы &НаСервере или с попыткой обратиться к элементам формы на сервере — ошибка при открытии.
03
Форма создана, но не назначена основной: объект открывается со старой или автоматически сгенерированной формой.
04
Забыто обновление конфигурации базы данных (F7): в режиме «Предприятие» изменения не видны, хотя в конфигураторе всё сохранено.
05
Дублирование имён элементов или реквизитов приводит к неоднозначным обращениям и трудноотлаживаемым ошибкам.

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

Итог

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

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

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

Можно ли создать форму без конструктора?

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

Почему созданная форма не открывается в режиме «Предприятие»?

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

Как добавить на форму поле, которого нет в реквизитах объекта?

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

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

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

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

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

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

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