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

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

Приложения могут создавать дела с провайдером специального типа. У такого дела будет соответствующая иконка , оно будет отображаться в таймлайн и по клику на дело будет открываться приложение в слайдере с опциями в 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>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024