По-умолчанию поле ответа типа 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/> в ответе на системный символ перевод строки.
Может немного не там, и немного неаккуратно, но всё работает и ошибок нет.