Документация для разработчиков
Темная тема

Создание дел из приложений

Приложения могут создавать дела с провайдером специального типа. У такого дела будет соответствующая иконка , оно будет отображаться в таймлайн и по клику на дело будет открываться приложение в слайдере с опциями в PLACEMENT_OPTIONS.

Изменять/удалять дела такого подтипа можно только в контексте приложение, которым оно создано. То есть при обновлении такого дела методом crm.activity.update через вебхук будет ошибка: Access denied! Application context required.

Параметры

Метод Описание
PROVIDER_ID Идентификатор провайдера. Для специального типа значение должно быть равно 'REST_APP'.
PROVIDER_TYPE_ID Идентификатор типа дела. В случае использования провайдера 'REST_APP' разработчик может указывать произвольные идентификаторы типа в зависимости от своих задач.

Пример

<?php
header('Content-Type: text/html; charset=UTF-8');
?>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>
	<style type="text/css">

	</style>
</head>
<body style="display: none">
<script src="//api.bitrix24.com/api/v1/"></script>

<?if (isset($_POST['PLACEMENT']) && !empty($_POST['PLACEMENT_OPTIONS'])):
	$opt = json_decode($_POST['PLACEMENT_OPTIONS'], true);
?>
<p>Activity ID: <?=(int)$opt['activity_id']?></p>
<button onclick="updateActivity(<?=(int)$opt['activity_id']?>);">Upd ate activity (se t new description + completed)
<p><button onclick="deleteActivity(<?=(int)$opt['activity_id']?>);">delete activity</button>
<?else:?>
<button onclick="selectCRMEntity();">Select LEAD</button>
<span id="selected-entity"></span>
<p>
<button onclick="addActivity();">Add activity</button>
<?endif;?>
<script type="text/javascript">
	BX24.init(function()
	{
		document.body.style.display = '';
	});

	var selectedEntityId = null;

	function addActivity()
	{

		if (!selectedEntityId)
		{
			alert('Lead not selected');
			return;
		}
		BX24.callMethod(
			'crm.activity.add',
			{
				fields:
					{
						"OWNER_TYPE_ID": 1,
						"OWNER_ID": selectedEntityId,
						"PROVIDER_ID": 'REST_APP',
						"PROVIDER_TYPE_ID": 'LINK',
						"SUBJECT": "Новое дело",
						"COMPLETED": "N",
						"RESPONSIBLE_ID": 1,
						"DESCRIPTION": "Описание нового дела"
					}
			},
			function(result)
			{
				if(result.error())
					alert("Error: " + result.error());
				else
				{
					alert("Success: " + result.data());
				}
			}
		);
	}
	function updateActivity(id)
	{
		BX24.callMethod(
			'crm.activity.update',
			{
				id: id,
				fields:
					{
						COMPLETED: 'Y',
						SUBJECT: "Дело выполнено!",
						DESCRIPTION: "Описание нового дела (выполнено)"
					}
			},
			function(result)
			{
				if(result.error())
					alert("Error: " + result.error());
				else
				{
					alert("Success: " + result.data());
				}
			}
		);
	}

	function deleteActivity(id)
	{
		BX24.callMethod(
			'crm.activity.delete',
			{
				id: id
			},
			function(result)
			{
				if(result.error())
					alert("Error: " + result.error());
				else
				{
					alert("Success: " + result.data());
				}
			}
		);
	}

	function selectCRMEntity()
	{
		document.getElementById('selected-entity').textContent = '';
		BX24.selectCRM({
			entityType: ['lead']
		}, function(selected)
		{
			if (selected['lead'] && selected['lead'][0])
			{
				document.getElementById('selected-entity').textContent = selected['lead'][0]['title'];
				var	id =  selected['lead'][0]['id'];

				selectedEntityId = id.substring(2);

				console.log(selectedEntityId);
			}
		})
	}
</script>
</body>
</html>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
1
Иван Жатков
Сообщение не промодерировано, возможны ошибки и неточности.
Пример не рабочий. На шестой строчке лишний символ. А для того чтобы пример работал нужна настройка placement, которой в примере да и в статье нигде нет, и ссылки нет.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024