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