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

Продолжаю выкладывать всякие полезные скрипты для работы с 1с-Битрикс. На этот раз это автоматическое обновление курсов валют. Откуда он у меня я уже не помню, по моему  на форуме нашел.  Там все довольно просто, по этому выкладываю как есть. Это полноценный агент, можете ложить в php_interface и добавить агента. GetCurrencyMy();


<?
function GetCurrencyMy()
{
global $USER;
$USER = new CUser;
$strQueryText = QueryGetData("www.cbr.ru",80,"/scripts/XML_daily.asp","",$error_number,$error_text);
if(strlen($strQueryText)>0)
{
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/xml.php");
$strQueryText = eregi_replace("<!DOCTYPE[^>]{1,}>", "", $strQueryText);
$objXML = new CDataXML();
$objXML->LoadString($strQueryText);
$arData = $objXML->GetArray();
if(is_array($arData) &amp;amp;amp;&amp;amp;amp; count($arData["ValCurs"]["#"]["Valute"])>0)
{
$cdate = $arData["ValCurs"]["@"]["Date"]."<br>";
for ($j1 = 0; $j1<count($arData["ValCurs"]["#"]["Valute"]); $j1++)
{
if(CModule::IncludeModule("currency"))
{
$arCurrValue = str_replace(",", ".", $arData["ValCurs"]["#"]["Valute"][$j1]["#"]["Value"][0]["#"]);
$curr = DoubleVal($arCurrValue);
$arFields = array(
"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();";
}

?>

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

  1. Сделал всё как написано однако выдаёт ошибку
    Parse error: syntax error, unexpected ‘;’ in /var/www/bitrix/php_interface/init.php on line 14
    Подскажите, как исправить.

      1. Я тоже так подумал, но после того как знак прописал ничего не изменилось. Очистил кеш сайта и кэш браузера, перезапустил apache и nginx, всё бесполезно, та же ошибка выскакивает. Что ещё можно сделать?

      2. На мыло ничего кроме последней ссылки не пришло.
        Новый код (http://pastebin.com/Q4NJDmMD) ошибку не выдаёт, функция через агента запускается, но курсы валют на /bitrix/admin/currencies_rates.php не появляются.

  2. Не работает, все та же ошибка «Parse error: syntax error, unexpected ‘;’ in /var/www/bitrix/php_interface/init.php on line 14»

  3. CCurrencyRates::Add($arFields); таким способом постоянно добавляет новый курс валют

Comments are closed.