• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/integration/crm/connectors/lead.php
  • Класс: Bitrix\Sender\Integration\Crm\Connectors\Lead
  • Вызов: Lead::getUiFilterFields
static function getUiFilterFields(bool $checkAccessRights = true): array
{
	$list = [
		[
			'id' => 'EMAIL',
			'type' => 'string',
			'sender_segment_filter' => '%EMAIL',
			'sender_internal' => true
		],
		[
			'id' => 'PHONE',
			'type' => 'string',
			'sender_segment_filter' => '%PHONE',
			'sender_internal' => true
		],
		[
			'id' => 'NAME',
			'type' => 'string',
			'sender_segment_filter' => '%NAME',
			'sender_internal' => true
		],
	];

	$list[] = array(
		"id" => "DATE_CREATE",
		"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_DATE_CREATE'),
		"type" => "date",
		"include" => [
			AdditionalDateType::CUSTOM_DATE,
			AdditionalDateType::PREV_DAY,
			AdditionalDateType::NEXT_DAY,
			AdditionalDateType::MORE_THAN_DAYS_AGO,
			AdditionalDateType::AFTER_DAYS,
		],
		"allow_years_switcher" => true,
		"default" => true
	);

	$list[] = array(
		"id" => "STATUS_ID",
		"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_STATUS_ID'),
		"type" => "list",
		"items" => \CCrmStatus::GetStatusList('STATUS'),
		"default" => true,
		'params' => array('multiple' => 'Y'),
	);

	$list[] = array(
		"id" => "SOURCE_ID",
		"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_SOURCE_ID'),
		"type" => "list",
		"items" => \CCrmStatus::GetStatusList('SOURCE'),
		"default" => true,
		'params' => array('multiple' => 'Y'),
	);

	$list[] = array(
		'id' => 'COMMUNICATION_TYPE',
		"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_COMMUNICATION_TYPE'),
		'params' => array('multiple' => 'Y'),
		'default' => true,
		'type' => 'list',
		'items' => \CCrmFieldMulti::PrepareListItems(array(
			\CCrmFieldMulti::PHONE,
			\CCrmFieldMulti::EMAIL,
			\CCrmFieldMulti::IM
		)),
		'filter_callback' => ['\Bitrix\Sender\Integration\Crm\Connectors\Helper', 'getCommunicationTypeFilter']
	);

	$list[] = PhaseSemantics::getListFilterInfo(
		\CCrmOwnerType::Lead,
		array(
			'id' => 'STATUS_SEMANTIC_ID',
			"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_STATUS_SEMANTIC_ID'),
			'default' => true,
			'params' => array('multiple' => 'Y'),
		),
		true
	);

	$list[] = array(
		'id' => 'PRODUCT_ROW.PRODUCT_ID',
		"name" => Loc::getMessage("SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_PRODUCT_ID"),
		'default' => true,
		'type' => 'dest_selector',
		'partial' => true,
		'params' => array(
			'multiple' => 'Y',
			'apiVersion' => 3,
			'context' => 'CRM_LEAD_FILTER_PRODUCT_ID',
			'contextCode' => 'CRM',
			'useClientDatabase' => 'N',
			'enableAll' => 'N',
			'enableDepartments' => 'N',
			'enableUsers' => 'N',
			'enableSonetgroups' => 'N',
			'allowEmailInvitation' => 'N',
			'allowSearchEmailUsers' => 'N',
			'departmentSelectDisable' => 'Y',
			'addTabCrmProducts' => 'Y',
			'enableCrm' => 'Y',
			'enableCrmProducts' => 'Y',
			'convertJson' => 'Y'
		)
	);

	$list[] = array(
		"id" => "STATUS_CONVERTED",
		"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_STATUS_CONVERTED'),
		'type' => 'checkbox',
		'sender_segment_filter' => array(
			'N' => array('=STATUS_SEMANTIC_ID', PhaseSemantics::PROCESS),
			'Y' => array('!=STATUS_SEMANTIC_ID', PhaseSemantics::PROCESS),
		),
		"default" => false,
	);

	$list[] = array(
		"id" => "ASSIGNED_BY_ID",
		"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_ASSIGNED_BY_ID'),
		'type' => 'dest_selector',
		'params' => array(
			'context' => 'SENDER_LEAD_FILTER_ASSIGNED_BY_ID',
			'multiple' => 'Y',
			'contextCode' => 'U',
			'enableAll' => 'N',
			'enableSonetgroups' => 'N',
			'allowEmailInvitation' => 'N',
			'allowSearchEmailUsers' => 'N',
			'departmentSelectDisable' => 'Y',
			'isNumeric' => 'Y',
			'prefix' => 'U'
		),
		"default" => false,
	);

	$list[] = array(
		"id" => "POST",
		'type' => 'string',
		"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_POST'),
		'params' => array('multiple' => 'Y'),
		"default" => false
	);

	$list[] = array(
		"id" => "BIRTHDATE",
		"name" => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_BIRTHDATE'),
		'type' => 'date',
		"include" => [
			AdditionalDateType::CUSTOM_DATE,
			AdditionalDateType::PREV_DAY,
			AdditionalDateType::NEXT_DAY,
			AdditionalDateType::MORE_THAN_DAYS_AGO,
			AdditionalDateType::AFTER_DAYS,
		],
		"allow_years_switcher" => true,
		"default" => false,
	);

	$list[] = array(
		'id' => 'HONORIFIC',
		'name' => Loc::getMessage('SENDER_INTEGRATION_CRM_CONNECTOR_LEAD_FIELD_HONORIFIC'),
		'params' => array('multiple' => 'Y'),
		'default' => false,
		'type' => 'list',
		'items' => \CCrmStatus::GetStatusList('HONORIFIC'),
	);

	return array_merge($list, Helper::getFilterUserFields(\CCrmOwnerType::Lead, $checkAccessRights));
}