crm.currency.add
Добавить валюту
Описание
Метод добавляет новую валюту.
Для языков, используемых на портале, необходимо указать параметры локализации. Если этого не сделать, будут использованы параметры по умолчанию. Для конкретного языка можно задать параметры локализации методом crm.currency.localizations.set.
Параметры
fields
object
обязательный
Значения полей (подробное описание приведено ниже) для добавления новой валюты в виде структуры:
fields: {
CURRENCY: 'значение',
BASE: 'значение',
AMOUNT_CNT: 'значение',
AMOUNT: 'значение'
SORT: 'значение'
LANG: 'значение'
}Параметр fields
CURRENCY
string
обязательный
Идентификатор валюты.
Соответствует стандарту ISO 4217
BASE
string
необязательный
Признак, является ли валюта базовой.
Возможные значения:
- Y — да
- N — нет
Значение по умолчанию — N.
Не рекомендуется менять базовую валюту через REST. Иначе потребуется изменить курсы всех валют
AMOUNT_CNT
integer
обязательный
Номинал. В качестве номинала чаще всего используется 1 или число кратное 10
AMOUNT
double
обязательный
Курс обмена по отношению к базовой валюте
SORT
integer
необязательный
Положение в списке валют.
Значение по умолчанию — 100
LANG
object
необязательный
Параметры локализации валюты.
Объект в формате {"lang_1": "value_1", ... "lang_N": "value_N"}, где lang_N — идентификатор языка, а value — объект типа crm_currency_localization.
Если указать не все языки, для оставшихся будут использоваться параметры локализации по умолчанию
Параметр LANG
DECIMALS
integer
обязательный
Число десятичных знаков дробной части
DEC_POINT
string
необязательный
Десятичная точка при выводе
FORMAT_STRING
string
необязательный
Шаблон формата
FULL_NAME
string
необязательный
Название валюты на языке, для которого добавляется локализация
HIDE_ZERO
string
необязательный
Признак, скрывать незначащие нули или нет
THOUSANDS_SEP
string
необязательный
Разделитель триад
THOUSANDS_VARIANT
string
необязательный
Код разделителя триад.
Допустимые значения описаны в справочнике
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"CURRENCY":"CNY","BASE":"N","AMOUNT":12.2251,"AMOUNT_CNT":1,"SORT":9000,"LANG":{"ru":{"DECIMALS":2,"DEC_POINT":".","FORMAT_STRING":"# CNY","FULL_NAME":"юань","HIDE_ZERO":"Y","THOUSANDS_VARIANT":"S"},"en":{"DECIMALS":2,"DEC_POINT":",","FORMAT_STRING":"# CNY","FULL_NAME":"yuan","HIDE_ZERO":"Y","THOUSANDS_SEP":"."}}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.currency.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"CURRENCY":"CNY","BASE":"N","AMOUNT":12.2251,"AMOUNT_CNT":1,"SORT":9000,"LANG":{"ru":{"DECIMALS":2,"DEC_POINT":".","FORMAT_STRING":"# CNY","FULL_NAME":"юань","HIDE_ZERO":"Y","THOUSANDS_VARIANT":"S"},"en":{"DECIMALS":2,"DEC_POINT":",","FORMAT_STRING":"# CNY","FULL_NAME":"yuan","HIDE_ZERO":"Y","THOUSANDS_SEP":"."}}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.currency.add
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make<string>({
method: 'crm.currency.add',
params: {
fields: {
CURRENCY: 'CNY',
BASE: 'N',
AMOUNT: 12.2251,
AMOUNT_CNT: 1,
SORT: 9000,
LANG: {
ru: {
DECIMALS: 2,
DEC_POINT: '.',
FORMAT_STRING: '# CNY',
FULL_NAME: 'Yuan',
HIDE_ZERO: 'Y',
THOUSANDS_VARIANT: 'S',
},
en: {
DECIMALS: 2,
DEC_POINT: ',',
FORMAT_STRING: '# CNY',
FULL_NAME: 'Yuan',
HIDE_ZERO: 'Y',
THOUSANDS_SEP: '.',
},
},
},
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Created currency id:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function addCurrency() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.currency.add',
params: {
fields: {
CURRENCY: 'CNY',
BASE: 'N',
AMOUNT: 12.2251,
AMOUNT_CNT: 1,
SORT: 9000,
LANG: {
ru: {
DECIMALS: 2,
DEC_POINT: '.',
FORMAT_STRING: '# CNY',
FULL_NAME: 'Yuan',
HIDE_ZERO: 'Y',
THOUSANDS_VARIANT: 'S',
},
en: {
DECIMALS: 2,
DEC_POINT: ',',
FORMAT_STRING: '# CNY',
FULL_NAME: 'Yuan',
HIDE_ZERO: 'Y',
THOUSANDS_SEP: '.',
},
},
},
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Created currency id:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addCurrency)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.currency.add(
fields={
"CURRENCY": "CNY",
"BASE": "N",
"AMOUNT": 12.2251,
"AMOUNT_CNT": 1,
"SORT": 9000,
"LANG": {
"ru": {
"DECIMALS": 2,
"DEC_POINT": ".",
"FORMAT_STRING": "# CNY",
"FULL_NAME": "юань",
"HIDE_ZERO": "Y",
"THOUSANDS_VARIANT": "S",
},
"en": {
"DECIMALS": 2,
"DEC_POINT": ",",
"FORMAT_STRING": "# CNY",
"FULL_NAME": "yuan",
"HIDE_ZERO": "Y",
"THOUSANDS_SEP": ".",
},
},
},
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
require_once('crest.php');
$result = CRest::call(
'crm.currency.add',
[
'fields' => [
'CURRENCY' => 'CNY',
'BASE' => 'N',
'AMOUNT' => 12.2251,
'AMOUNT_CNT' => 1,
'SORT' => 9000,
'LANG' => [
'ru' => [
'DECIMALS' => 2,
'DEC_POINT' => '.',
'FORMAT_STRING' => '# CNY',
'FULL_NAME' => 'юань',
'HIDE_ZERO' => 'Y',
'THOUSANDS_VARIANT' => 'S',
],
'en' => [
'DECIMALS' => 2,
'DEC_POINT' => ',',
'FORMAT_STRING' => '# CNY',
'FULL_NAME' => 'yuan',
'HIDE_ZERO' => 'Y',
'THOUSANDS_SEP' => '.',
],
],
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.currency.add", b24.Params{
"fields": b24.Params{
"CURRENCY": "CNY",
"BASE": "N",
"AMOUNT": 12.2251,
"AMOUNT_CNT": 1,
"SORT": 9000,
"LANG": b24.Params{
"ru": b24.Params{
"DECIMALS": 2,
"DEC_POINT": ".",
"FORMAT_STRING": "# CNY",
"FULL_NAME": "юань",
"HIDE_ZERO": "Y",
"THOUSANDS_VARIANT": "S",
},
"en": b24.Params{
"DECIMALS": 2,
"DEC_POINT": ",",
"FORMAT_STRING": "# CNY",
"FULL_NAME": "yuan",
"HIDE_ZERO": "Y",
"THOUSANDS_SEP": ".",
},
},
},
})
if err != nil {
return fmt.Errorf("crm.currency.add: %w", err)
}
var value string
if err := json.Unmarshal(res.Result, &value); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("результат:", value)
Ответ
HTTP-статус: 200
{
"result": "CNY",
"time": {
"start": 1717684463.467685,
"finish": 1717684465.282238,
"duration": 1.8145530223846436,
"processing": 0.12580394744873047,
"date_start": "2024-06-06T16:34:23+02:00",
"date_finish": "2024-06-06T16:34:25+02:00",
"operating": 0
}
}
Возвращаемые данные
result
crm_currency.CURRENCY
Идентификатор созданной валюты
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Access denied."
}
| Код | Описание | Значение |
|---|---|---|
Пустая строка |
Access denied. | Недостаточно прав доступа |
Пустая строка |
Модуль "Валюты" не найден! Пожалуйста, установите модуль "Валюты". | |
ERROR_CORE |
Undefined array key "#FIELD#" | Не указано обязательное поле #FIELD# (вместо #FIELD# будет подставлен код отсутствующего поля) |
ERROR_CORE |
Другие ошибки в данных для создания валюты |

