SpectreZ
@SpectreZ

Почему автоматически не создается событие при заполнении веб-формы Bitrix?

Добрый день.

Столкнулся с проблемой при настройке стандартных веб-форм Битрикс. После заполнения формы, её результат сохраняется, однако почтовое событие не создается. На вкладке "Дополнительно" в настройках формы указан почтовый шаблон, рядом с ним отмечена галочка. Почтовый шаблон имеет тип почтового события FORM_FILLING_FORM_VACANCIES.
Насколько я понимаю, при заполнении формы в таблице b_event должна создаваться запись FORM_FILLING_..., но этого не происходит. Если вызвать CEvent::Send() вручную через командную строку PHP, то запись создается.

Для выявления причины проблемы я предпринял следующие действия - вызывал функцию CFormResult::Mail(7692), где 7692- ID результата проблемной формы. При попытке вызова этой функции в лог добавляется ошибка "Ошибка! Веб-форма не найдена".

Привожу лог, в котором сначала указан массив результата формы, а ниже - лог функции CFormResult::Mail(). Удивительно то, что в массиве результата формы указан FORM_ID, а функция Mail не может найти форму.

Host: 43464.test
Date: 2021-07-26 11:54:29
Module: 
array (
  'ID' => '7692',
  'TIMESTAMP_X' => '26.07.2021 11:54:29',
  'DATE_CREATE' => '26.07.2021 11:54:29',
  'STATUS_ID' => '17',
  'FORM_ID' => '19',
  'USER_ID' => '20549',
  'USER_AUTH' => 'Y',
  'STAT_GUEST_ID' => '0',
  'STAT_SESSION_ID' => '0',
  'SENT_TO_CRM' => 'N',
  'STATUS_TITLE' => 'DEFAULT',
  'STATUS_DESCRIPTION' => '',
  'STATUS_DEFAULT_VALUE' => 'Y',
  'STATUS_CSS' => 'statusgreen',
  'STATUS_HANDLER_IN' => '',
  'STATUS_HANDLER_OUT' => '',
)
    include < CAllForm::ExecHandlerAfterChangeStatus < CAllFormResult::Add < include < CBitrixComponent::__includeComponent
	V:\poldoma.test\bitrix\modules\form\classes\general\form_callform.php:246
	V:\poldoma.test\bitrix\modules\form\classes\general\form_callformresult.php:721
	V:\poldoma.test\bitrix\components\bitrix\form.result.new\component.php:202
	V:\poldoma.test\bitrix\modules\main\classes\general\component.php:605
	V:\poldoma.test\bitrix\modules\main\classes\general\component.php:680
----------
Host: 43464.test
Date: 2021-07-26 11:54:29
Module: 
Ошибка! Веб-форма не найдена<br>
    include < CAllForm::ExecHandlerAfterChangeStatus < CAllFormResult::Add < include < CBitrixComponent::__includeComponent
	V:\poldoma.test\bitrix\modules\form\classes\general\form_callform.php:246
	V:\poldoma.test\bitrix\modules\form\classes\general\form_callformresult.php:721
	V:\poldoma.test\bitrix\components\bitrix\form.result.new\component.php:202
	V:\poldoma.test\bitrix\modules\main\classes\general\component.php:605
	V:\poldoma.test\bitrix\modules\main\classes\general\component.php:680
----------


Ситуация очень похожа на ту, что обсуждалась в этой теме, однако там конкретного ответа не нашлось, кроме отсутствия галочек в настройках (которые у меня присутствуют).
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
@tgarl
Результат заполнения вебформы у вас создается, верно?
У вас сейчас стоит расширенный режим вебформы, верно?

Проверьте доступ у этой вебформы, кто имеет право устанавливать статус (у вас как я вижу ID вебформы 'FORM_ID' => '19' ), тогда статус можно посмотреть на странице
/bitrix/admin/form_status_list.php?lang=ru&WEB_FORM_ID=19

если нет статуса, значит вы его не завели(при расширенном варианте его заводить нужно вручную самому)
Если статус есть проверьте кто и что имеет право делать, иногда бывает либо забывают настроить после создания, либо переключая упрощенный режим и расширенный(туда-сюда), эта часть может слетать, пересохраните.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы