Блин, надеюсь, уловили мою мысль 
По поводу хелперов - тут надо осторожно. По сути zomby6888 прав - обычно их используют как помощников представлений. А вот когда модель использует хелпер для возврата результатов - нужно задуматься об архитектуре приложения. Что-то тут не так.
Мысль уловил, спасибо. Но как тогда быть в следующей ситуации (реализация обсуждалась неоднократно выше):
вьюха выводит список операций по договору, getListQuery() в модели через состояние модели получает номер договора для формирования запроса, по сути номер договора является параметром: контроллер получает номер договора из реквеста и отсылает его в состояние модели (возможно, неправильно выразился, но ВЫ, надеюсь, меня поняли):
class MfoControllerDocumc extends JControllerLegacy
{
  public function work()
  {
    $uri = JFactory::getURI();
    JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
    $ulogin = JFactory::getUser()->username;
    $loan = $this->input->getString('loan', '');
    $dtmin = JFactory::getDate($this->input->getString('dtfrom', ''))->format('Y-m-d');
    $dtmax = JFactory::getDate($this->input->getString('dtto', ''))->format('Y-m-d');
    
    $model = $this->getModel('raspisanie');
    $model->setState('login', $ulogin);
    $model->setState('loan', $loan);
    $model->setState('dtmin', $dtmin);
    $model->setState('dtmax', $dtmax);
    
    $view = $this->getView('Documc', 'html');
    $view->setModel($model, true);
    $this->setRedirect(JRoute::_($uri));
  }
}
В модели:
  protected function getListQuery()
  {
    $ulogin = $this->getState('login');
    $loan = $this->getState('loan');
    $dtmin = $this->getState('dtmin');
    $dtmax = $this->getState('dtmax');
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
    $query->select('odate, docname, adebet, acredit, pdebet, pcredit, sdebet, scredit')
          ->from('#__mfo_docums')
          ->where('(client = '.$db->quote($ulogin).')')
          ->where('(loan = '.$db->quote($loan).')');
В этой же вьюхе необходимо вывести информацию по договору, чья история операция выводится:
Во вьюхе: $item_loan = $this->get('LoanData'); - далее выводим в HTML содержание $item_loan.
В модели:
  public function getLoanData()
  {
    $ulogin = $this->getState('login');
    $loan = $this->getState('loan');
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);      
    $query->select('bdate, edate, term, prc, sm, rest, arest, prest, srest')
          ->from('#__mfo_loans')
          ->where('client = '.$db->quote($ulogin))
          ->where('num = '.$db->quote($loan));
    return $db->setQuery($query)->loadObject();
  }
Но поскольку типов договоров несколько, для каждого типа договора своя история и своя вьюха, а функция получения информации по договору для всех вьюх одна, произвожу рефакторинг:
В каждой модели, где получаются данные по операциям:
  public function getLoanData()
  {
    $ulogin = $this->getState('login');
    $loan = $this->getState('loan');
    return MfoHelper::DocumsLoanData($ulogin, $loan);
  }
В хелпере:
  public static function DocumsLoanData($ulogin, $loan)
  {
    $db = JFactory::getDbo();
    $query = $db->getQuery(true);      
    $query->select('bdate, edate, term, prc, sm, rest, arest, prest, srest')
          ->from('#__mfo_loans')
          ->where('client = '.$db->quote($ulogin))
          ->where('num = '.$db->quote($loan));
    return $db->setQuery($query)->loadObject();
  }
Насколько это правильно? Иди же необходимо непосредственно из вьюхи вызывать метод в хелпере, который сам дернет параметры из реквеста?
(код не проверен, прямо сюда писал)