• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/entity/field.php
  • Класс: BitrixListsEntityField
  • Вызов: Field::adjustmentFields
private function adjustmentFields($fields)
{
	foreach ($fields as $fieldId => &$field)
	{
		if ($field["TYPE"] == "ACTIVE_FROM")
		{
			if ($field["DEFAULT_VALUE"] === "=now")
				$field["DEFAULT_VALUE"] = ConvertTimeStamp(time()+CTimeZone::getOffset(), "FULL");
			elseif ($field["DEFAULT_VALUE"] === "=today")
				$field["DEFAULT_VALUE"] = ConvertTimeStamp(time()+CTimeZone::getOffset(), "SHORT");
		}
		elseif ($field["TYPE"] == "L")
		{
			$option = [];
			$propertyEnum = CIBlockProperty::getPropertyEnum($field["ID"]);
			while ($listEnum = $propertyEnum->fetch())
			{
				if ($listEnum["DEF"] === "Y")
				{
					$field["DEFAULT_VALUE"] = $listEnum["ID"];
				}
				$option[$listEnum["ID"]] = $listEnum["VALUE"];
			}
			$field["DISPLAY_VALUES_FORM"] = $option;
		}
		elseif ($field["TYPE"] == "G")
		{
			$option = [];
			$sections = CIBlockSection::getTreeList(["IBLOCK_ID" => $field["LINK_IBLOCK_ID"]]);
			while ($section = $sections->getNext())
				$option[$section["ID"]] = str_repeat(" . ", $section["DEPTH_LEVEL"]).$section["~NAME"];
			$field["DISPLAY_VALUES_FORM"] = $option;
		}
		elseif (preg_match("/^(E|E:)/", $field["TYPE"]))
		{
			$option = [];
			$elements = CIBlockElement::getList(["NAME"=>"ASC"],
				["IBLOCK_ID" => $field["LINK_IBLOCK_ID"]], false, false, ["ID", "NAME"]);
			while ($element = $elements->fetch())
				$option[$element["ID"]] = $element["NAME"];
			$field["DISPLAY_VALUES_FORM"] = $option;
		}
		elseif ($field["TYPE"] == "N:Sequence")
		{
			$sequence = new CIBlockSequence($field["IBLOCK_ID"], $field["ID"]);
			$field["USER_TYPE_SETTINGS"]["VALUE"] = $sequence->getNext();
		}
	}

	return $fields;
}