• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/orderprops.php
  • Класс: BitrixSaleInternalsOrderPropsTable
  • Вызов: OrderPropsTable::onBeforeUpdate
static function onBeforeUpdate(Event $event): EventResult
{
	$result = new EventResult;
	$fields = $event->getParameter('fields');

	$modifyFieldList = [];
	if (isset($fields['IS_FILTERED']) || isset($fields['MULTIPLE']))
	{
		$multiple = null;
		$filtered = null;
		if (isset($fields['MULTIPLE']))
		{
			$multiple = $fields['MULTIPLE'];
		}
		if (isset($fields['IS_FILTERED']))
		{
			$filtered = $fields['IS_FILTERED'];
		}

		if ($multiple === null || $filtered === null)
		{
			$primary = $event->getParameter('primary');
			$row = static::getRow([
				'select' => [
					'ID',
					'MULTIPLE',
					'IS_FILTERED'
				],
				'filter' => $primary,
			]);
			if ($row)
			{
				$multiple ??= $row['MULTIPLE'];
				$filtered ??= $row['IS_FILTERED'];
			}
		}
		if (
			$multiple === 'Y'
			&& $filtered !== 'N'
		)
		{
			$modifyFieldList['IS_FILTERED'] = 'N';
		}
	}

	if (!empty($modifyFieldList))
	{
		$result->modifyFields($modifyFieldList);
	}

	return $result;
}