При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Обновить валюту crm.currency.update», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.
Обновить валюту crm.currency.update
> Scope: crm
>
> Кто может выполнять метод: любой пользователь с доступом к изменению настроек CRM
Метод обновляет существующую валюту.
Входящие параметры и конфигурация метода
Названиетип | Описание |
|---|---|
IDstring | Идентификатор валюты. Соответствует стандарту ISO 4217. Идентификатор можно получить методом crm.currency.list |
fieldsobject | Значения полей (подробное описание приведено ниже) для обновления валюты в виде структуры: |
Параметр fields
Названиетип | Описание |
|---|---|
SORTinteger | Положение в списке валют. Значение по умолчанию — |
AMOUNT_CNTinteger | Номинал. В качестве номинала чаще всего используется 1 или число кратное 10 |
AMOUNTdouble | Курс обмена по отношению к базовой валюте |
BASEstring | Признак, является ли валюта базовой. Возможные значения: Значение по умолчанию — Не рекомендуется менять базовую валюту через REST. Иначе необходимо будет изменить курсы всех валют |
LANGobject | Параметры локализации валюты. Объект в формате Если указать не все языки, для оставшихся будут использоваться параметры локализации по умолчанию |
Параметр LANG
Названиетип | Описание |
|---|---|
DECIMALS*int | Число десятичных знаков дробной части |
DEC_POINTstring | Десятичная точка при выводе |
FORMAT_STRINGstring | Шаблон формата |
FULL_NAMEstring | Название валюты на языке, для которого добавляется локализация |
HIDE_ZEROstring | Признак, скрывать незначащие нули или нет |
THOUSANDS_SEPstring | Разделитель триад |
THOUSANDS_VARIANTstring | Код разделителя триад. Допустимые значения смотрите в справочнике crm_currency_localization |
Практические примеры использования в коде
1. Изменение курса юаня по отношению к базовой валюте
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":"CNY","fields":{"AMOUNT":15.3449}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.currency.update- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":"CNY","fields":{"AMOUNT":15.3449},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.currency.update- JS
BX24.callMethod(
"crm.currency.update",
{
ID: 'CNY',
fields: {
AMOUNT: 15.3449,
}
},
)
.then(
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result);
}
},
function(error)
{
console.info(error);
}
);- PHP
require_once('crest.php');
$result = CRest::call(
'crm.currency.update',
[
'ID' => 'CNY',
'fields' => [
'AMOUNT' => 15.3449,
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';2. Изменение локализаций валюты (на примере доллара США)
После выполнения этого примера для валюты USD будут изменены (либо добавлены) локализации только для английского и немецкого языков. Локализации для остальных языков, если они были, не изменятся.
Данный пример аналогичен работе метода crm.currency.localizations.set
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":"USD","fields":{"LANG":{"en":{"DECIMALS":2,"DEC_POINT":".","FORMAT_STRING":"$#","FULL_NAME":"доллар США","HIDE_ZERO":"Y","THOUSANDS_VARIANT":"S"},"de":{"DECIMALS":2,"DEC_POINT":".","FORMAT_STRING":"# $","FULL_NAME":"US-Dollar","HIDE_ZERO":"Y","THOUSANDS_VARIANT":"C"}}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.currency.update- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"ID":"USD","fields":{"LANG":{"en":{"DECIMALS":2,"DEC_POINT":".","FORMAT_STRING":"$#","FULL_NAME":"доллар США","HIDE_ZERO":"Y","THOUSANDS_VARIANT":"S"},"de":{"DECIMALS":2,"DEC_POINT":".","FORMAT_STRING":"# $","FULL_NAME":"US-Dollar","HIDE_ZERO":"Y","THOUSANDS_VARIANT":"C"}}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.currency.update- JS
BX24.callMethod(
"crm.currency.update",
{
ID: 'USD',
fields: {
LANG: {
en: {
DECIMALS: 2,
DEC_POINT: '.',
FORMAT_STRING: '$#',
FULL_NAME: 'доллар США',
HIDE_ZERO: 'Y',
THOUSANDS_VARIANT: 'S'
},
de: {
DECIMALS: 2,
DEC_POINT: '.',
FORMAT_STRING: '# $',
FULL_NAME: 'US-Dollar',
HIDE_ZERO: 'Y',
THOUSANDS_VARIANT: 'C'
}
}
}
}
)
.then(
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result);
}
},
function(error)
{
console.info(error);
}
);- PHP
require_once('crest.php');
$result = CRest::call(
'crm.currency.update',
[
'ID' => 'USD',
'fields' => [
'LANG' => [
'en' => [
'DECIMALS' => 2,
'DEC_POINT' => '.',
'FORMAT_STRING' => '$#',
'FULL_NAME' => 'доллар США',
'HIDE_ZERO' => 'Y',
'THOUSANDS_VARIANT' => 'S',
],
'de' => [
'DECIMALS' => 2,
'DEC_POINT' => '.',
'FORMAT_STRING' => '# $',
'FULL_NAME' => 'US-Dollar',
'HIDE_ZERO' => 'Y',
'THOUSANDS_VARIANT' => 'C',
]
]
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": true,
"time": {
"start": 1717764521.938284,
"finish": 1717764522.516576,
"duration": 0.5782921314239502,
"processing": 0.07656002044677734,
"date_start": "2024-06-07T14:48:41+02:00",
"date_finish": "2024-06-07T14:48:42+02:00",
"operating": 0
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultboolean | Результат обновления валюты |
timetime | Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Access denied."
}Возможные коды ошибок
| Код | Описание | Значение |
|---|---|---|
| Пустая строка | Access denied. | Недостаточно прав доступа |
| Пустая строка | Модуль «Валюты» не найден! Пожалуйста, установите модуль «Валюты». | |
ERROR_CODE | Другие ошибки в данных для изменения валюты |
- [](./crm-currency-add)
- [](./crm-currency-get)
- [](./crm-currency-list)
- [](./crm-currency-delete)
- [](./crm-currency-fields)
💡 Экспертное мнение и рекомендации
Практические рекомендации:
- При написании кастомных компонентов для «Обновить валюту crm.currency.update» всегда разделяйте бизнес-логику и представление (шаблон).
- Используйте отладку SQL-запросов через конструкцию
$wpdb->last_queryили стандартный трекер Битрикса, чтобы контролировать нагрузку.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru