• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/FieldSet/Factory.php
  • Класс: Bitrix\Crm\FieldSet\Factory
  • Вызов: Factory::save
public function save(Item $item): Main\Result
{
	$result = new Main\Result();
	if (!CCrmOwnerType::isCorrectEntityTypeId($item->getEntityTypeId()))
	{
		$result->addError(new Main\Error('Wrong primary entity type ID.'));
		return $result;
	}

	if (!in_array($item->getClientEntityTypeId(), [CCrmOwnerType::Contact, CCrmOwnerType::Company], true))
	{
		$result->addError(new Main\Error('Wrong client entity type ID.'));
		return $result;
	}

	$data = [
		'ENTITY_TYPE_ID' => $item->getEntityTypeId(),
		'CLIENT_ENTITY_TYPE_ID' => $item->getClientEntityTypeId(),
		'RQ_PRESET_ID' => $item->getRequisitePresetId(),
		'FIELDS' => $item->getFields(),
		'CODE' => $item->getCode(),
		'IS_SYSTEM' => (int)$item->isSystem(),
		//'TITLE' => '',
	];

	if (!$item->getId())
	{
		$result = Model\FieldSetTable::add($data);
		if ($result->isSuccess())
		{
			$item->setId($result->getId());
		}
	}
	else
	{
		unset($data['CODE'], $data['IS_SYSTEM']);
		$result = Model\FieldSetTable::update($item->getId(), $data);
	}

	return $result;
}