• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/discount/discountmanager.php
  • Класс: BitrixCatalogDiscountDiscountManager
  • Вызов: DiscountManager::loadIblockFields
static function loadIblockFields(array $productIds, array $fields): array
{
	if (isset($fields['DATE_ACTIVE_FROM']))
	{
		$fields['ACTIVE_FROM'] = $fields['DATE_ACTIVE_FROM'];
		unset($fields['DATE_ACTIVE_FROM']);
	}
	if (isset($fields['DATE_ACTIVE_TO']))
	{
		$fields['ACTIVE_TO'] = $fields['DATE_ACTIVE_TO'];
		unset($fields['DATE_ACTIVE_TO']);
	}

	$productData = [];

	CTimeZone::Disable();
	$elementIterator = IblockElementTable::getList([
		'select' => array_merge(['ID'], array_keys($fields)),
		'filter' => ['@ID' => $productIds]
	]);
	while ($element = $elementIterator->fetch())
	{
		$element['ID'] = (int)$element['ID'];
		foreach ($fields as $key => $alias)
		{
			if ($element[$key] instanceof MainTypeDateTime)
				$productData[$element['ID']][$alias] = $element[$key]->getTimestamp();
			else
				$productData[$element['ID']][$alias] = $element[$key];
		}
	}
	CTimeZone::Enable();

	return $productData;
}