1С: Битрикс — перевод строки в поле ответа

По-умолчанию поле ответа типа textarea в веб-формах 1С: Битрикс содержит обычный текст. После отправки ответа из поля вырезаются символы перевода строки. А они нужны. И при показе результатов на сайте и при редактировании ответов.

Вот как решил эту ситуацию я в ситуации с редактированием ответов в фронт-энде.

Для начала находим компонент который  у нас отвечает за редактирование и написание ответов.

У меня он находится в bitrix\components\demo\form.result.edit\

Шаблон нам не нужен, мы работаем только с данными, поэтому открываем файл component.php.

Ищем блок  get/post processing.

В нём после строки
[sourcecode language=’php’]
// check errors
$arResult[«FORM_ERRORS»] = CForm::Check($arParams[«WEB_FORM_ID»],
$arResult[«arrVALUES»], $arParams[«RESULT_ID»], «Y»,
$arParams[‘USE_EXTENDED_ERRORS’]);
[/sourcecode]

Я добавляю свою для замены символа перевода строки (его создаёт нажатие клавиши Enter в поле ответа) на <br/>
[sourcecode language=’php’]
$arResult[«arrVALUES»] = str_replace(«\n», «
«,$arResult[«arrVALUES»]);
[/sourcecode]

Затем я ищу блок output.

Где после строк
[sourcecode language=’php’]
case «text»:
$value = CForm::GetTextAreaValue(
«ADDITIONAL_».$arResult[«arQuestions»][$FIELD_SID][«ID»],
array(), $arResult[«arrVALUES»]);
[/sourcecode]

Мы добавляем строку
[sourcecode language=’php’]
$value = str_replace(«
«, «\n», $value);
[/sourcecode]

с помощью которой меняем <br/> в ответе на системный символ перевод строки.

Может немного не там, и немного неаккуратно, но всё работает и ошибок нет.