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

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

Как сделать форму обратной связи в 1С-Битрикс

Как создать форму обратной связи в 1С-Битрикс: компонент main.feedback, веб-формы, настройка почтовых шаблонов, защита от спама и проверка отправки писем.

Форма обратной связи — один из базовых элементов корпоративного сайта на 1С-Битрикс. В системе есть несколько штатных способов её реализации: простой компонент «main.feedback», модуль веб-форм с гибкой настройкой полей, а также интеграция с CRM. Выбор зависит от того, нужно ли просто отправлять письмо на почту менеджеру или собирать обращения в структурированную базу с результатами и статусами.

Самый быстрый путь — компонент «Форма обратной связи» (bitrix:main.feedback). Он доступен во всех редакциях, включая «Старт», выводит стандартный набор полей (имя, email, сообщение) и отправляет данные на почту через почтовый шаблон. Для большинства сайтов-визиток этого достаточно, и настройка занимает 15–20 минут.

Если требуется произвольный набор полей, сохранение результатов в административной части, выгрузка в CSV или разные права доступа к результатам — используется модуль «Веб-формы». Он входит не во все редакции, поэтому перед выбором подхода стоит проверить, какие модули установлены на вашем сайте.

Выбор подхода: компонент main.feedback или веб-формы

Перед началом работы определите, какие требования предъявляются к форме. Компонент main.feedback подходит, если нужно просто пересылать текст обращения на email: он не сохраняет результаты в базе данных и не даёт менять состав полей без доработки шаблона. Зато он работает «из коробки» и не требует отдельного модуля.

Модуль «Веб-формы» (Web Forms) позволяет создавать формы с произвольными полями — текстовыми, списками, файлами, датами. Каждая отправка фиксируется в разделе «Результаты», можно настроить несколько почтовых шаблонов, фильтры и статусы обращений. Модуль доступен не во всех редакциях продукта, это нужно проверить в административной части: Настройки → Настройки продукта → Модули.

Сравнение вариантов

Компонент main.feedback

Быстрое решение для простой формы «имя, email, сообщение». Не сохраняет результаты в базе, состав полей фиксирован.

Модуль Веб-формы

Произвольные поля, хранение результатов, выгрузка, несколько шаблонов писем. Требуется редакция с этим модулем и больше времени на настройку.

CRM-формы

Обращения сразу попадают в CRM как лиды. Подходит, если заявки обрабатывают менеджеры в Битрикс24 или CRM коробочной версии.

Создание формы через компонент main.feedback

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

Дважды щёлкните по компоненту, чтобы открыть параметры. Ключевые настройки: «Использовать CAPTCHA» (рекомендуется включить для публичных форм), «Показывать сообщение об успешной отправке», а также email-адрес получателя — по умолчанию письма уходят на адрес, указанный в настройках сайта, но его можно переопределить в параметрах компонента.

После сохранения проверьте отображение формы на странице. Если вёрстка «ломается» или стили не совпадают с дизайном сайта, потребуется кастомизировать шаблон компонента: скопируйте его в папку шаблона сайта (local/templates/ваш_шаблон/components/bitrix/main.feedback/) и правьте там, не трогая системные файлы.

Порядок действий
  1. 1
    Откройте страницу в режиме правки через визуальный редактор
  2. 2
    Перетащите компонент «Форма обратной связи» (main.feedback) на страницу
  3. 3
    В параметрах включите CAPTCHA и укажите email получателя
  4. 4
    Сохраните страницу и отправьте тестовое сообщение
  5. 5
    Проверьте, что письмо пришло на почту и содержит все поля

Настройка формы через модуль «Веб-формы»

Перейдите в административную часть: Сервисы → Веб-формы → Список форм → Добавить форму. Задайте название (например, «Обратная связь»), символьный код (латиницей, например FEEDBACK) и привязку к сайту. На вкладке «Вопросы» создайте поля формы: имя, телефон, email, текст обращения. Для каждого вопроса укажите тип поля — текст, textarea, email, выпадающий список и так далее.

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

Чтобы вывести форму на сайте, разместите на странице компонент «Заполнение веб-формы» (form.result.new) и в его параметрах выберите созданную форму по символьному коду или ID. В параметрах же задаётся страница успешной отправки и текст сообщения об успехе.

Почтовые шаблоны и отправка писем

Для веб-форм письма настраиваются в карточке формы на вкладке «Почтовые шаблоны». Создайте шаблон, укажите получателя и составьте тело письма с макросами — подстановками вида #SENDER#, #FORM_NAME# или кодами конкретных полей. Макросы доступных полей перечислены прямо в интерфейсе редактирования шаблона.

