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