• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/Configuration/Configuration.php
  • Класс: BitrixImConfigurationConfiguration
  • Вызов: Configuration::getListAvailablePresets
static function getListAvailablePresets(int $userId): array
{
	$query =
		OptionGroupTable::query()
			->setSelect(['ID', 'NAME'])
			->registerRuntimeField(
				'OPTION_ACCESS',
				new Reference(
					'OPTION_ACCESS',
					OptionAccessTable::class,
					Join::on('this.ID', 'ref.GROUP_ID'),
					['join_type' => Join::TYPE_INNER]
				)
			)
			->registerRuntimeField(
				'USER_ACCESS',
				new Reference(
					'USER_ACCESS',
					UserAccessTable::class,
					Join::on('this.OPTION_ACCESS.ACCESS_CODE', 'ref.ACCESS_CODE'),
					['join_type' => Join::TYPE_INNER]
				)
			)
			->where('USER_ACCESS.USER_ID', $userId)
	;
	$presets = [];
	foreach ($query->exec() as $row)
	{
		$presets[] = [
			'id' => $row['ID'],
			'name' => self::getPresetName($row),
		];
	}

	return $presets;
}