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