crm.deal.details.configuration.set
Установить параметры карточки сделки
Описание
Метод crm.deal.details.configuration.set устанавливает настройки карточки сделки. Метод записывает личные настройки карточки указанного пользователя или общие настройки для всех пользователей.
Настройки карточки сделок в разных воронках могут отличаться. Для выбора воронки используйте параметр extras.dealCategoryId.
Параметры
scope
string
необязательный
Область применения настроек.
Возможные значения:
- P — личные настройки
- C — общие настройки
По умолчанию — P
userId
user
необязательный
Идентификатор пользователя. Нужен только при установке личных настроек другого пользователя.
Если не задан, берется текущий
data
section[]
обязательный
Список section, описывающий конфигурацию разделов карточки сделки. Структура section описана ниже
extras
object
необязательный
Дополнительные параметры (подробное описание)
Параметр extras
dealCategoryId
integer
необязательный
Идентификатор воронки сделок. Можно получить с помощью crm.category.list
Если не указан, используется воронка по умолчанию для сделок
Параметр section
name
string
обязательный
Уникальное название раздела
title
string
обязательный
Название раздела
type
string
обязательный
Тип раздела
На данный момент доступно только значение section
elements
section_element[]
необязательный
Список выводимых в карточке полей с дополнительными настройками
Параметр section_element
name
string
обязательный
Идентификатор поля. Список доступных полей можно узнать с помощью crm.deal.fields
optionFlags
integer
необязательный
Нужно ли показывать поле всегда:
- 1 — да
- 0 — нет
По умолчанию — 0
options
object
необязательный
Дополнительные опции поля. Состав зависит от поля
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"scope":"P","userId":1,"extras":{"dealCategoryId":32},"data":[{"name":"main","title":"О сделке","type":"section","elements":[{"name":"TITLE"},{"name":"OPPORTUNITY_WITH_CURRENCY"},{"name":"STAGE_ID"},{"name":"CLOSEDATE"},{"name":"CLIENT"}]},{"name":"additional","title":"Дополнительно","type":"section","elements":[{"name":"TYPE_ID"},{"name":"SOURCE_ID"},{"name":"SOURCE_DESCRIPTION"},{"name":"OPENED"},{"name":"ASSIGNED_BY_ID"},{"name":"COMMENTS"}]},{"name":"products","title":"Товары","type":"section","elements":[{"name":"PRODUCT_ROW_SUMMARY"}]}]}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.deal.details.configuration.set
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"scope":"P","userId":1,"extras":{"dealCategoryId":32},"data":[{"name":"main","title":"О сделке","type":"section","elements":[{"name":"TITLE"},{"name":"OPPORTUNITY_WITH_CURRENCY"},{"name":"STAGE_ID"},{"name":"CLOSEDATE"},{"name":"CLIENT"}]},{"name":"additional","title":"Дополнительно","type":"section","elements":[{"name":"TYPE_ID"},{"name":"SOURCE_ID"},{"name":"SOURCE_DESCRIPTION"},{"name":"OPENED"},{"name":"ASSIGNED_BY_ID"},{"name":"COMMENTS"}]},{"name":"products","title":"Товары","type":"section","elements":[{"name":"PRODUCT_ROW_SUMMARY"}]}],"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.deal.details.configuration.set
// 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<boolean>({
method: 'crm.deal.details.configuration.set',
params: {
scope: 'P',
userId: 1,
extras: {
dealCategoryId: 32,
},
data: [
{
name: 'main',
title: 'About the deal',
type: 'section',
elements: [
{ name: 'TITLE' },
{ name: 'OPPORTUNITY_WITH_CURRENCY' },
{ name: 'STAGE_ID' },
{ name: 'CLOSEDATE' },
{ name: 'CLIENT' },
],
},
{
name: 'additional',
title: 'Additional',
type: 'section',
elements: [
{ name: 'TYPE_ID' },
{ name: 'SOURCE_ID' },
{ name: 'SOURCE_DESCRIPTION' },
{ name: 'OPENED' },
{ name: 'ASSIGNED_BY_ID' },
{ name: 'COMMENTS' },
],
},
{
name: 'products',
title: 'Products',
type: 'section',
elements: [
{ name: 'PRODUCT_ROW_SUMMARY' },
],
},
],
},
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('Configuration saved:', 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 setDealCardConfiguration() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.deal.details.configuration.set',
params: {
scope: 'P',
userId: 1,
extras: {
dealCategoryId: 32,
},
data: [
{
name: 'main',
title: 'About the deal',
type: 'section',
elements: [
{ name: 'TITLE' },
{ name: 'OPPORTUNITY_WITH_CURRENCY' },
{ name: 'STAGE_ID' },
{ name: 'CLOSEDATE' },
{ name: 'CLIENT' },
],
},
{
name: 'additional',
title: 'Additional',
type: 'section',
elements: [
{ name: 'TYPE_ID' },
{ name: 'SOURCE_ID' },
{ name: 'SOURCE_DESCRIPTION' },
{ name: 'OPENED' },
{ name: 'ASSIGNED_BY_ID' },
{ name: 'COMMENTS' },
],
},
{
name: 'products',
title: 'Products',
type: 'section',
elements: [
{ name: 'PRODUCT_ROW_SUMMARY' },
],
},
],
},
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('Configuration saved:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', setDealCardConfiguration)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.crm.deal.details.configuration.set(
scope="P",
user_id=1,
extras={"dealCategoryId": 0},
).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}")
try {
$response = $b24Service
->core
->call(
'crm.deal.details.configuration.set',
[
'scope' => 'P',
'userId' => 1,
'extras' => [
'dealCategoryId' => 32,
],
'data' => [
[
'name' => 'main',
'title' => 'О сделке',
'type' => 'section',
'elements' => [
['name' => 'TITLE'],
['name' => 'OPPORTUNITY_WITH_CURRENCY'],
['name' => 'STAGE_ID'],
['name' => 'CLOSEDATE'],
['name' => 'CLIENT'],
],
],
[
'name' => 'additional',
'title' => 'Дополнительно',
'type' => 'section',
'elements' => [
['name' => 'TYPE_ID'],
['name' => 'SOURCE_ID'],
['name' => 'SOURCE_DESCRIPTION'],
['name' => 'OPENED'],
['name' => 'ASSIGNED_BY_ID'],
['name' => 'COMMENTS'],
],
],
[
'name' => 'products',
'title' => 'Товары',
'type' => 'section',
'elements' => [
['name' => 'PRODUCT_ROW_SUMMARY'],
],
],
],
]
);
$result = $response
->getResponseData()
->getResult();
if ($result->error()) {
echo 'Error: ' . $result->error();
} else {
echo 'Data: ' . print_r($result->data(), true);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error setting deal details configuration: ' . $e->getMessage();
}
BX24.callMethod(
'crm.deal.details.configuration.set',
{
scope: "P",
userId: 1,
extras: {
dealCategoryId: 32,
},
data: [
{
name: "main",
title: "О сделке",
type: "section",
elements: [
{ name: "TITLE" },
{ name: "OPPORTUNITY_WITH_CURRENCY" },
{ name: "STAGE_ID" },
{ name: "CLOSEDATE" },
{ name: "CLIENT" },
],
},
{
name: "additional",
title: "Дополнительно",
type: "section",
elements: [
{ name: "TYPE_ID" },
{ name: "SOURCE_ID" },
{ name: "SOURCE_DESCRIPTION" },
{ name: "OPENED" },
{ name: "ASSIGNED_BY_ID" },
{ name: "COMMENTS" },
],
},
{
name: "products",
title: "Товары",
type: "section",
elements: [
{ name: "PRODUCT_ROW_SUMMARY" },
],
},
],
},
(result) => {
result.error()
? console.error(result.error())
: console.info(result.data())
;
},
);
require_once('crest.php');
$result = CRest::call(
'crm.deal.details.configuration.set',
[
'scope' => 'P',
'userId' => 1,
'extras' => [
'dealCategoryId' => 32,
],
'data' => [
[
'name' => 'main',
'title' => 'О сделке',
'type' => 'section',
'elements' => [
['name' => 'TITLE'],
['name' => 'OPPORTUNITY_WITH_CURRENCY'],
['name' => 'STAGE_ID'],
['name' => 'CLOSEDATE'],
['name' => 'CLIENT'],
],
],
[
'name' => 'additional',
'title' => 'Дополнительно',
'type' => 'section',
'elements' => [
['name' => 'TYPE_ID'],
['name' => 'SOURCE_ID'],
['name' => 'SOURCE_DESCRIPTION'],
['name' => 'OPENED'],
['name' => 'ASSIGNED_BY_ID'],
['name' => 'COMMENTS'],
],
],
[
'name' => 'products',
'title' => 'Товары',
'type' => 'section',
'elements' => [
['name' => 'PRODUCT_ROW_SUMMARY'],
],
],
],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.deal.details.configuration.set", b24.Params{
"scope": "P",
"userId": 1,
"extras": b24.Params{
"dealCategoryId": 32,
},
"data": []b24.Params{
{
"name": "main",
"title": "О сделке",
"type": "section",
"elements": []b24.Params{
{
"name": "TITLE",
},
{
"name": "OPPORTUNITY_WITH_CURRENCY",
},
{
"name": "STAGE_ID",
},
{
"name": "CLOSEDATE",
},
{
"name": "CLIENT",
},
},
},
{
"name": "additional",
"title": "Дополнительно",
"type": "section",
"elements": []b24.Params{
{
"name": "TYPE_ID",
},
{
"name": "SOURCE_ID",
},
{
"name": "SOURCE_DESCRIPTION",
},
{
"name": "OPENED",
},
{
"name": "ASSIGNED_BY_ID",
},
{
"name": "COMMENTS",
},
},
},
{
"name": "products",
"title": "Товары",
"type": "section",
"elements": []b24.Params{
{
"name": "PRODUCT_ROW_SUMMARY",
},
},
},
},
})
if err != nil {
return fmt.Errorf("crm.deal.details.configuration.set: %w", err)
}
var ok bool
if err := json.Unmarshal(res.Result, &ok); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("выполнено:", ok)
Ответ
HTTP-статус: 200
{
"result": true,
"time": {
"start": 1773311825,
"finish": 1773311825.969825,
"duration": 0.969825029373169,
"processing": 0,
"date_start": "2026-03-12T13:37:05+03:00",
"date_finish": "2026-03-12T13:37:05+03:00",
"operating_reset_at": 1773312425,
"operating": 0
}
}
Возвращаемые данные
result
boolean
Корневой элемент ответа. Возвращает true в случае успешной записи настроек
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Access denied."
}
| Код | Описание | Значение |
|---|---|---|
400 |
Пустое значение | Access denied |
400 |
Пустое значение | Parameter 'data' must be array |
400 |
Пустое значение | There are no data to write |
400 |
Пустое значение | The data must be indexed array |
400 |
Пустое значение | Section at index i have type data[i].type. The expected type is 'section' |
400 |
Пустое значение | Section at index i does not have name |
400 |
Пустое значение | Section at index i does not have title |
400 |
Пустое значение | Element at index j in section at index i does not have name |

