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

История движения по стадиям

Scope: crm Права на выполнение: для всех

Описание

crm.stagehistory.list(
	{
		entityTypeId: number,
		order: ?{} = null,
		filter: ?{} = null,
		select: ?{} = null,
		start: ?number = 0
	}
)

Метод поддерживает извлечение записей из истории движения по стадиям для лидов, сделок и счетов.

Параметры

Параметр Описание С версии
entityTypeId Идентификатор типа сущности. Может принимать значения:
  • 1 - лид
  • 2 - сделка
  • 5 - счет
order Список для сортировки, где ключ - поле, а значение - ASC или DESC
filter Список для фильтрации. Фильтр поддерживает использование точных значений, массивов значений, а также модификаторы =, !=, <, >, >=, <=. Поиск по like не поддерживается.
start Сдвиг для постраничной навигации. Логика работы с постраничкой стандартная для списочных рест методов.

Возвращаемое значение

Метод вернет массив записей из истории:

{
	"items": []
}

Каждый элемент массива - массив с ключами:

  • ID - идентификатор записи
  • TYPE_ID - тип записи. Может принимать значения: 1 - создание сущности, 2 - перевод на промежуточную стадию, 3 - перевод на финальную стадию
  • OWNER_ID - идентификатор сущности, в которой изменилась стадия
  • CREATED_TIME - дата и время попадания на стадию

Помимо этого, имеются специфичные для разных типов сущностей поля:

  • для лидов и счетов это
    • STATUS_SEMANTIC_ID - семантика статуса P - промежуточная стадия,
      S - успешная стадия,
      F - провальная стадия
      (стадии).
    • STATUS_ID - идентификатор статуса (стадии)
  • для сделок это
    • CATEGORY_ID - идентификатор направления (воронки)
    • STAGE_SEMANTIC_ID - семантика статуса P - промежуточная стадия,
      S - успешная стадия,
      F - провальная стадия
      (стадии).
    • STAGE_ID - идентификатор стадии

Пример вызова

Получение истории движения по стадиям для сделки с ID=1

BX24.callMethod(
	"crm.stagehistory.list",
	{
		entityTypeId: 2,
		order: { "ID": "ASC" },
		filter: { "OWNER_ID": 1 },
		select: [ "ID", "STAGE_ID", "CREATED_TIME" ]
	},
	function(result)
	{
		if(result.error())
			console.error(result.error());
		else
		{
			console.dir(result.data());
			if(result.more())
				result.next();
		}
	}
);

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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
2
мужская киска
Сообщение не промодерировано, возможны ошибки и неточности.
кому надо может быть, вот код, который выводит все сделки за определенный период с историей действия
Код
<?php
require ($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");

use Bitrix\Crm\DealTable;
use Bitrix\Crm\EventTable;
use Bitrix\Crm\EventRelationsTable;

if (\CModule::IncludeModule('crm')) {

$dealFilter = array(
'>=DATE_MODIFY' => '01.04.2024 00:00:00',
'<=DATE_MODIFY' => '31.04.2024 23:59:59',
);


$deals = DealTable::getList([
'select' => ['ID', 'TITLE', 'DATE_CREATE', 'DATE_MODIFY', 'STAGE_ID', 'CATEGORY_ID'],
'filter' => $dealFilter,
'order' => ['DATE_MODIFY' => 'DESC'],

])->fetchAll();

$events = EventRelationsTable::getList(
[
'filter' => [
'ENTITY_TYPE' => 'DEAL',
'ENTITY_ID' => array_column($deals, 'ID'),
],
'select' => [
'*',
'EVENT_BY',
],
'order' => [
'CRM_EVENT_RELATIONS_EVENT_BY_DATE_CREATE' => 'DESC',
],
]
)->fetchAll();

foreach ($deals as $key => $deal) {
$_events = array_filter($events, fn($item) => $item['ENTITY_ID'] == $deal['ID']);

echo "<h1>{$deal['TITLE']}</h1>";

foreach ($_events as $event) {
echo '<br>';
echo '--(' . $event['EVENT_ID'] . ')' . $event['CRM_EVENT_RELATIONS_EVENT_BY_EVENT_NAME'] . " | " . $event['CRM_EVENT_RELATIONS_EVENT_BY_EVENT_TEXT_1'] . ' | ' . $event['CRM_EVENT_RELATIONS_EVENT_BY_EVENT_TEXT_2'];
}
echo '<hr>';
}


} else {
echo "<p>не сработало</p>";
}

require ($_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php");
© «Битрикс», 2001-2024, «1С-Битрикс», 2024