Для собственного компонента создаю собстенное поле формы. На выходе должно получиться поле SELECT и один из OPTION должен иметь атрибут SELECTED. 
Что я делаю:
1) создаю класс, расширяемый от JFormFieldList
2) переопределяю метод getOptions(), в нем получаю выборку из БД
3) там же проганяю выборку в цыкле чтоб сформировать нужный массив
4) при формировании массива добавляю для нужного элемента $options[$i]->selected = true, т.е. OPTION с этим элементом получит атрибут SELECTED
5) отрабатываю родительский функционал
В результате нужный мне OPTION поля SELECT получается без SELECTED. Почему-то $options[$i]->selected = true не дает нужный результат, хотя $options[$i]->disable = true добавляет атрибут DISABLED вполне нормально.
Код приложил ниже.
<?php 
defined('_JEXEC') or die('Restricted access');
// подключаем функционал класса JFormFieldList
JFormHelper::loadFieldClass('list');
// JFormFieldSectionparent - клас поля sectionparent XML-формы. Этот класс должен наследовать JFormFieldList
class JFormFieldSectionparent extends JFormFieldList {
	
	// объявляем название пользовательского типа поля
	protected $type='sectionparent';
	
	// getOptions() - метод род. класса должен возвращать массив для элементов <option> для поля <select>
	protected function getOptions() {
		
		// массив для элементов <option>
		$options = array();
		
		// получаем объект подключения к БД
		$db = JFactory::getDbo(); 
		// формируем запрос
		$query = $db->getQuery(true); 
		$query->select('s.id as value, s.title AS text, s.level');
		$query->from('#__zagotovka_sections AS s');
		$query->order('lft ASC');
		
		// назначаем запрос в качестве текущего
		$db->setQuery($query);
		
		// пробуем выполнить запрос
		try 
		{
			// выполняем запрос. Получаем массив объектов с данными
			$options = $db->loadObjectList();
		}
		// если  не удалось выполнить запрос
		catch(RuntimeException $e) 
		{
			// выводим ошибку ($e->getMessage())
			JFactory::getApplication()->enqueueMessage($e->getMessage(),'error');
			return false;
		}
		
		// получаем id текущего редактируемого элемента
		$app 		= JFactory::getApplication();
		$jinput 	= $app->input;
		$currentId 	= $jinput->get('id', 0);
		/*
		// если создается новый элемент, и в фильтре был выбран родитель
		if ($currentId == 0)
		{
			$filterParent = $session->get('registry.data.com_zagotovka.elements.filter.catid', NULL);
		}
		*/
		
		// формируем массив с элементами для <option> 
		if($options) 
		{
			for($i = 0;$i < count($options);$i++) 
			{
				// какое-то условие, при котором элемент формы должен получить атрибут SELECTED
				if ($i == 7)
				{
					$options[$i]->selected = true;
				}	
				// обозначаем главного родителя
				if ($options[$i]->level == 0)
				{
					$options[$i]->text = JText::_('JGLOBAL_ROOT_PARENT');
				}
				
				// отменяем возможность выбрать родителем самого себя
				if ($options[$i]->value == $currentId)
				{
					$options[$i]->disable = true; 
				}
				
				// добавляем отступы для отображения в виде дерева
				$options[$i]->text = str_repeat('- ', $options[$i]->level). $options[$i]->text;
			}
		}
		return array_merge(parent::getOptions(), $options);
	}
}