Модуль «Веб-формы» в 1С-Битрикс - вопросы, статусы, результаты
Модуль веб-форм закрывает типовую задачу: собрать данные от посетителя, сохранить их, уведомить сотрудников и дать обработать заявку. Всё это без программирования - но с несколькими понятиями, которые важно не перепутать.
Как это работает
Форма собирает результаты. Итог одного заполнения называется результатом или анкетой. Модуль хранит результаты в базе, рассылает уведомления, разграничивает доступ по правам групп и ведёт статистику заполнения.
Два режима редактирования. Упрощённый даёт быстрый минимум: вопросы и отправку на почту. Расширенный добавляет статусы, собственные поля формы, свой шаблон внешнего вида, права по статусам, несколько почтовых шаблонов и интеграцию с CRM. Переключение возможно только в одну сторону - из упрощённого в расширенный.
Вопрос и поле - разные сущности. Вопрос заполняет посетитель: это строка, список, дата, загрузка файла. У вопроса есть тип отображения, обязательность, сортировка и участие в фильтре. Поле - хранилище дополнительных данных о результате, которое заполняется уже после сохранения, например служебный комментарий сотрудника.
Статусы - это рабочий процесс обработки результатов и существуют только в расширенном режиме. У формы должен быть хотя бы один статус, ровно один помечается назначаемым по умолчанию. Права на статус выдаются по группам пользователей - так строится разграничение «кто какие заявки видит и может менять».
Примеры
1. Вывод формы на странице
$APPLICATION->IncludeComponent('bitrix:form.result.new', '', [ 'WEB_FORM_ID' => $formId, 'IGNORE_CUSTOM_TEMPLATE' => 'N', 'USE_EXTENDED_ERRORS' => 'Y', 'CACHE_TIME' => 3600,]);Для показа отправленных результатов и их редактирования есть отдельные компоненты списка и просмотра результата.
2. Что настраивают в форме
- Вопросы с типами ответов и обязательностью - это то, что видит посетитель.
- Дополнительные поля - служебные данные, заполняемые после отправки.
- Статусы и права по группам - кто видит и обрабатывает заявки.
- Почтовые шаблоны - какие уведомления и кому уходят.
- Права доступа к самой форме - кто может её заполнять и администрировать.
3. Когда формы не хватает
Модуль хорош для типовых сценариев: обратная связь, заявка, анкета, опрос. Если нужны сложная валидация, многошаговый сценарий, интеграция с внешней системой на лету или нестандартный интерфейс - разумнее сделать собственный компонент с контроллером: там у вас полный контроль над проверками, ответами и логикой.
Справочник
| Элемент | Назначение | Особенности |
|---|---|---|
| Результат (анкета) | одно заполнение формы | хранится в базе |
| Вопрос | то, что заполняет посетитель | типы ответа, обязательность, участие в фильтре |
| Поле | служебные данные о результате | заполняется после сохранения |
| Статус | этап обработки результата | только в расширенном режиме |
| Статус по умолчанию | назначается новым результатам | ровно один |
| Права по статусам | разграничение доступа | по группам пользователей |
| Почтовые шаблоны | уведомления | в расширенном режиме их может быть несколько |
bitrix:form.result.new | вывод формы | основной публичный компонент |
| Упрощённый режим | быстрая настройка | переход в расширенный необратим |
Частые ошибки
Ожидают вернуться из расширенного режима в упрощённый. Миграция работает только в одну сторону.
Путают вопросы и поля. Вопросы видит посетитель, поля - служебные данные для обработки результата.
Забывают статус по умолчанию. Новые результаты оказываются без статуса, и рабочий процесс не запускается.
Права на статусы не настроены. Сотрудники видят либо всё, либо ничего.
Через формы решают задачи, требующие сложной логики. Модуль не предназначен для многошаговых сценариев и сложной валидации - там уместнее свой компонент с контроллером.
Частые вопросы
Упрощённый или расширенный режим?
Упрощённый подходит, когда нужно просто собрать данные и отправить их на почту - настройка занимает минуты. Расширенный нужен, если результаты будут обрабатывать: он даёт статусы, права по группам, дополнительные поля и несколько почтовых шаблонов. Важно решить заранее: переключиться можно только из упрощённого в расширенный, обратного пути нет.
Чем вопрос отличается от поля?
Вопрос - это то, что заполняет посетитель на сайте: текст, список, дата, файл. Поле - хранилище служебных данных о результате, которое заполняют уже сотрудники после отправки, например комментарий или внутренний идентификатор. Путаница между ними приводит к тому, что служебные данные пытаются спрашивать у посетителя.
Как разграничить доступ к заявкам между отделами?
Через статусы и права на них. Статус описывает этап обработки, а права выдаются по группам пользователей: кто видит результаты в этом статусе, кто может их менять, кто переводить дальше. Это и есть штатный рабочий процесс модуля, но доступен он только в расширенном режиме.
Когда лучше написать свою форму?
Когда нужны сложная валидация, многошаговый сценарий, обращение к внешней системе в момент отправки или нестандартный интерфейс. Свой компонент с контроллером даёт полный контроль над проверками и ответами, декларативные фильтры доступа и нормальную обработку ошибок. Модуль веб-форм выигрывает там, где форму должен заводить и менять не программист.
Связанные темы
- Универсальные списки - структурированные данные без кода
- Безопасность - защита форм от подделки запросов
- Компоненты 2.0 - своя форма с контроллером
- Маркетинг и SEO - рассылки по адресам, собранным формой
- Бизнес-процессы - что запускать по заявке из формы
- Форма обратной связи: веб-форма, письма, свой обработчик - форма на практике
- Форма обратной связи - решения по сбору заявок
- Раздел Модули