Комплексные идентификаторы
\Bitrix\Crm\ItemIdentifier
и \Bitrix\Crm\RelationIdentifier
хранят данные, по которым можно однозначно идентифицировать что-либо. В случае с ItemIdentifier
- это конкретный элемент какой-либо сущности (например, конкретная сделка с ID = 74). А в случае с RelationIdentifier
- конкретный тип связи.
Объекты обоих классов являются объектами-значениями и поэтому неизменяемы. Значения их параметров передаются в __construct
и после не могут быть установлены заново. Если же нужно изменить какое-либо значение, нужно создать новый объект на основе старого.
При создании объектов обоих классов данные валидируются.
Оба класса доступны с обновления crm 20.700.0. Не забудьте поставить зависимость!
ItemIdentifier
Объект ItemIdentifier
хранит в себе entityTypeId
и entityId
, по которым можно однозначно идентифицировать элемент.
Конструктор имеет следующую сигнатуру:
__construct(int $entityTypeId, int $entityId)
- entityTypeId - константа
\CCrmOwnerType
, например\CCrmOwnerType::Lead
. Значение должно соответствовать реально существующему типу сущности (\CCrmOwnerType::IsDefined
). Иначе будет выброшено исключение. - entityId - ID элемента. Например, ID конкретной сделки. Должен быть больше 0, иначе будет выброшено исключение.
Также объект может быть создан на основании \Bitrxi\Crm\Item
с помощью метода \Bitrix\Crm\ItemIdentifier::createByItem
.
RelationIdentifier
Объект RelationIdentifier
хранит в себе parentEntityTypeId
и childEntityTypeId
, по которым можно однозначно идентифицировать тип связи.
Конструктор имеет следующую сигнатуру:
__construct(int $parentEntityTypeId, int $childEntityTypeId)
- parentEntityTypeId - константа
\CCrmOwnerType
, например\CCrmOwnerType::Lead
. Указывает, какой тип сущности является родительским в данной связи. Должно быть больше нуля, иначе будет выброшено исключение. - childEntityTypeId - аналогично
parentEntityTypeId
. Указывает, какой тип сущности является потомком в данной связи. Должно быть больше нуля, иначе будет выброшено исключение.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.