Блог Горошко Андрея Bitrix24,PHP Обновить валюту crm.currency.update

Обновить валюту crm.currency.update

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Обновить валюту crm.currency.update», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Обновить валюту crm.currency.update

> Scope: crm
>
> Кто может выполнять метод: любой пользователь с доступом к изменению настроек CRM

Метод обновляет существующую валюту.

Входящие параметры и конфигурация метода

Название
тип
Описание
ID
string
Идентификатор валюты.

Соответствует стандарту ISO 4217.

Идентификатор можно получить методом crm.currency.list

fields
object
Значения полей (подробное описание приведено ниже) для обновления валюты в виде структуры:

fields: {
    SORT: 'значение'
    AMOUNT_CNT: 'значение',
    AMOUNT: 'значение'
    BASE: 'значение',
    LANG: {
        lang_1: {
            DECIMALS: 'значение',
            DEC_POINT: 'значение',
            ...
        },
        ...
        lang_N: {
            ...
        }
    }
}

Параметр fields

Название
тип
Описание
SORT
integer
Положение в списке валют.

Значение по умолчанию — 100

AMOUNT_CNT
integer
Номинал. В качестве номинала чаще всего используется 1 или число кратное 10
AMOUNT
double
Курс обмена по отношению к базовой валюте
BASE
string
Признак, является ли валюта базовой.

Возможные значения:
— Y — да
— N — нет

Значение по умолчанию — N.

Не рекомендуется менять базовую валюту через REST. Иначе необходимо будет изменить курсы всех валют

LANG
object
Параметры локализации валюты.

Объект в формате {"lang_1": "value_1", ... "lang_N": "value_N"}, где lang_N — идентификатор языка, а value — объект типа crm_currency_localization.

Если указать не все языки, для оставшихся будут использоваться параметры локализации по умолчанию

Параметр LANG

Название
тип
Описание
DECIMALS*
int
Число десятичных знаков дробной части
DEC_POINT
string
Десятичная точка при выводе
FORMAT_STRING
string
Шаблон формата
FULL_NAME
string
Название валюты на языке, для которого добавляется локализация
HIDE_ZERO
string
Признак, скрывать незначащие нули или нет
THOUSANDS_SEP
string
Разделитель триад
THOUSANDS_VARIANT
string
Код разделителя триад.

Допустимые значения смотрите в справочнике 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
    }
}

Возвращаемые данные

Название
тип
Описание
result
boolean
Результат обновления валюты
time
time
Информация о времени выполнения запроса

Обработка ошибок

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 и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Создать новый список обзвона crm.calllist.addСоздать новый список обзвона crm.calllist.add

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Создать новый список обзвона crm.calllist.add», разберем архитектурные особенности

Создание системы автоматизации оптовых рекламаций и работы с браком на 1С-БитриксСоздание системы автоматизации оптовых рекламаций и работы с браком на 1С-Битрикс

Разработка и внедрение профессионального B2B-портала и дилерского кабинета на 1С-Битрикс позволяет кардинально сократить издержки отдела оптовых продаж, перевести дилеров на самообслуживание 24/7 и исключить ошибки ручного ввода заказов. Услуга «Создание

Vyborka: Руководство разработчикаVyborka: Руководство разработчика

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Vyborka: Руководство разработчика». Вы узнаете экспертные методики работы с запросов и научитесь избегать