• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/controller/item.php
  • Класс: BitrixRpaControllerItem
  • Вызов: Item::processFields
protected function processFields(BitrixRpaModelItem $item, array $fields): void
{
	$userFieldCollection = $item->getType()->getUserFieldCollection();
	foreach($userFieldCollection as $userField)
	{
		if(!isset($fields[$userField->getName()]))
		{
			continue;
		}

		if(empty($fields[$userField->getName()]))
		{
			$item->set($userField->getName(), null);
			continue;
		}

		if($userField->isBaseTypeFile())
		{
			$this->processFileField($userField, $item, $fields);
		}
		elseif($this->getScope() === self::SCOPE_REST && $userField->isBaseTypeDate())
		{
			if($userField->getUserTypeId() === DateTimeType::USER_TYPE_ID)
			{
				$convertDateMethod = 'unConvertDateTime';
			}
			else
			{
				$convertDateMethod = 'unConvertDate';
			}
			if($userField->isMultiple())
			{
				$result = [];
				$value = $fields[$userField->getName()];
				if(!is_array($value))
				{
					$value = [$value];
				}
				foreach($value as $date)
				{
					$result[] = CRestUtil::$convertDateMethod($date);
				}
				$item->set($userField->getName(), $result);
			}
			else
			{
				$item->set($userField->getName(), CRestUtil::$convertDateMethod($fields[$userField->getName()]));
			}
		}
		else
		{
			$item->set($userField->getName(), $fields[$userField->getName()]);
		}
	}
}