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