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

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

Редактор форм в 1С: назначение, устройство и работа с формами

Что такое редактор форм в 1С: где находится, как устроен, чем отличается обычная форма от управляемой и как безопасно изменить форму документа.

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

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

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

Где находится редактор форм и как его открыть

Редактор форм доступен только в конфигураторе, а не в пользовательском режиме «1С:Предприятие». Чтобы открыть его, запустите конфигуратор, откройте дерево конфигурации (меню «Конфигурация» → «Открыть конфигурацию»), найдите нужный объект — например, «Документы» → «РеализацияТоваровУслуг» — и раскройте ветку «Формы».

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

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

Из чего состоит окно редактора управляемой формы

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

Вкладка «Реквизиты» показывает данные формы — ссылку на основной объект (например, редактируемый документ) и дополнительные реквизиты, которые существуют только внутри формы: временные таблицы, флаги, итоговые суммы. Вкладка «Команды» содержит команды формы — действия, привязанные к кнопкам и пунктам меню. Вкладка «Модуль» открывает программный код формы на встроенном языке 1С.

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

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

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

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

КритерийОбычная формаУправляемая форма
Размещение элементовТочные координаты и размерыЛогическая структура, автораскладка
Исполнение кодаТолько на клиентеРазделение &НаКлиенте / &НаСервере
КлиентыТолстый клиентТонкий, веб-клиент, мобильный
АктуальностьУстаревшие конфигурацииВсе современные решения

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

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

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

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

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

Модуль формы: где живёт логика

Внешний вид — только половина формы. Вся логика сосредоточена в модуле формы: обработчики событий (ПриОткрытии, ПередЗаписью, ПриИзменении поля), процедуры команд, служебные функции. Модуль открывается вкладкой «Модуль» внизу редактора или клавишей F2 из дерева элементов.

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

bsl
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
	ОбновитьДоговоры(Объект.Контрагент);
КонецПроцедуры

&НаСервере
Процедура ОбновитьДоговоры(Контрагент)
	// запрос договоров выбранного контрагента
КонецПроцедуры

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

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

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

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

Как проверить результат после изменения формы

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

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

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

Отображение нового поля
Норма

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

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

Поле отсутствует, сбрасывается при записи или перекрывает другие элементы

Проверка заполнения
Норма

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

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

Документ записывается с пустыми критичными данными или сообщение не указывает на поле

Работа кнопок и команд
Норма

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

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

Ошибка «Процедура не обнаружена» или молчаливое отсутствие реакции

Узкое окно
Норма

Элементы перестраиваются, ничего не обрезано

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

Часть полей недоступна без горизонтальной прокрутки

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

Когда редактор форм не нужен: альтернативы

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

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

Маршрут решения

Как выбрать действие

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

Выбор инструмента по задаче экономит время и снижает риски: чем меньше изменений внесено в типовой код, тем дешевле сопровождение и обновление системы.

Итог

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

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

Частые вопросы

Почему добавленный реквизит не виден на форме?

Создание реквизита в объекте не выводит его на форму автоматически (кроме случая генерации формы конструктором). Откройте форму, перейдите на вкладку «Реквизиты» и перетащите нужный реквизит в дерево элементов. Также проверьте свойство «Видимость» элемента и функциональные опции, которые могут его скрывать.

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

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

Что такое расширение конфигурации и зачем оно для форм?

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

Ошибка «Процедура или функция с указанным именем не определена» на форме — что делать?

Ошибка означает, что команда или обработчик ссылается на процедуру, которой нет в модуле формы, — например, после копирования элементов из другой формы. Откройте модуль и проверьте, что процедура существует, имя совпадает точно, а директива контекста (&НаКлиенте или &НаСервере) соответствует месту вызова.

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

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

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

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