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

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

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

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

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

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

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

Способ первый: компонент «Форма обратной связи» (main.feedback)

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

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

Если вы работаете с кодом шаблона напрямую, компонент подключается стандартным вызовом в нужном месте страницы. При этом важно не менять системные шаблоны компонента, а скопировать шаблон в шаблон сайта и править уже копию — иначе изменения будут перезаписаны при обновлении.

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

Настройка почтового шаблона

Письмо из формы отправляется по почтовому шаблону. Перейдите в административном разделе: Настройки → Настройки продукта → Почтовые и SMS события → Почтовые шаблоны. Найдите шаблон, привязанный к типу почтового события обратной связи, и проверьте поля «Кому», тему и тело письма. В теле доступны макросы с данными формы — имя, email и текст сообщения посетителя.

Убедитесь, что шаблон привязан к нужному сайту (если в системе настроено многосайтовое окружение) и что в поле «От кого» указан корректный адрес отправителя. Частая причина «неприходящих» писем — несуществующий или невалидный адрес отправителя, который отклоняет почтовый сервер.

Способ второй: модуль «Веб-формы»

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

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

Вывод формы на сайте выполняется компонентом «Заполнение веб-формы» (form.result.new). Разместите его на странице через визуальный редактор и в параметрах укажите символьный код созданной формы. После сохранения форма появится на странице, а результаты заполнения будут доступны в разделе Сервисы → Веб-формы → Результаты.

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

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

Подходит для простой формы «Имя — Email — Сообщение». Настраивается за минуты, но поля фиксированы, результаты не сохраняются в базе — только письмо.

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

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

Инфоблоки + кастомная форма

Вариант для разработчиков, когда нужна нестандартная логика: заявки как элементы инфоблока, статусы обработки, интеграции. Требует программирования.

Проверка отправки почты

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

Если письма не уходят или попадают в спам, настройте отправку через SMTP внешнего почтового сервиса. В современных версиях это делается в Настройки → Настройки продукта → Почтовые и SMS события → Почтовые события / Настройки SMTP, либо через модуль интеграции с почтой. Отправка через SMTP с корректными SPF- и DKIM-записями домена заметно повышает доставляемость по сравнению со штатной функцией mail() сервера.

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

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

Отправка тестового сообщения из формы
Норма

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

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

Письма нет ни во входящих, ни в спаме — проверяйте почтовый шаблон и работу почты сайта

Обязательные поля
Норма

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

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

Форма отправляется с пустыми полями — не настроена обязательность

Сохранение результатов (веб-формы)
Норма

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

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

Результатов нет — в настройках формы не включено сохранение

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

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

Дополнительно в настройках главного модуля можно подключить сервис reCAPTCHA, указав ключи сайта — это удобнее для пользователей, чем ввод символов с картинки. Также полезно ограничить частоту отправок с одного IP и следить за логами: поток одинаковых сообщений с коротким интервалом — признак автоматической рассылки.

Кастомизация: шаблон формы и свои поля

Внешний вид компонента main.feedback меняется через шаблон компонента. Скопируйте шаблон в папку шаблона сайта (например, /bitrix/templates/ваш_шаблон/components/bitrix/main.feedback/имя_шаблона/) и выберите его в параметрах компонента. В копии можно менять HTML-разметку, добавлять классы для стилизации, подключать маски ввода телефона.

Если стандартных трёх полей не хватает, а модуль веб-форм недоступен, поля можно добавить кастомизацией результата компонента или через собственный обработчик. Это уже задача уровня разработчика: потребуется обработка POST-данных, валидация и расширение почтового шаблона. Для большинства прикладных задач проще перейти на веб-формы, чем дорабатывать main.feedback кодом.

Типичные ошибки
01
Форма создана, но почтовый шаблон не привязан к сайту — письма не уходят, а администратор ищет проблему в компоненте
02
Правка системного шаблона компонента вместо копии в шаблоне сайта — изменения стираются при обновлении
03
Отключённая капча на публичной форме — ящик получателя завален спамом за несколько дней
04
Проверка только визуальной части без тестовой отправки — форма отображается, но письма не доходят из-за проблем с почтой сервера
05
Адрес получателя указан с опечаткой — заявки теряются без каких-либо ошибок на сайте

Частые проблемы и их диагностика

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

Вторая типичная ситуация — после нажатия кнопки страница перезагружается без сообщения об успехе. Обычно это конфликт JavaScript на странице или ошибки в кастомизированном шаблоне компонента. Откройте консоль браузера и проверьте наличие JS-ошибок; временно переключитесь на шаблон компонента по умолчанию, чтобы локализовать проблему.

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

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

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

Нужна простая форма из трёх полей, срочноИспользуйте компонент main.feedback через визуальный редактор
Нужны свои поля, сохранение заявок и статистикаСоздайте форму в модуле «Веб-формы» и выведите её компонентом form.result.new
Письма не приходят при любом способеПроверьте отправку почты в «Проверке системы» и настройте SMTP
Нужна нестандартная логика обработки заявокПривлекайте разработчика: инфоблоки, события и кастомные обработчики

Итог и рекомендации

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

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

Итог

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

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

Часто задаваемые вопросы

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

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

Почему письмо из формы попадает в спам?

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

Как добавить в форму поле «Телефон» с маской ввода?

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

Куда сохраняются заполненные веб-формы?

Результаты хранятся в базе данных и доступны в административном разделе: Сервисы → Веб-формы → Результаты. Там их можно фильтровать по форме и дате, просматривать, выгружать и менять статусы обработки, если статусы настроены в параметрах формы.

Форма перестала работать после обновления Битрикса. Что делать?

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

Можно ли отправлять заявки сразу в CRM Битрикс24?

Да, с помощью модуля интеграции с CRM: веб-формы сайта можно связать с лидогенерацией Битрикс24, и заполнения будут создавать лиды. Настройка выполняется в параметрах формы и на стороне портала Битрикс24, потребуется авторизация интеграции.