В битриксе в данный момент не предусмотрен встроенный импорт данных в результаты веб-форм, поэтому пришлось написать собственный скрипт, который будет загружать данные из xml в результаты веб-форм. Собственно загрузка прошла без сучка и задоринки с применением simplexml. Загружались данные со старого сайта, накопленные годами, поэтому хотелось чтобы на новом сайте даты каждой из записи сохранили свой хронологический порядок, Однако после загрузки было обнаружено, что даты создания записей в результатах веб-форм остались прежние, что совершенно не устраивало. Из интерфейса административной части битрикса обновить дату создания результата веб-формы не представлялось возможным.
Дата создания результата веб-форм битрикс хранятся, как выяснилось в таблице b_form_result в поле DATE_CREATE
Для обновления были использованы стандартные инструменты API битрикса:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//получаем ID результата веб-формы //-------------------------------------- //Тут код с помощью которого мы получаем id результата веб-формы //Получаем дату которую необходимо установить в поле DATE_CREATE //А теперь и сам код который обновляет поле DATE_CREATE у результата с $RESULT_ID //DB - Глобальный объект класса CDataBase, предназначен для работы с базой данных. //Инициализируем глобальную переменную для вставки в запрос $DB->PrepareFields("b_form_result"); //Создаем массив значений с названиями полей $arFields = array( "DATE_CREATE" => "'$dt'" ); //Начинаем транзакцию $DB->StartTransaction(); //Обновляем значение в базе $DB->Update("b_form_result", $arFields, "WHERE ID='$RESULT_ID'", $err_mess.__LINE__); //Завершаем транзакцию $DB->Commit(); |
Теперь даты сообщений со старого сайта стали отображаться в правильной хронологической последовательности.