Как передать в результат формы Битрикс кастомное поле

Как передать в результат формы Битрикс кастомное поле

Бывают ситуации, когда в стандартную форму Битрикс требуется передать, например, название товара, на странице которого она находится.

Решение достаточно простое и стандартное. Для решения задачи требуется:

1. В админке Настройки—>Настройки модулей—>Веб-формы надо снять галку «Использовать упрощённый режим редактирования форм«, чтобы полям можно было задавать символьный код.

2. В настройках своей веб-формы создается «вопрос», например «Название товара», с символьным кодом ELEMENT_NAME, добавляется «ответ» — тип поля hidden

3. В вызов компонента веб-формы добавляется параметр, например так

'ELEMENT_NAME' => array(
  'VALUE' => $arResult['NAME'],
  'AUTOCOMPLETE' => 'Y'
)

4. В шаблоне вывода формы, где идет цикл по вопросам

foreach ($arResult["QUESTIONS"] as $FIELD_SID => $arQuestion)
  {

внутрь добавляется

if(isset($arParams[$FIELD_SID]) && $arParams[$FIELD_SID]['VALUE'] && $arParams[$FIELD_SID]['AUTOCOMPLETE'] == 'Y') {
  $arQuestion['HTML_CODE'] = str_replace('name=', 'value="'.$arParams[$FIELD_SID]['VALUE'].'" name=', $arQuestion['HTML_CODE']);
}

Все, в форме имеется скрытое поле с названием товара, которое передается в результаты форм. Профит 🙂