Для компонента main.feedback используется почтовый шаблон типа FEEDBACK_FORM (Настройки → Почтовые события → Почтовые шаблоны). Если письма не приходят, первым делом проверьте этот шаблон: активен ли он, привязан ли к нужному сайту, корректен ли адрес получателя.

Отдельная частая проблема — письма уходят с сайта, но не доходят до получателя или попадают в спам. Это связано не с формой, а с почтовой инфраструктурой: проверьте настройки отправки почты (модуль «Почта»/SMTP), корректность адреса отправителя и лог почтовых событий в разделе «Проверка почты» или через журнал событий. Для надёжной доставки рекомендуется настроить отправку через SMTP реального почтового ящика, а не через стандартную функцию mail() сервера.

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

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

Отправка формы на сайте
Норма

После отправки появляется сообщение об успехе, ошибок в консоли нет

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

Ошибка доступа, белый экран или бесконечная загрузка

Письмо получателю
Норма

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

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

Письма нет, оно в спаме или поля пустые

Результаты веб-формы
Норма

В разделе «Результаты» появляется новая запись с данными

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

Запись не создаётся — проверяйте права доступа к форме

Защита формы от спама

Публичная форма без защиты быстро становится целью спам-ботов. Минимум — включите CAPTCHA в параметрах компонента. В актуальных версиях Битрикс поддерживается reCAPTCHA: ключи задаются в настройках модуля «Веб-формы» или в настройках главного модуля, в зависимости от используемого компонента.

Дополнительные меры: скрытое поле-ловушка (honeypot), которое люди не заполняют, а боты — да; ограничение частоты отправок с одного IP; обязательная валидация email на стороне сервера. Не полагайтесь только на проверку полей через JavaScript — боты отправляют запросы напрямую, минуя браузерную валидацию.

Частые ошибки и их устранение

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

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

Типичные ошибки
01
Правка системных файлов компонента вместо копирования шаблона — изменения стираются обновлением
02
Не выдано право «Заполнение формы» группе неавторизованных — посетители не могут отправить обращение
03
Отключённая CAPTCHA на публичной форме — поток спама на почту менеджеров
04
Проверка только визуальной части без тестовой отправки — ошибки почтового шаблона обнаруживаются слишком поздно

Проверка работы и передача в эксплуатацию

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

Проверьте форму с мобильного устройства и в разных браузерах — поля не должны выходить за границы экрана, кнопка отправки должна быть доступна без горизонтальной прокрутки. Если форма собирает персональные данные, добавьте обязательное согласие на обработку: в веб-формах это отдельное поле типа «флажок» с обязательным заполнением.

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

Удобно настроить в почтовом шаблоне тему письма с пометкой сайта и типа формы, например «[Сайт] Обращение с формы обратной связи». Это упрощает фильтрацию писем в почтовом ящике и снижает риск, что заявка потеряется среди другой почты.
ПЗ
Практическое замечание
Итог

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

Для простой формы используйте компонент main.feedback, для форм с хранением результатов — модуль «Веб-формы». Обязательно настройте почтовый шаблон, включите CAPTCHA, проверьте права доступа и выполните тестовую отправку до передачи формы пользователям.

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

Форма отправляется, но письмо не приходит. Что проверить в первую очередь?

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

Можно ли добавить свои поля в компонент main.feedback?

Штатно состав полей фиксирован. Можно кастомизировать шаблон компонента и добавить поля, но их обработку придётся дописывать вручную. Если нужен произвольный набор полей без программирования, правильнее использовать модуль «Веб-формы».

Почему неавторизованные посетители не могут отправить веб-форму?

В настройках формы на вкладке «Доступ» группе «Все пользователи (в том числе неавторизованные)» не выдано право «Заполнение формы». Установите его и сохраните — форма сразу станет доступна посетителям без авторизации.

Как сохранять обращения в базе, а не только на почту?

Используйте модуль «Веб-формы»: каждая отправка автоматически сохраняется в разделе «Результаты», откуда данные можно просматривать, фильтровать и выгружать. Компонент main.feedback результаты не сохраняет — только отправляет письмо.

Нужно ли согласие на обработку персональных данных в форме?

Да, если форма собирает имя, телефон или email. Добавьте обязательный флажок согласия со ссылкой на политику конфиденциальности. В веб-формах это поле типа «флажок» с признаком обязательности; для main.feedback потребуется доработка шаблона.

Форма работает на десктопе, но «ломается» на телефоне. В чём причина?

Обычно дело в стилях шаблона сайта: фиксированная ширина полей или отсутствие адаптивной вёрстки. Проверьте CSS шаблона компонента формы и задайте полям относительную ширину (например, 100% контейнера) вместо фиксированных значений в пикселях.