Перейти к содержимому

Модуль «Веб-формы» в 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вывод формыосновной публичный компонент
Упрощённый режимбыстрая настройкапереход в расширенный необратим

Частые ошибки

Ожидают вернуться из расширенного режима в упрощённый. Миграция работает только в одну сторону.

Путают вопросы и поля. Вопросы видит посетитель, поля - служебные данные для обработки результата.

Забывают статус по умолчанию. Новые результаты оказываются без статуса, и рабочий процесс не запускается.

Права на статусы не настроены. Сотрудники видят либо всё, либо ничего.

Через формы решают задачи, требующие сложной логики. Модуль не предназначен для многошаговых сценариев и сложной валидации - там уместнее свой компонент с контроллером.

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

Упрощённый или расширенный режим?

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

Чем вопрос отличается от поля?

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

Как разграничить доступ к заявкам между отделами?

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

Когда лучше написать свою форму?

Когда нужны сложная валидация, многошаговый сценарий, обращение к внешней системе в момент отправки или нестандартный интерфейс. Свой компонент с контроллером даёт полный контроль над проверками и ответами, декларативные фильтры доступа и нормальную обработку ошибок. Модуль веб-форм выигрывает там, где форму должен заводить и менять не программист.

Связанные темы

Первоисточники