コード例 #1
0
 function AddResultAnswer($arFields)
 {
     return CFormResult::AddAnswer($arFields);
 }
コード例 #2
0
	/**
	 * <p>Для указанного <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a> обновляет значения <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответа</a> на <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> или обновляет значение <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>.</p>
	 *
	 *
	 *
	 *
	 * @param int $result_id  ID <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#result">результата</a>.
	 *
	 *
	 *
	 * @param string $field_sid  Символьный идентификатор <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопроса</a> или <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>.
	 *
	 *
	 *
	 * @param mixed $value = false Значение, которое необходимо сохранить. В зависимости от типа
	 * обновляемого поля, данный параметр имеет различный формат. <ul>
	 * <li>При обновлении значения <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>, в данном параметре
	 * достаточно указать новое значение обновляемого <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a>. </li> <li>При обновлении
	 * значений <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответов</a> на <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>, формат данного
	 * параметра следующий: <pre>array ( <i>ID ответа 1</i> =&gt; <i>значение ответа
	 * 1</i>, <i>ID ответа 2</i> =&gt; <i>значение ответа 2</i>, ... )</pre>Если <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответ</a> принадлежит к одним из
	 * следующих типов: <ul> <li> <b>radio</b> - переключатель одиночного выбора
	 * (radio-кнопка); </li> <li> <b>checkbox</b> - флаг множественного выбора (checkbox); </li>
	 * <li> <b>dropdown</b> - элемент выпадающего списка одиночного выбора; </li> <li>
	 * <b>multiselect</b> - элемент списка множественного выбора, </li> </ul>то в
	 * качестве "<i>значения ответа</i>" достаточно указать "" (пустое
	 * значение). <br><br>Если <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответ</a>
	 * имеет один из следующих типов: <ul> <li> <b>text</b> - однострочное
	 * текстовое поле; </li> <li> <b>textarea</b> - многострочное текстовое поле; </li>
	 * <li> <b>date</b> - поле для ввода даты; </li> <li> <b>password</b> - поле для ввода
	 * пароля, </li> </ul>то в качестве "<i>значения ответа</i>" необходимо
	 * указать значение, которое могло бы быть введено с клавиатуры при
	 * ответе на данный <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a>.
	 * <br><br>Если <a href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответ</a> имеет один
	 * из следующих типов: <ul> <li> <b>image</b> - поле для загрузки изображения;
	 * </li> <li> <b>file</b> - поле для загрузки произвольного файла. </li> </ul>то в
	 * качестве "<i>значения ответа</i>" необходимо указать массив,
	 * описывающий файл и имеющий следующий ключи: <ul> <li> <b>name</b> - имя
	 * файла; </li> <li> <b>size</b> - размер файла; </li> <li> <b>tmp_name</b> - временный путь
	 * на сервере; </li> <li> <b>type</b> - тип загружаемого файла. </li> </ul>Такой
	 * массив можно получить с помощью функции <a
	 * href="http://dev.1c-bitrix.ru/api_help/main/reference/cfile/makefilearray.php">CFile::MakeFileArray</a>. </li>
	 * </ul>Параметр <i>value</i> необязательный. По умолчанию - false (значение <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#field">поля</a> или значение <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#answer">ответа</a> на <a
	 * href="http://dev.1c-bitrix.ru/api_help/form/terms.php#question">вопрос</a> будут просто
	 * удалены).
	 *
	 *
	 *
	 * @return mixed 
	 *
	 *
	 * <h4>Example</h4> 
	 * <pre>
	 * $RESULT_ID = 186;
	 * 
	 * //<*************************************************************
	 *             Обновление значений ответов на вопросы
	 * *************************************************************>//
	 * 
	 * // обновим ответ на вопрос "Фамилия, имя, отчество"
	 * $arVALUE = array();
	 * $FIELD_SID = "VS_NAME"; // символьный идентификатор вопроса
	 * $ANSWER_ID = 586; // ID поля ответа
	 * $arVALUE[$ANSWER_ID] = "Иванов Иван";
	 * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE);
	 * 
	 * // обновим ответ на вопрос "Дата рождения"
	 * $arVALUE = array();
	 * $FIELD_SID = "VS_BIRTHDAY"; // символьный идентификатор вопроса
	 * $ANSWER_ID = 587; // ID поля ответа
	 * $arVALUE[$ANSWER_ID] = "18.06.1975";
	 * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE);
	 * 
	 * // обновим ответ на вопрос "Какие области знаний вас интересуют?"
	 * $arVALUE = array();
	 * $FIELD_SID = "VS_INTEREST"; // символьный идентификатор вопроса
	 * $arVALUE[612] = ""; // ID поля ответа "математика"
	 * $arVALUE[613] = ""; // ID поля ответа "физика"
	 * $arVALUE[614] = ""; // ID поля ответа "история"
	 * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE);
	 * 
	 * // обновим ответ на вопрос "Фотография"
	 * $arVALUE = array();
	 * $FIELD_SID = "VS_PHOTO"; // символьный идентификатор вопроса
	 * $ANSWER_ID = 607; // ID поля ответа
	 * $path = $_SERVER["DOCUMENT_ROOT"]."/images/news.gif"; // путь к файлу
	 * $arVALUE[$ANSWER_ID] = CFile::MakeFileArray($path);
	 * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE);
	 * 
	 * // обновим ответ на вопрос "Резюме"
	 * $arVALUE = array();
	 * $FIELD_SID = "VS_RESUME"; // символьный идентификатор вопроса
	 * $ANSWER_ID = 610; // ID поля ответа
	 * $path = $_SERVER["DOCUMENT_ROOT"]."/docs/alawarauthorarea.doc"; // путь к файлу
	 * $arVALUE[$ANSWER_ID] = CFile::MakeFileArray($path);
	 * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $arVALUE);
	 * 
	 * //<*************************************************************
	 *                 Обновление значений полей
	 * *************************************************************>//
	 * 
	 * // обновим значение поля "Рассчитанная стоимость"
	 * $FIELD_SID = "VS_PRICE"; // символьный идентификатор вопроса
	 * $VALUE = "155";
	 * <b>CFormResult::SetField</b>($RESULT_ID, $FIELD_SID, $VALUE);
	 * ?&gt;
	 * </pre>
	 *
	 *
	 *
	 * <h4>See Also</h4> 
	 * <ul> <li> <a href="http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/update.php">CFormResult::Update</a> </li>
	 * <li><a href="http://dev.1c-bitrix.ru/api_help/main/reference/cfile/makefilearray.php">CFile::MakeFileArray</a></li>
	 * </ul><a name="examples"></a>
	 *
	 *
	 * @static
	 * @link http://dev.1c-bitrix.ru/api_help/form/classes/cformresult/setfield.php
	 * @author Bitrix
	 */
	public static function SetField($RESULT_ID, $FIELD_SID, $VALUE=false)
	{
		global $DB, $strError;
		$err_mess = (CAllFormResult::err_mess())."<br>Function: SetField<br>Line: ";
		$RESULT_ID = intval($RESULT_ID);
		if (intval($RESULT_ID)>0)
		{
			$strSql = "
				SELECT
					FORM_ID
				FROM
					b_form_result
				WHERE
					ID = $RESULT_ID
				";
			$z = $DB->Query($strSql, false, $err_mess.__LINE__);
			$zr = $z->Fetch();
			$WEB_FORM_ID = $zr["FORM_ID"];
			if (intval($WEB_FORM_ID)>0)
			{
				$strSql = "
					SELECT
						ID,
						FIELD_TYPE,
						ADDITIONAL
					FROM
						b_form_field
					WHERE
						FORM_ID = $WEB_FORM_ID
					and SID = '".$DB->ForSql($FIELD_SID,50)."'
					";
				$q = $DB->Query($strSql, false, $err_mess.__LINE__);
				if ($arField = $q->Fetch())
				{
					$FIELD_ID = $arField["ID"];
					$IS_FIELD = ($arField["ADDITIONAL"]=="Y") ? true : false;

					if ($IS_FIELD)
					{
						$strSql = "
							DELETE FROM
								b_form_result_answer
							WHERE
								RESULT_ID = $RESULT_ID
							and FIELD_ID = $FIELD_ID
							";
						//echo "<pre>".$strSql."</pre>";
						$DB->Query($strSql, false, $err_mess.__LINE__);

						if (strlen($VALUE)>0)
						{

							$FIELD_TYPE = $arField["FIELD_TYPE"];
							switch ($FIELD_TYPE) :

								case "text":
								case "integer":

									$arFields = array(
										"RESULT_ID"			=> $RESULT_ID,
										"FORM_ID"			=> $WEB_FORM_ID,
										"FIELD_ID"			=> $FIELD_ID,
										"USER_TEXT"			=> $VALUE,
										"USER_TEXT_SEARCH"	=> ToUpper($VALUE)
										);
									CFormResult::AddAnswer($arFields);
								break;

								case "date":

									if (CheckDateTime($VALUE))
									{
										$arFields = array(
											"RESULT_ID"			=> $RESULT_ID,
											"FORM_ID"			=> $WEB_FORM_ID,
											"FIELD_ID"			=> $FIELD_ID,
											"USER_DATE"			=> $VALUE,
											"USER_TEXT"			=> $VALUE,
											"USER_TEXT_SEARCH"	=> ToUpper($VALUE)
											);
										CFormResult::AddAnswer($arFields);
									}
								break;

							endswitch;
						}
					}
					else
					{
						$strSql = "
							SELECT
								USER_FILE_ID
							FROM
								b_form_result_answer
							WHERE
								RESULT_ID = $RESULT_ID
							and FIELD_ID = $FIELD_ID
							and USER_FILE_ID>0
							";
						$rsFiles = $DB->Query($strSql, false, $err_mess.__LINE__);
						while ($arFile = $rsFiles->Fetch()) CFile::Delete($arFile["USER_FILE_ID"]);

						$strSql = "
							DELETE FROM
								b_form_result_answer
							WHERE
								RESULT_ID = $RESULT_ID
							and FIELD_ID = $FIELD_ID
							";
						$DB->Query($strSql, false, $err_mess.__LINE__);

						if (is_array($VALUE) && count($VALUE)>0)
						{
							$arrANSWER_TEXT = array();
							$arrANSWER_VALUE = array();
							$arrUSER_TEXT = array();
							foreach ($VALUE as $ANSWER_ID => $val)
							{
								$rsAnswer = CFormAnswer::GetByID($ANSWER_ID);
								if ($arAnswer = $rsAnswer->Fetch())
								{
									switch ($arAnswer["FIELD_TYPE"]) :

										case "radio":
										case "dropdown":
										case "checkbox":
										case "multiselect":

											$arFields = array(
												"RESULT_ID"				=> $RESULT_ID,
												"FORM_ID"				=> $WEB_FORM_ID,
												"FIELD_ID"				=> $FIELD_ID,
												"ANSWER_ID"				=> $ANSWER_ID,
												"ANSWER_TEXT"			=> trim($arAnswer["MESSAGE"]),
												"ANSWER_VALUE"			=> $arAnswer["VALUE"],
											);
											CFormResult::AddAnswer($arFields);
											$arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
											$arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);

										break;

										case "text":
										case "textarea":
										case "password":
										case "email":
										case "url":
										case "hidden":

											$arFields = array(
												"RESULT_ID"				=> $RESULT_ID,
												"FORM_ID"				=> $WEB_FORM_ID,
												"FIELD_ID"				=> $FIELD_ID,
												"ANSWER_ID"				=> $ANSWER_ID,
												"ANSWER_TEXT"			=> trim($arAnswer["MESSAGE"]),
												"ANSWER_VALUE"			=> $arAnswer["VALUE"],
												"USER_TEXT"				=> $val,
											);
											CFormResult::AddAnswer($arFields);
											$arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
											$arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
											$arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]);

										break;

										case "date":

											if (CheckDateTime($val))
											{
												$arFields = array(
													"RESULT_ID"				=> $RESULT_ID,
													"FORM_ID"				=> $WEB_FORM_ID,
													"FIELD_ID"				=> $FIELD_ID,
													"ANSWER_ID"				=> $ANSWER_ID,
													"ANSWER_TEXT"			=> trim($arAnswer["MESSAGE"]),
													"ANSWER_VALUE"			=> $arAnswer["VALUE"],
													"USER_TEXT"				=> $val,
													"USER_DATE"				=> $val
												);
												CFormResult::AddAnswer($arFields);
												$arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
												$arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
												$arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]);
											}

										break;

										case "image":

											$arIMAGE = $val;
											if (is_array($arIMAGE) && count($arIMAGE)>0)
											{
												$arIMAGE["MODULE_ID"] = "form";
												if (strlen(CFile::CheckImageFile($arIMAGE))<=0)
												{
													if (!array_key_exists("MODULE_ID", $arIMAGE) || strlen($arIMAGE["MODULE_ID"]) <= 0)
														$arIMAGE["MODULE_ID"] = "form";

													$fid = CFile::SaveFile($arIMAGE, "form");
													if (intval($fid)>0)
													{
														$arFields = array(
															"RESULT_ID"				=> $RESULT_ID,
															"FORM_ID"				=> $WEB_FORM_ID,
															"FIELD_ID"				=> $FIELD_ID,
															"ANSWER_ID"				=> $ANSWER_ID,
															"ANSWER_TEXT"			=> trim($arAnswer["MESSAGE"]),
															"ANSWER_VALUE"			=> $arAnswer["VALUE"],
															"USER_FILE_ID"			=> $fid,
															"USER_FILE_IS_IMAGE"	=> "Y",
															"USER_FILE_NAME"		=> $arIMAGE["name"],
															"USER_FILE_SIZE"		=> $arIMAGE["size"],
															"USER_TEXT"				=> $arIMAGE["name"]
															);
														CFormResult::AddAnswer($arFields);
														$arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
														$arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
														$arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]);
													}
												}
											}

										break;

										case "file":

											$arFILE = $val;
											if (is_array($arFILE) && count($arFILE)>0)
											{
												$arFILE["MODULE_ID"] = "form";
												$original_name = $arFILE["name"];
												$max_size = COption::GetOptionString("form", "MAX_FILESIZE");
												$upload_dir = COption::GetOptionString("form", "NOT_IMAGE_UPLOAD_DIR");
												$fid = CFile::SaveFile($arFILE, $upload_dir, $max_size);
												if (intval($fid)>0)
												{
													$arFields = array(
														"RESULT_ID"				=> $RESULT_ID,
														"FORM_ID"				=> $WEB_FORM_ID,
														"FIELD_ID"				=> $FIELD_ID,
														"ANSWER_ID"				=> $ANSWER_ID,
														"ANSWER_TEXT"			=> trim($arAnswer["MESSAGE"]),
														"ANSWER_VALUE"			=> $arAnswer["VALUE"],
														"USER_FILE_ID"			=> $fid,
														"USER_FILE_IS_IMAGE"	=> "N",
														"USER_FILE_NAME"		=> $original_name,
														"USER_FILE_HASH"		=> md5(uniqid(mt_rand(), true).time()),
														"USER_FILE_SIZE"		=> $arFILE["size"],
														"USER_FILE_SUFFIX"		=> $suffix,
														"USER_TEXT"				=> $original_name,
														);
													CFormResult::AddAnswer($arFields);
													$arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
													$arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
													$arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]);
												}
											}

										break;

									endswitch;
								}
							}
							// update search fields
							$arrANSWER_TEXT_upd = $arrANSWER_TEXT[$FIELD_ID];
							$arrANSWER_VALUE_upd = $arrANSWER_VALUE[$FIELD_ID];
							$arrUSER_TEXT_upd = $arrUSER_TEXT[$FIELD_ID];
							TrimArr($arrANSWER_TEXT_upd);
							TrimArr($arrANSWER_VALUE_upd);
							TrimArr($arrUSER_TEXT_upd);
							if (is_array($arrANSWER_TEXT_upd)) $vl_ANSWER_TEXT = trim(implode(" ",$arrANSWER_TEXT_upd));
							if (is_array($arrANSWER_VALUE_upd)) $vl_ANSWER_VALUE = trim(implode(" ",$arrANSWER_VALUE_upd));
							if (is_array($arrUSER_TEXT_upd)) $vl_USER_TEXT = trim(implode(" ",$arrUSER_TEXT_upd));
							if (strlen($vl_ANSWER_TEXT)<=0) $vl_ANSWER_TEXT = false;
							if (strlen($vl_ANSWER_VALUE)<=0) $vl_ANSWER_VALUE = false;
							if (strlen($vl_USER_TEXT)<=0) $vl_USER_TEXT = false;
							$arFields = array(
								"ANSWER_TEXT_SEARCH"	=> $vl_ANSWER_TEXT,
								"ANSWER_VALUE_SEARCH"	=> $vl_ANSWER_VALUE,
								"USER_TEXT_SEARCH"		=> $vl_USER_TEXT
								);
							CFormResult::UpdateField($arFields, $RESULT_ID, $FIELD_ID);
						}
					}
					return true;
				}
			}
		}
		return false;
	}
