• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/filter/companydataprovider.php
  • Класс: Bitrix\Crm\Filter\CompanyDataProvider
  • Вызов: CompanyDataProvider::prepareFields
public function prepareFields()
{
	$result = [
		'ID' => $this->createField('ID'),
		'TITLE' => $this->createField(
			'TITLE',
			[
				'default' => true,
				'data' => [
					'additionalFilter' => [
						'isEmpty',
						'hasAnyValue',
					],
				],
			]
		),
		'DATE_CREATE' => $this->createField(
			'DATE_CREATE',
			[
				'type' => 'date',
				'data' => [
					'additionalFilter' => [
						'isEmpty',
						'hasAnyValue',
					],
				],
			]
		),
		'DATE_MODIFY' => $this->createField(
			'DATE_MODIFY',
			[
				'type' => 'date',
				'data' => [
					'additionalFilter' => [
						'isEmpty',
						'hasAnyValue',
					],
				],
			]
		),
		'CREATED_BY_ID' => $this->createField(
			'CREATED_BY_ID',
			[
				'type' => 'entity_selector',
				'partial' => true,
			]
		),
		'MODIFY_BY_ID' => $this->createField(
			'MODIFY_BY_ID',
			[
				'type' => 'entity_selector',
				'partial' => true,
			]
		),
		'ACTIVITY_COUNTER' => $this->createField(
			'ACTIVITY_COUNTER',
			[
				'type' => 'list',
				'partial' => true
			]
		),
		'COMMUNICATION_TYPE' => $this->createField(
			'COMMUNICATION_TYPE',
			[
				'type' => 'list',
				'partial' => true
			]
		),
		'HAS_PHONE' => $this->createField(
			'HAS_PHONE',
			[
				'type' => 'checkbox'
			]
		),
		'PHONE' => $this->createField(
			'PHONE',
			[
				'default' => true
			]
		),
		'HAS_EMAIL' => $this->createField(
			'HAS_EMAIL',
			[
				'type' => 'checkbox'
			]
		),
		'EMAIL' => $this->createField(
			'EMAIL',
			[
				'default' => true
			]
		),
		'WEB' => $this->createField('WEB'),
		'IM' => $this->createField('IM'),
		'COMPANY_TYPE' => $this->createField(
			'COMPANY_TYPE',
			[
				'type' => 'list',
				'partial' => true
			]
		),
		'INDUSTRY' => $this->createField(
			'INDUSTRY',
			[
				'type' => 'list',
				'partial' => true
			]
		),
		'REVENUE' => $this->createField(
			'REVENUE',
			[
				'type' => 'number',
				'data' => [
					'additionalFilter' => [
						'isEmpty',
						'hasAnyValue',
					],
				],
			]
		),
		'CURRENCY_ID' => $this->createField(
			'CURRENCY_ID',
			[
				'type' => 'list',
				'partial' => true
			]
		),
		'EMPLOYEES' => $this->createField(
			'EMPLOYEES',
			[
				'type' => 'list',
				'partial' => true
			]
		),
		'COMMENTS' => $this->createField(
			'COMMENTS',
			[
				'data' => [
					'additionalFilter' => [
						'isEmpty',
						'hasAnyValue',
					],
				],
			]
		),
		'ASSIGNED_BY_ID' => $this->createField(
			'ASSIGNED_BY_ID',
			[
				'type' => 'entity_selector',
				'default' => true,
				'partial' => true,
			]
		)
	];

	if ($this->isActivityResponsibleEnabled())
	{
		$result['ACTIVITY_RESPONSIBLE_IDS'] = $this->createField(
			'ACTIVITY_RESPONSIBLE_IDS',
			[
				'type' => 'entity_selector',
				'partial' => true,
			]
		);
	}

	if($this->settings->checkFlag(CompanySettings::FLAG_ENABLE_ADDRESS))
	{
		$addressLabels = EntityAddress::getShortLabels();
		$result += [
			'ADDRESS' => $this->createField(
				'ADDRESS',
				[
					'name' => $addressLabels['ADDRESS']
				]
			),
			'ADDRESS_2' => $this->createField(
				'ADDRESS_2',
				[
					'name' => $addressLabels['ADDRESS_2']
				]
			),
			'ADDRESS_CITY' => $this->createField(
				'ADDRESS_CITY',
				[
					'name' => $addressLabels['CITY']
				]
			),
			'ADDRESS_REGION' => $this->createField(
				'ADDRESS_REGION',
				[
					'name' => $addressLabels['REGION']
				]
			),
			'ADDRESS_PROVINCE' => $this->createField(
				'ADDRESS_PROVINCE',
				[
					'name' => $addressLabels['PROVINCE']
				]
			),
			'ADDRESS_POSTAL_CODE' => $this->createField(
				'ADDRESS_POSTAL_CODE',
				[
					'name' => $addressLabels['POSTAL_CODE']
				]
			),
			'ADDRESS_COUNTRY' => $this->createField(
				'ADDRESS_COUNTRY',
				[
					'name' => $addressLabels['COUNTRY']
				]
			)
		];

		$regAddressLabels = EntityAddress::getShortLabels(Crm\EntityAddressType::Registered);
		$result += [
			'ADDRESS_LEGAL' => $this->createField(
				'ADDRESS_LEGAL',
				[
					'name' => $regAddressLabels['ADDRESS']
				]
			),
			'REG_ADDRESS_2' => $this->createField(
				'REG_ADDRESS_2',
				[
					'name' => $regAddressLabels['ADDRESS_2']
				]
			),
			'REG_ADDRESS_CITY' => $this->createField(
				'REG_ADDRESS_CITY',
				[
					'name' => $regAddressLabels['CITY']
				]
			),
			'REG_ADDRESS_REGION' => $this->createField(
				'REG_ADDRESS_REGION',
				[
					'name' => $regAddressLabels['REGION']
				]
			),
			'REG_ADDRESS_PROVINCE' => $this->createField(
				'REG_ADDRESS_PROVINCE',
				[
					'name' => $regAddressLabels['PROVINCE']
				]
			),
			'REG_ADDRESS_POSTAL_CODE' => $this->createField(
				'REG_ADDRESS_POSTAL_CODE',
				[
					'name' => $regAddressLabels['POSTAL_CODE']
				]
			),
			'REG_ADDRESS_COUNTRY' => $this->createField(
				'REG_ADDRESS_COUNTRY',
				[
					'name' => $regAddressLabels['COUNTRY']
				]
			)
		];
	}

	$result += [
		'WEBFORM_ID' => $this->createField(
			'WEBFORM_ID',
			[
				'type' => 'entity_selector',
				'partial' => true
			]
		),
		'ORIGINATOR_ID' => $this->createField(
			'ORIGINATOR_ID',
			[
				'type' => 'list',
				'partial' => true
			]
		),
	];

	if ($this->factory && $this->factory->isLastActivityEnabled())
	{
		$result['LAST_ACTIVITY_TIME'] = $this->createField(
			'LAST_ACTIVITY_TIME',
			[
				'type' => 'date',
				'partial' => true,
			]
		);
	}

	Crm\Tracking\UI\Filter::appendFields($result, $this);

	//region UTM
	foreach (Crm\UtmTable::getCodeNames() as $code => $name)
	{
		$result[$code] = $this->createField(
			$code,
			[
				'name' => $name,
				'data' => [
					'additionalFilter' => [
						'isEmpty',
						'hasAnyValue',
					],
				],
			]
		);
	}
	//endregion

	$parentFields = Container::getInstance()
		->getParentFieldManager()
		->getParentFieldsOptionsForFilterProvider(\CCrmOwnerType::Company)
	;
	foreach ($parentFields as $code => $parentField)
	{
		$result[$code] = $this->createField($code, $parentField);
	}

	return $result;
}