• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/fieldsynchronizer.php
  • Класс: Bitrix\Crm\WebForm\FieldSynchronizer
  • Вызов: FieldSynchronizer::orderSchemaEntities
private function orderSchemaEntities($schema) : \Generator
{
	$priorityQueue = new \SplPriorityQueue();

	foreach ($schema['ENTITIES'] as $entity)
	{
		if (in_array($entity, [\CCrmOwnerType::ContactName, \CCrmOwnerType::CompanyName], true))
		{
			$priority = $entity === \CCrmOwnerType::ContactName? 200 : 100;
		}
		$priority = $priority ?? 300;
		$priorityQueue->insert($entity, $priority);
	}

	for (;$priorityQueue->valid();$priorityQueue->next())
	{
		yield $priorityQueue->current();
	}

}