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