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