Установить набор дополнительных контентных блоков в дело crm.activity.layout.blocks.set
Scope:
crmКто может выполнять метод: администратор
Метод crm.activity.layout.blocks.set устанавливает набор дополнительных контентных блоков для дела.
Установка нового набора дополнительных контентных блоков в дело будет стирать ранее добавленный набор в рамках одного приложения.
Установка набора дополнительных контентных блоков не может быть применена к:
- конфигурируемому делу,
- делу, тип которого является устаревшим.
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
entityTypeId* |
Идентификатор типа объекта CRM, к которому привязано дело |
|
entityId* |
Идентификатор объекта CRM, к которому привязано дело |
|
activityId* |
Идентификатор дела |
|
layout* |
Объект, описывающий набор дополнительных контентных блоков |
Примеры кода
В дело с id = 8, привязанного к сделке с id = 4 установим следующий набор дополнительных контентных блоков:
- Текст
- Длинный многострочный текст
- Ссылка
- Блок с заголовком
Как использовать примеры в документации
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"entityTypeId":2,"entityId":4,"activityId":8,"layout":{"blocks":{"block_1":{"type":"text","properties":{"value":"Здравствуйте!\nМы начинаем.","multiline":true,"bold":true,"color":"base_90"}},"block_2":{"type":"largeText","properties":{"value":"Здравствуйте!\nМы начинаем.\nМы продолжаем.\nМы все еще работаем над этим.\nМы продолжаем.\nМы близки к результату.\nДо свидания."}},"block_3":{"type":"link","properties":{"text":"Открыть сделку","bold":true,"action":{"type":"redirect","uri":"/crm/deal/details/123/"}}},"block_4":{"type":"withTitle","properties":{"title":"Заголовок","block":{"type":"text","properties":{"value":"Какое-то значение"}}}}}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.activity.layout.blocks.set
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"entityTypeId":2,"entityId":4,"activityId":8,"layout":{"blocks":{"block_1":{"type":"text","properties":{"value":"Здравствуйте!\nМы начинаем.","multiline":true,"bold":true,"color":"base_90"}},"block_2":{"type":"largeText","properties":{"value":"Здравствуйте!\nМы начинаем.\nМы продолжаем.\nМы все еще работаем над этим.\nМы продолжаем.\nМы близки к результату.\nДо свидания."}},"block_3":{"type":"link","properties":{"text":"Открыть сделку","bold":true,"action":{"type":"redirect","uri":"/crm/deal/details/123/"}}},"block_4":{"type":"withTitle","properties":{"title":"Заголовок","block":{"type":"text","properties":{"value":"Какое-то значение"}}}}}},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.activity.layout.blocks.set
try
{
const response = await $b24.callMethod(
'crm.activity.layout.blocks.set',
{
entityTypeId: 2, // Сделка
entityId: 4, // ID Сделки
activityId: 8, // ID Дела привязанного к данной сделке
layout: layout, // Объект, описывающий набор дополнительных контентных блоков
}
);
const result = response.getData().result;
console.info(result);
}
catch( error )
{
console.error(error);
}
try {
$response = $b24Service
->core
->call(
'crm.activity.layout.blocks.set',
[
'entityTypeId' => 2, // Сделка
'entityId' => 4, // ID Сделки
'activityId' => 8, // ID Дела привязанного к данной сделке
'layout' => [
'blocks' => [
'block_1' => [
'type' => "text",
'properties' => [
'value' => "Здравствуйте!\nМы начинаем.",
'multiline' => true,
'bold' => true,
'color' => "base_90",
],
],
'block_2' => [
'type' => "largeText",
'properties' => [
'value' => "Здравствуйте!\nМы начинаем.\nМы продолжаем.\nМы все еще работаем над этим.\nМы продолжаем.\nМы близки к результату.\nДо свидания.",
],
],
'block_3' => [
'type' => "link",
'properties' => [
'text' => "Открыть сделку",
'bold' => true,
'action' => [
'type' => "redirect",
'uri' => "/crm/deal/details/123/",
],
],
],
'block_4' => [
'type' => "withTitle",
'properties' => [
'title' => "Заголовок",
'block' => [
'type' => "text",
'properties' => [
'value' => "Какое-то значение",
],
],
],
],
],
],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error setting activity layout blocks: ' . $e->getMessage();
}
const layout = {
blocks: {
'block_1': {
type: "text",
properties: {
value: "Здравствуйте!\nМы начинаем.",
multiline: true,
bold: true,
color: "base_90"
}
},
'block_2': {
type: "largeText",
properties: {
value: "Здравствуйте!\nМы начинаем.\nМы продолжаем.\nМы все еще работаем над этим.\nМы продолжаем.\nМы близки к результату.\nДо свидания."
}
},
'block_3': {
type: "link",
properties: {
text: "Открыть сделку",
bold: true,
action: {
type: "redirect",
uri: "/crm/deal/details/123/"
}
}
},
'block_4': {
type: "withTitle",
properties: {
title: "Заголовок",
block: {
type: "text",
properties: {
value: "Какое-то значение"
}
}
}
}
}
};
BX24.callMethod(
'crm.activity.layout.blocks.set',
{
entityTypeId: 2, // Сделка
entityId: 4, // ID Сделки
activityId: 8, // ID Дела привязанного к данной сделке
layout: layout, // Объект, описывающий набор дополнительных контентных блоков
},
(result) => {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
},
);
require_once('crest.php');
$result = CRest::call(
'crm.activity.layout.blocks.set',
[
'entityTypeId' => 2,
'entityId' => 4,
'activityId' => 8,
'layout' => [
'blocks' => [
'block_1' => [
'type' => "text",
'properties' => [
'value' => "Здравствуйте!\nМы начинаем.",
'multiline' => true,
'bold' => true,
'color' => "base_90"
]
],
'block_2' => [
'type' => "largeText",
'properties' => [
'value' => "Здравствуйте!\nМы начинаем.\nМы продолжаем.\nМы все еще работаем над этим.\nМы продолжаем.\nМы близки к результату.\nДо свидания."
]
],
'block_3' => [
'type' => "link",
'properties' => [
'text' => "Открыть сделку",
'bold' => true,
'action' => [
'type' => "redirect",
'uri' => "/crm/deal/details/123/"
]
]
],
'block_4' => [
'type' => "withTitle",
'properties' => [
'title' => "Заголовок",
'block' => [
'type' => "text",
'properties' => [
'value' => "Какое-то значение"
]
]
]
]
]
]
]
);
echo '';
print_r($result);
echo '';
Внешний вид
Результатом примера выше будет дело:

Если дело содержит более одного набора дополнительных контентных блоков, то они будут выводиться в порядке их добавления.
В html верстке с помощью data-атрибутов явно выделено то, каким приложением был добавлен набор дополнительных контентных блоков:
data-app-name: название приложения,data-rest-client-id: идентификатор приложения.
Обработка ответа
HTTP-статус: 200
Возвращает { success: true } в случае успешной записи набора дополнительных контентных блоков, иначе null.
{
"success": true
}
Обработка ошибок
HTTP-статус: 400
{
"error": "ERROR_WRONG_CONTEXT",
"error_description": "Вызов метода возможен только в контексте rest приложения"
}
|
Название |
Описание |
|
error |
Строковый код ошибки. Может состоять из цифр, латинских букв и знака подчеркивания |
|
error_description |
Текстовое описание ошибки. Описание не предназначено для показа конечному пользователю в необработанном виде |
Возможные коды ошибок
|
Код |
Описание |
|
|
Вызов метода возможен только в контексте rest приложения |
|
|
Элемент, к которому привязано дело, не найден |
|
|
Дело не найдено |
|
|
Доступ запрещен |
|
|
Тип данного дела не подходит для добавления набора дополнительных контентных блоков |
|
|
Поле |
Также метод отдает ошибки, связанные с неправильной структурой набора контентных блоков. Подробности можно узнать в тексте ошибки.
Статусы и коды системных ошибок
HTTP-статус: 20x, 40x, 50x
Описанные ниже ошибки могут возникнуть при вызове любого метода
|
Статус |
Код |
Описание |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Возникла внутренняя ошибка сервера, обратитесь к администратору сервера или в техническую поддержку Битрикс24 |
|
|
|
Превышен лимит на интенсивность запросов |
|
|
|
Текущий метод не разрешен для вызова с помощью batch |
|
|
|
Превышена максимальная длина параметров, переданных в метод batch |
|
|
|
Неверный access-токен или код вебхука |
|
|
|
Для вызовов методов требуется использовать протокол HTTPS |
|
|
|
REST API заблокирован из-за перегрузки. Это ручная индивидуальная блокировка, для снятия необходимо обращаться в техническую поддержку Битрикс24 |
|
|
|
REST API доступен только на коммерческих планах |
|
|
|
У пользователя, с чьим access-токеном или вебхуком был вызван метод, не хватает прав |
|
|
|
Манифест недоступен |
|
|
|
Запрос требует более высоких привилегий, чем предоставляет токен вебхука |
|
|
|
Предоставленный access-токен доступа истек |
|
|
|
Пользователь не имеет доступа к приложению. Это означает, что приложение установлено, но администратор портала разрешил доступ к этому приложению только конкретным пользователям |
|
|
|
Публичная часть сайта закрыта. Чтобы открыть публичную часть сайта на коробочной установке отключите опцию «Временное закрытие публичной части сайта». Путь к настройке: Рабочий стол > Настройки > Настройки продукта > Настройки модулей > Главный модуль > Временное закрытие публичной части сайта |
Продолжите изучение
- Дополнительные контентные блоки
- Получить набор дополнительных контентных блоков в деле crm.activity.layout.blocks.get
- Удалить набор дополнительных контентных блоков в деле crm.activity.layout.blocks.delete