Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Проблемы с событиями форм

00 голосов
0
Здравствуйте.
Достался в наследство сайт, сделанный непонятно кем. Сайт написан на 6-ой версии. Возникла необходимость добавить на данный сайт форму. Создал форму в панели управления, добавил на страницу. Форма работает. Добавил к форме поле. Пытаюсь заполнить это поле по событию onAfterResultAdd, для чего в файл /bitrix/php_interface/init.php добавил соответствующие строчки - результата нет. Попробовал пример из документации - не работает. Попробовал как написано здесь - не получилось.
То, что лежит в /bitrix/php_interface/init.php

Код
<?
//Мой код
function my_onAfterResultAdd($WEB_FORM_ID, $RESULT_ID)
{
   if ($WEB_FORM_ID == 17)
   {
      CFormResult::SetField($RESULT_ID, 'add_quest_id', 'test');
   }
}
AddEventHandler('form', 'onAfterResultAdd', 'my_onAfterResultAdd');
//Конец моего кода



include_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/templates/.default/sale/mp3/init_vars.php");
AddEventHandler("sale", "OnSaleCancelOrder", "SaleCancelOrderEventAdd");
function SaleCancelOrderEventAdd(&$ID, &$var)
{
    if($var == "Y" && CModule::IncludeModule("statistic"))
    {
      CStatistic::Set_Event("eStore", "order_cancel", $ID);
   }
}

function MP3DeliveryOrderCallback($productID, $userID, $bPaid, $orderID)
{
   global $DB;

   $productID = IntVal($productID);
   $userID = IntVal($userID);
   $bPaid = ($bPaid ? True : False);
   $orderID = IntVal($orderID);

   if ($userID <= 0)
      return False;

   if ($orderID <= 0)
      return False;

   if (!array_key_exists($productID, $GLOBALS["arMP3Sums"]))
      return False;

   if (!($arOrder = CSaleOrder::GetByID($orderID)))
      return False;

   $baseLangCurrency = CSaleLang::GetLangCurrency($arOrder["LID"]);

   $currentPrice = $GLOBALS["arMP3Sums"][$productID]["PRICE"];
   $currentCurrency = $GLOBALS["arMP3Sums"][$productID]["CURRENCY"];
   if ($GLOBALS["arMP3Sums"][$productID]["CURRENCY"] != $baseLangCurrency)
   {
      $currentPrice = CCurrencyRates::ConvertCurrency($GLOBALS["arMP3Sums"][$productID]["PRICE"], $GLOBALS["arMP3Sums"][$productID]["CURRENCY"], $baseLangCurrency);
      $currentCurrency = $baseLangCurrency;
   }

   if (!CSaleUserAccount::UpdateAccount($userID, ($bPaid ? $currentPrice : -$currentPrice), $currentCurrency, "MANUAL", $orderID))
      return False;

   return True;
}

?>
 

Помогите разобраться. Уже даже и не представляю, где что можно посмотреть.
 
ЗЫ: пробовал убирать проверку на ИД формы - не помогло. Сама форма работает, но не заполняется то поле.
ЗЫЫ: наименование поля проверил раз 100
спросил 15 Март, 14 от PriestD (100 баллов)

Ваш ответ

Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

Похожие вопросы

0 голосов
0 ответов
спросил 29 Авг, 13 от Ragadar (120 баллов)
0 голосов
9 ответов
спросил 24 Май, 13 от Lendrer (260 баллов)
0 голосов
3 ответов
спросил 19 Май, 13 от Zerk (320 баллов)
0 голосов
1 ответ
спросил 19 Июнь, 17 от аноним
0 голосов
2 ответов
спросил 06 Май, 14 от xDEV1Lx (240 баллов)