ГлавнаяБлогАвтоматическое обновление валют 1С-Битрикс

Автоматическое обновление валют 1С-Битрикс

Рамиль Юналиев
Рамиль Юналиев
E-Commerce Lead
17 ноября 2009 г.
1 мин чтения

Полноценный агент для 1С-Битрикс, который автоматически обновляет курсы валют. Разместить в папке php_interface и зарегистрировать как агента с именем GetCurrencyMy().

Скрипт загружает XML-данные с сайта ЦБ РФ, парсит их через CDataXML, извлекает информацию о валютах и добавляет в систему через CCurrencyRates::Add().

<?php
if ($intGMTDiff > 0) {
  require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/xml.php");
  $strQueryText = eregi_replace("\]{1,}>", "", $strQueryText);
  $objXML = new CDataXML();
  $objXML->LoadString($strQueryText);
  $arData = $objXML->GetArray();
  if(is_array($arData) && count($arData["ValCurs"]["#"]["Valute"])>0) {
    $cdate = $arData["ValCurs"]["@"]["Date"]." ";
    for ($j1 = 0; $j1 < count($arData["ValCurs"]["#"]["Valute"]); $j1++) {
      $curr = str_replace(",", ".", $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["Value"][0]["#"]);
      $arFields = array(
        "CURRENCY_ID" => $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["NumCode"][0]["#"],
        "RATE" => round($curr, 2),
        "RATE_CNT" => $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["Nominal"][0]["#"],
        "CURRENCY" => $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["CharCode"][0]["#"],
        "DATE_RATE" => $cdate
      );
      CCurrencyRates::Add($arFields);
    }
  }
}
return "GetCurrencyMy();";
?>

Функция возвращает своё собственное имя (return "GetCurrencyMy();") — стандартный способ регистрации повторяющихся агентов в Битриксе.