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