• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/data/datamanager.php
  • Класс: Bitrix\Main\ORM\Data\DataManager
  • Вызов: DataManager::checkFields
static function checkFields(Result $result, $primary, array $data)
{
	$entity = static::getEntity();
	//checks required fields
	foreach ($entity->getFields() as $field)
	{
		if ($field instanceof ScalarField && $field->isRequired())
		{
			$fieldName = $field->getName();
			if (
				(empty($primary) && (!isset($data[$fieldName]) || $field->isValueEmpty($data[$fieldName])))
				|| (!empty($primary) && isset($data[$fieldName]) && $field->isValueEmpty($data[$fieldName]))
			)
			{
				$result->addError(new FieldError(
					$field,
					Loc::getMessage("MAIN_ENTITY_FIELD_REQUIRED", array("#FIELD#"=>$field->getTitle())),
					FieldError::EMPTY_REQUIRED
				));
			}
		}
	}

	// checks data - fieldname & type & strlen etc.
	foreach ($data as $k => $v)
	{
		if ($entity->hasField($k))
		{
			$field = $entity->getField($k);

		}
		else
		{
			throw new Main\ArgumentException(sprintf(
				'Field `%s` not found in entity when trying to query %s row.',
				$k, $entity->getName()
			));
		}

		$field->validateValue($v, $primary, $data, $result);
	}
}