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

crm.entity.mergeBatch

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

Объединение дубликатов


crm.entity.mergeBatch({params: {entityTypeId: number, entityIds: number[]}})

params - ассоциативный массив, содержащий ключи:
Ключ Описание
entityTypeId идентификатор типа сущности. Может принимать значения 1 (лид), 2 (сделка), 3 (контакт) или 4 (компания)
entityIdsмассив идентификаторов элементов, которые необходимо объединить

Метод вернет ассоциативный массив вида:

{
	"STATUS": "SUCCESS",
	"ENTITY_IDS": [
		"1" 
	]
}

Здесь:

Параметр Описание
STATUS может принимать значения:
  • SUCCESS - объединение прошло успешно.
  • CONFLICT - при объединении возник конфликт.
  • ERROR - при объединении произошла ошибка. Например, если у текущего пользователя нет прав на изменение или удаление записей.
ENTITY_IDSсодержит идентификаторы элементов, которые были объединены, кроме идентификатора элемента, оставшегося после объединения.

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

BX24.callMethod(
	'crm.entity.mergeBatch',
	{
		params: {
			entityTypeId: 3,
			entityIds: [1, 2, 3],
		}
	},
	(result) => {
		console.log(result);
	}
);


Ручное объединение для случаев, когда возник конфликт


Для продолжения объединения вручную, в привычном пользователю интерфейсе Битиркс24, достаточно перенаправить его в раздел ручного объединения по соответствующей ссылке:


  • Контакты: /crm/contact/merge/?id=1,2,3
  • Компании: /crm/company/merge/?id=1,2,3
  • Лиды: /crm/lead/merge/?id=1,2,3
  • Сделки: /crm/deal/merge/?id=1,2,3

где параметр id содержит указанные через запятую идентификаторы объединяемых записей.





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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
belavtomated
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
[QUOTE] пишет:


1. кидаем конфликтные данные в комментарий к лиду
[/QUOTE] А как именно Вы кидаете конфликтные данные в комментарий? Метод не возвращает никакой инфы какие поля конфликтуют
в моем кейсе они мне известны заранее, у меня чуть проще чем у вас)
0
Илья Фертиков
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:


1. кидаем конфликтные данные в комментарий к лиду
А как именно Вы кидаете конфликтные данные в комментарий? Метод не возвращает никакой инфы какие поля конфликтуют
1
belavtomated
Сообщение не промодерировано, возможны ошибки и неточности.
крайне не хватает возможности игнорировать конфликты, было бы круто иметь тут необязательный дополнительный параметр "IGNORE CONFLICT" == Y/N (N - установлен по умолчанию, если параметр не передается или не равен Y)

у всех же задача дела перенести и телефоны\почты, а не вот это вот все с конфликтами вручную  :cry:

коллеги из Б24, если боитесь что умники "наобъединяют" - сделайте тут в документации признак "ВНИМАНИЕ!!!", например  


Вот такой костыль придумал чтобы хотябы частично закрыть вопрос:

1. кидаем конфликтные данные в комментарий к лиду
2. удаляем данные в конфликтных полях - чтобы исключить конфликты между лидами (полный бред, ага)
3. после чего сущности объединились на автопилоте

но костыль работает в 80% случаев, часто бывает что конфликтует с "пустотой" (если открыть по ссылке /crm/lead/merge/?id=1,2,3 (Ручное объединение) - конфликты не подсвечиваются  :D  
9
Дмитрий М
Сообщение не промодерировано, возможны ошибки и неточности.
Очень не хватает в ответе списка конфликтующих полей если $result == CONFLICT
© «Битрикс», 2001-2024, «1С-Битрикс», 2024