コード例 #3
0
 function SetField($RESULT_ID, $FIELD_SID, $VALUE = false)
 {
     global $DB, $strError;
     $err_mess = CAllFormResult::err_mess() . "<br>Function: SetField<br>Line: ";
     $RESULT_ID = intval($RESULT_ID);
     if (intval($RESULT_ID) > 0) {
         // получим ID веб-формы
         $strSql = "\r\n\t\t\t\tSELECT\r\n\t\t\t\t\tFORM_ID\r\n\t\t\t\tFROM\r\n\t\t\t\t\tb_form_result\r\n\t\t\t\tWHERE\r\n\t\t\t\t\tID = {$RESULT_ID}\r\n\t\t\t\t";
         $z = $DB->Query($strSql, false, $err_mess . __LINE__);
         $zr = $z->Fetch();
         $WEB_FORM_ID = $zr["FORM_ID"];
         if (intval($WEB_FORM_ID) > 0) {
             // получим данные по вопросу/полю
             $strSql = "\r\n\t\t\t\t\tSELECT\r\n\t\t\t\t\t\tID,\r\n\t\t\t\t\t\tFIELD_TYPE,\r\n\t\t\t\t\t\tADDITIONAL\r\n\t\t\t\t\tFROM\r\n\t\t\t\t\t\tb_form_field\r\n\t\t\t\t\tWHERE\r\n\t\t\t\t\t\tFORM_ID = {$WEB_FORM_ID}\r\n\t\t\t\t\tand SID = '" . $DB->ForSql($FIELD_SID, 50) . "'\r\n\t\t\t\t\t";
             $q = $DB->Query($strSql, false, $err_mess . __LINE__);
             if ($arField = $q->Fetch()) {
                 $FIELD_ID = $arField["ID"];
                 $IS_FIELD = $arField["ADDITIONAL"] == "Y" ? true : false;
                 // если это поле веб-формы то
                 if ($IS_FIELD) {
                     // удаляем значения по данному полю у данного результата
                     $strSql = "\r\n\t\t\t\t\t\t\tDELETE FROM\r\n\t\t\t\t\t\t\t\tb_form_result_answer\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tRESULT_ID = {$RESULT_ID}\r\n\t\t\t\t\t\t\tand FIELD_ID = {$FIELD_ID}\r\n\t\t\t\t\t\t\t";
                     //echo "<pre>".$strSql."</pre>";
                     $DB->Query($strSql, false, $err_mess . __LINE__);
                     if (strlen($VALUE) > 0) {
                         $FIELD_TYPE = $arField["FIELD_TYPE"];
                         switch ($FIELD_TYPE) {
                             case "text":
                             case "integer":
                                 $arFields = array("RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "USER_TEXT" => $VALUE, "USER_TEXT_SEARCH" => ToUpper($VALUE));
                                 CFormResult::AddAnswer($arFields);
                                 break;
                             case "date":
                                 if (CheckDateTime($VALUE)) {
                                     $arFields = array("RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "USER_DATE" => $VALUE, "USER_TEXT" => $VALUE, "USER_TEXT_SEARCH" => ToUpper($VALUE));
                                     CFormResult::AddAnswer($arFields);
                                 }
                                 break;
                         }
                     }
                 } else {
                     // выберем все файлы
                     $strSql = "\r\n\t\t\t\t\t\t\tSELECT\r\n\t\t\t\t\t\t\t\tUSER_FILE_ID\r\n\t\t\t\t\t\t\tFROM\r\n\t\t\t\t\t\t\t\tb_form_result_answer\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tRESULT_ID = {$RESULT_ID}\r\n\t\t\t\t\t\t\tand FIELD_ID = {$FIELD_ID}\r\n\t\t\t\t\t\t\tand USER_FILE_ID>0\r\n\t\t\t\t\t\t\t";
                     $rsFiles = $DB->Query($strSql, false, $err_mess . __LINE__);
                     while ($arFile = $rsFiles->Fetch()) {
                         CFile::Delete($arFile["USER_FILE_ID"]);
                     }
                     // удалим все значения ответов по данному вопросу у данного результата
                     $strSql = "\r\n\t\t\t\t\t\t\tDELETE FROM\r\n\t\t\t\t\t\t\t\tb_form_result_answer\r\n\t\t\t\t\t\t\tWHERE\r\n\t\t\t\t\t\t\t\tRESULT_ID = {$RESULT_ID}\r\n\t\t\t\t\t\t\tand FIELD_ID = {$FIELD_ID}\r\n\t\t\t\t\t\t\t";
                     $DB->Query($strSql, false, $err_mess . __LINE__);
                     if (is_array($VALUE) && count($VALUE) > 0) {
                         $arrANSWER_TEXT = array();
                         $arrANSWER_VALUE = array();
                         $arrUSER_TEXT = array();
                         while (list($ANSWER_ID, $value) = each($VALUE)) {
                             $rsAnswer = CFormAnswer::GetByID($ANSWER_ID);
                             if ($arAnswer = $rsAnswer->Fetch()) {
                                 switch ($arAnswer["FIELD_TYPE"]) {
                                     case "radio":
                                     case "dropdown":
                                     case "checkbox":
                                     case "multiselect":
                                         $arFields = array("RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"]);
                                         CFormResult::AddAnswer($arFields);
                                         $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
                                         $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
                                         break;
                                     case "text":
                                     case "textarea":
                                     case "password":
                                     case "email":
                                     case "url":
                                         $arFields = array("RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], "USER_TEXT" => $value);
                                         CFormResult::AddAnswer($arFields);
                                         $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
                                         $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
                                         $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]);
                                         break;
                                     case "date":
                                         if (CheckDateTime($value)) {
                                             $arFields = array("RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], "USER_TEXT" => $value, "USER_DATE" => $value);
                                             CFormResult::AddAnswer($arFields);
                                             $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
                                             $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
                                             $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]);
                                         }
                                         break;
                                     case "image":
                                         $arIMAGE = $value;
                                         if (is_array($arIMAGE) && count($arIMAGE) > 0) {
                                             $arIMAGE["MODULE_ID"] = "form";
                                             if (strlen(CFile::CheckImageFile($arIMAGE)) <= 0) {
                                                 $fid = CFile::SaveFile($arIMAGE, "form");
                                                 if (intval($fid) > 0) {
                                                     $arFields = array("RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], "USER_FILE_ID" => $fid, "USER_FILE_IS_IMAGE" => "Y", "USER_FILE_NAME" => $arIMAGE["name"], "USER_FILE_SIZE" => $arIMAGE["size"], "USER_TEXT" => $arIMAGE["name"]);
                                                     CFormResult::AddAnswer($arFields);
                                                     $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
                                                     $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
                                                     $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]);
                                                 }
                                             }
                                         }
                                         break;
                                     case "file":
                                         $arFILE = $value;
                                         if (is_array($arFILE) && count($arFILE) > 0) {
                                             $arFILE["MODULE_ID"] = "form";
                                             $original_name = $arFILE["name"];
                                             $max_size = COption::GetOptionString("form", "MAX_FILESIZE");
                                             $suffix = COption::GetOptionString("form", "NOT_IMAGE_EXTENSION_SUFFIX");
                                             $arFILE["name"] .= $suffix;
                                             $upload_dir = COption::GetOptionString("form", "NOT_IMAGE_UPLOAD_DIR");
                                             $fid = CFile::SaveFile($arFILE, $upload_dir, $max_size);
                                             if (intval($fid) > 0) {
                                                 $arFields = array("RESULT_ID" => $RESULT_ID, "FORM_ID" => $WEB_FORM_ID, "FIELD_ID" => $FIELD_ID, "ANSWER_ID" => $ANSWER_ID, "ANSWER_TEXT" => trim($arAnswer["MESSAGE"]), "ANSWER_VALUE" => $arAnswer["VALUE"], "USER_FILE_ID" => $fid, "USER_FILE_IS_IMAGE" => "N", "USER_FILE_NAME" => $original_name, "USER_FILE_HASH" => md5(uniqid(mt_rand(), true) . time()), "USER_FILE_SIZE" => $arFILE["size"], "USER_FILE_SUFFIX" => $suffix, "USER_TEXT" => $original_name);
                                                 CFormResult::AddAnswer($arFields);
                                                 $arrANSWER_TEXT[$FIELD_ID][] = ToUpper($arFields["ANSWER_TEXT"]);
                                                 $arrANSWER_VALUE[$FIELD_ID][] = ToUpper($arFields["ANSWER_VALUE"]);
                                                 $arrUSER_TEXT[$FIELD_ID][] = ToUpper($arFields["USER_TEXT"]);
                                             }
                                         }
                                         break;
                                 }
                             }
                         }
                         // обновляем поля для поиска
                         $arrANSWER_TEXT_upd = $arrANSWER_TEXT[$FIELD_ID];
                         $arrANSWER_VALUE_upd = $arrANSWER_VALUE[$FIELD_ID];
                         $arrUSER_TEXT_upd = $arrUSER_TEXT[$FIELD_ID];
                         TrimArr($arrANSWER_TEXT_upd);
                         TrimArr($arrANSWER_VALUE_upd);
                         TrimArr($arrUSER_TEXT_upd);
                         if (is_array($arrANSWER_TEXT_upd)) {
                             $vl_ANSWER_TEXT = trim(implode(" ", $arrANSWER_TEXT_upd));
                         }
                         if (is_array($arrANSWER_VALUE_upd)) {
                             $vl_ANSWER_VALUE = trim(implode(" ", $arrANSWER_VALUE_upd));
                         }
                         if (is_array($arrUSER_TEXT_upd)) {
                             $vl_USER_TEXT = trim(implode(" ", $arrUSER_TEXT_upd));
                         }
                         if (strlen($vl_ANSWER_TEXT) <= 0) {
                             $vl_ANSWER_TEXT = false;
                         }
                         if (strlen($vl_ANSWER_VALUE) <= 0) {
                             $vl_ANSWER_VALUE = false;
                         }
                         if (strlen($vl_USER_TEXT) <= 0) {
                             $vl_USER_TEXT = false;
                         }
                         $arFields = array("ANSWER_TEXT_SEARCH" => $vl_ANSWER_TEXT, "ANSWER_VALUE_SEARCH" => $vl_ANSWER_VALUE, "USER_TEXT_SEARCH" => $vl_USER_TEXT);
                         CFormResult::UpdateField($arFields, $RESULT_ID, $FIELD_ID);
                     }
                 }
                 return true;
             }
         }
     }
     return false;
 }