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

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

Что такое форма элемента в 1С и как с ней работать

Что такое форма элемента в 1С, чем она отличается от формы списка, как открыть и настроить её в конфигураторе, типичные ошибки и ответы на частые вопросы.

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

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

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

Что представляет собой форма элемента и где она встречается

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

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

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

Чем форма элемента отличается от других видов форм

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

Вид формыНазначениеКогда открывается
Форма элементаРедактирование одного объектаДвойной щелчок по записи, создание новой
Форма спискаПеречень объектов с отбором и поискомОткрытие справочника или журнала документов
Форма выбораПодбор значения в поле вводаЩелчок по кнопке выбора в поле ссылки
Форма группыРедактирование папки справочникаОткрытие группы в иерархическом справочнике

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

В конфигураторе для объекта можно задать основные формы: основную форму элемента, основную форму списка и основную форму выбора. Именно основная форма элемента будет открываться по умолчанию, если в коде явно не указано другое.

Из чего состоит форма элемента

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

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

Третья часть — команды формы и командная панель. Сюда входят стандартные команды (записать, записать и закрыть, провести) и команды, добавленные разработчиком: печать, заполнение по шаблону, вызов обработки. Четвёртая часть — модуль формы: программный код на встроенном языке, который обрабатывает события (при открытии, перед записью, при изменении поля) и реализует прикладную логику.

Реквизит «Объект»Главные данные формы

В дереве реквизитов формы должен быть реквизит типа редактируемого объекта

ЭлементыПоля, группы, таблицы

Проверьте, что каждый элемент привязан к реквизиту или команде

Модуль формыОбработчики событий

Ищите процедуры ПриСозданииНаСервере, ПередЗаписью, ПриИзменении

Командная панельКнопки действий

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

Как создать форму элемента в конфигураторе

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

В конструкторе выберите тип «Форма элемента справочника» (или документа). Конструктор предложит отметить реквизиты, которые нужно разместить на форме, и их порядок. После завершения платформа создаст форму с деревом элементов, реквизитами и пустым модулем. Чтобы форма открывалась по умолчанию, назначьте её основной формой элемента в свойствах объекта.

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

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

Как доработать форму элемента через расширение

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

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

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

Способы доработки формы

Прямое изменение в конфигураторе

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

Расширение конфигурации

Рекомендуется для типовых решений на поддержке; ограничение — нельзя удалять заимствованные элементы

Автоматическая форма платформы

Подходит для простых справочников без особых требований; нет группировки и прикладной логики

Собственная форма вместо типовой

Полный контроль над поведением; требуется сопровождать при обновлениях самостоятельно

Типичные ошибки при работе с формой элемента

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

Вторая типичная проблема — добавление реквизитов формы программно в обработчике «ПриСозданииНаСервере» без необходимости. Каждое изменение состава реквизитов вызывает пересоздание формы и замедляет её открытие. Если поле нужно постоянно, добавьте его статически в конфигураторе.

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

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

Как проверить, что форма работает правильно

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

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

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

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

Создание и запись нового элемента
Норма

Объект записывается и открывается повторно с сохранёнными данными

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

Ошибка при записи или потеря введённых значений

Запись с пустыми обязательными полями
Норма

Понятное сообщение с указанием незаполненного поля

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

Отказ без пояснения или запись некорректных данных

Открытие под разными пользователями
Норма

Форма открывается у всех ролей, недоступные поля скрыты или заблокированы

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

Нарушение прав доступа при открытии

Скорость открытия
Норма

Форма открывается без заметной паузы

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

Задержка в несколько секунд из-за лишних серверных вызовов

Итог

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

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

Частые вопросы о форме элемента в 1С

Что делать, если у объекта нет формы элемента?

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

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

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

Чем форма элемента отличается от формы документа?

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

Почему форма элемента открывается медленно?

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

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

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

Можно ли запретить редактирование отдельных полей на форме?

Да. В конфигураторе установите элементу свойство «ТолькоПросмотр» для постоянного запрета либо управляйте свойством программно в обработчике «ПриСозданииНаСервере» — например, блокируйте поля в зависимости от роли пользователя или статуса документа.