• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/v2/Fields/FieldStorage.php
  • Класс: BitrixCatalogv2FieldsFieldStorage
  • Вызов: FieldStorage::markChanged
private function markChanged($name, $value): bool
{
	$oldValue = $this->getField($name);

	if ($oldValue !== $value || ($oldValue === null && $value === null))
	{
		$originalValue = null;

		if (isset($this->originalFields[$name]) || array_key_exists($name, $this->originalFields))
		{
			$originalValue = $this->originalFields[$name];
		}
		elseif (isset($this->fields[$name]) || array_key_exists($name, $this->fields))
		{
			$originalValue = $this->fields[$name];
		}

		if ($originalValue === $value)
		{
			unset($this->changedFields[$name], $this->originalFields[$name]);

			return true;
		}

		if (!isset($this->originalFields[$name]) || !array_key_exists($name, $this->originalFields))
		{
			$this->originalFields[$name] = $oldValue;
		}

		$this->changedFields[$name] = true;

		return true;
	}

	return false;
}