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

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

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

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

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

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

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

Из чего состоит форма объекта

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

Важно различать реквизит объекта и реквизит формы. Реквизит объекта хранится в базе данных и сохраняется при записи. Реквизит формы существует только в памяти, пока форма открыта, и нужен для промежуточных вычислений или служебных признаков — например, для флажка «показать скрытые позиции», который не должен сохраняться в базе.

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

Основные виды форм в 1С

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

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

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

Сравнение вариантов

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

Подходит для служебных справочников и быстрого прототипа. Ограничение: нельзя управлять порядком полей, группировкой и событиями.

Основная форма в конфигураторе

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

Настройка формы пользователем

Доступна в типовых конфигурациях через «Изменить форму» без редактирования конфигурации. Ограничение: можно менять только видимость и расположение существующих элементов.

Как открыть и посмотреть форму объекта

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

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

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

Порядок действий: найти форму объекта в конфигураторе
  1. 1
    Откройте конфигуратор и разверните дерево конфигурации до нужного объекта (справочник, документ).
  2. 2
    Раскройте ветку «Формы» внутри объекта — там перечислены все созданные формы.
  3. 3
    Откройте свойства объекта и проверьте, какая форма назначена основной для элемента, списка и выбора.
  4. 4
    Двойным щелчком откройте форму и изучите реквизиты, элементы и модуль.
  5. 5
    Запустите отладку, откройте объект в режиме предприятия и убедитесь, что открывается именно эта форма.

Как изменить форму без доработки конфигурации

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

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

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

Доработка формы в конфигураторе и через расширение

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

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

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

Типичные проблемы с формами и их диагностика

Чаще всего пользователи сталкиваются с ситуацией, когда «форма открывается не такая, как у коллеги». Причины: у пользователя сохранены собственные настройки формы, у него другая роль и скрыты часть элементов, либо для его подразделения включена функциональная опция, меняющая состав формы. Первый шаг диагностики — сбросить пользовательские настройки формы через «Ещё → Изменить форму → Сбросить настройки» (в ряде конфигураций — через «Установить стандартные настройки»).

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

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

Типичные ошибки
01
Доработка типовой формы в конфигураторе без расширения — при обновлении релиза изменения теряются или вызывают конфликт объединения.
02
Обращение к элементам формы в серверных обработчиках без директивы &НаКлиенте — код падает с ошибкой, так как на сервере элементы формы недоступны.
03
Выполнение запросов в обработчике «ПриИзменении» каждого поля без кэширования — форма начинает заметно тормозить при вводе данных.
04
Хранение служебных значений в реквизитах объекта вместо реквизитов формы — в базе копятся данные, которые не нужны для учёта.

Как проверить результат доработки формы

После изменения формы проверяйте не только визуальный результат, но и целостность данных. Минимальный цикл проверки: открыть существующий объект, создать новый, записать, провести (для документа), закрыть и открыть повторно. Если форма содержит условную видимость элементов — проверьте оба состояния условия.

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

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

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

Открытие формы существующего объекта
Норма

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

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

Ошибка «Поле не обнаружено» или пустые поля при заполненном объекте

Запись и повторное открытие
Норма

Введённые данные сохраняются и отображаются после повторного открытия

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

Данные нового поля пропадают — реквизит не связан с объектом

Работа под ограниченными правами
Норма

Пользователь с рабочей ролью открывает и сохраняет объект

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

Ошибка нарушения прав доступа при открытии или записи

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

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

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

Задержка в несколько секунд — проверьте запросы в обработчиках открытия

Частые вопросы о формах объектов 1С

Чем форма объекта отличается от формы списка?

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

Почему у коллеги форма выглядит иначе, чем у меня?

Чаще всего у вас сохранены разные пользовательские настройки формы — сбросьте их через «Ещё → Изменить форму». Также внешний вид зависит от прав доступа, назначенных ролей и включённых функциональных опций: часть элементов может быть скрыта платформой осознанно.

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

Если реквизит уже существует в объекте, но скрыт — да, через «Изменить форму» достаточно включить его видимость. Если нужно принципиально новое поле, в типовых конфигурациях используйте механизм «Дополнительные реквизиты и сведения»: он позволяет добавить поле без доработки конфигурации, и оно автоматически появится на форме в отдельной группе.

Что делать, если после обновления форма перестала открываться?

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

Что такое управляемая и обычная форма?

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

Где посмотреть код, который выполняется при открытии формы?

В конфигураторе откройте форму объекта и перейдите на закладку «Модуль» — обработчики «ПриСозданииНаСервере» и «ПриОткрытии» находятся там. Если модуля нет или он пуст, значит используется автоматическая форма либо логика вынесена в общий модуль или расширение — проверьте список подключённых расширений.

Итог

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

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