• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/automation/trigger/fieldchangedtrigger.php
  • Класс: Bitrix\Crm\Automation\Trigger\FieldChangedTrigger
  • Вызов: FieldChangedTrigger::getFields
static function getFields($entityTypeId): array
{
	$fields = array_values(Bizproc\Automation\Helper::getDocumentFields(
		\CCrmBizProcHelper::ResolveDocumentType($entityTypeId))
	);

	$filter = function ($field) use ($entityTypeId)
	{
		$id = $field['Id'];

		if (
			$id === 'ID'
			|| $id === 'LEAD_ID'
			|| $id === 'DEAL_ID'
			|| $id === 'CONTACT_ID'
			|| $id === 'CONTACT_IDS'
			|| $id === 'COMPANY_ID'
			|| $id === 'CREATED_BY_ID'
			|| $id === 'MODIFY_BY_ID'
			|| $id === 'DATE_CREATE'
			|| $id === 'DATE_MODIFY'
			|| $id === 'WEBFORM_ID'
			|| $id === 'STATUS_ID'
			|| $id === 'STAGE_ID'
			|| $id === 'CATEGORY_ID'
			|| $id === 'ORIGINATOR_ID'
			|| $id === 'ORIGIN_ID'
			|| $field['Type'] === 'phone'
			|| $field['Type'] === 'web'
			|| $field['Type'] === 'email'
			|| $field['Type'] === 'im'
			|| strpos($id, 'EVENT_') === 0
			|| strpos($id, 'PHONE_') === 0
			|| strpos($id, 'WEB_') === 0
			|| strpos($id, 'EMAIL_') === 0
			|| strpos($id, 'IM_') === 0
			|| strpos($id, 'OPPORTUNITY') !== false
			|| strpos($id, 'CURRENCY_ID') !== false
			|| strpos($id, 'ASSIGNED_BY') !== false
			|| strpos($id, 'RESPONSIBLE') !== false
			|| strpos($id, '.') !== false
			|| strpos($id, '_PRINTABLE') !== false
			|| ($entityTypeId === \CCrmOwnerType::Order && strpos($id, 'UF_') === 0)
		)
		{
			return false;
		}

		return true;
	};

	return array_values(array_filter($fields, $filter));
}