• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Service/Display/Field.php
  • Класс: Bitrix\Crm\Service\Display\Field
  • Вызов: Field::getInstance
static function getInstance(string $type, string $id): Field
{
	if ($type === StringField::TYPE)
	{
		return new StringField($id);
	}

	// @todo support later if needed
	// if ($type === 'status')
	// {
	// 	return new StatusField($id);
	// }

	if ($type === PaymentStatusField::TYPE)
	{
		return new PaymentStatusField($id);
	}

	if ($type === DeliveryStatusField::TYPE)
	{
		return new DeliveryStatusField($id);
	}

	if ($type === HlBlockField::TYPE)
	{
		return new HlBlockField($id);
	}

	if ($type === TextField::TYPE)
	{
		return new TextField($id);
	}

	if ($type === DateField::TYPE)
	{
		return new DateField($id);
	}

	if ($type === DateTimeField::TYPE)
	{
		return new DateTimeField($id);
	}

	if ($type === EnumerationField::TYPE)
	{
		return new EnumerationField($id);
	}

	if ($type === EmployeeField::TYPE)
	{
		return new EmployeeField($id);
	}

	if ($type === FileField::TYPE)
	{
		return new FileField($id);
	}

	if ($type === IblockElementField::TYPE)
	{
		return new IblockElementField($id);
	}

	if ($type === IblockSectionField::TYPE)
	{
		return new IblockSectionField($id);
	}

	if ($type === UserField::TYPE)
	{
		return new UserField($id);
	}

	if ($type === ResourceBookingField::TYPE)
	{
		return new ResourceBookingField($id);
	}

	if ($type === MoneyField::TYPE)
	{
		return new MoneyField($id);
	}

	if ($type === AddressField::TYPE)
	{
		return new AddressField($id);
	}

	if ($type === UrlField::TYPE)
	{
		return new UrlField($id);
	}

	if ($type === BooleanField::TYPE)
	{
		return new BooleanField($id);
	}

	if (in_array($type, ['number', 'double', 'integer', 'float'], true))
	{
		return new NumberField($id);
	}

	if ($type === CrmStatusField::TYPE)
	{
		return new CrmStatusField($id);
	}

	if ($type === CrmCurrencyField::TYPE)
	{
		return new CrmCurrencyField($id);
	}

	$crmField = static::resolveCrmField($type, $id);
	if ($crmField)
	{
		return $crmField;
	}

	return new OtherField($id);
}