Комплексные идентификаторы
\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
. Указывает, какой тип сущности является потомком в данной связи. Должно быть больше нуля, иначе будет выброшено исключение.