/**
  * Разбитый на страницы набор данных
  *
  * @return CArrayList
  */
 public function getPaginated()
 {
     /**
      * Разбивка на страницы на случай, если записи добавлялись вручную
      * и на случай, если рекордсет получен из таблицы
      */
     if ($this->_manualAdded) {
         $res = new CArrayList();
         $i = 0;
         $start = ($this->getCurrentPage() - 1) * $this->getPageSize();
         $end = $this->getCurrentPage() * $this->getPageSize();
         foreach ($this->getItems() as $key => $value) {
             if ($i >= $start && $i < $end) {
                 $res->add($key, $value);
             }
             $i++;
         }
         return $res;
     } else {
         $res = new CArrayList();
         $query = $this->getQuery();
         /**
          * Использование глобального поиск и глобальных сортировок
          */
         if ($this->_useGlobalSearch) {
             // глобальный поиск
             $globalFilter = CRequest::getGlobalFilter();
             if ($globalFilter["field"] !== false) {
                 $condition = $query->getCondition();
                 if (is_numeric($globalFilter["value"])) {
                     if ($condition != "") {
                         $condition .= " AND " . $globalFilter["field"] . '=' . $globalFilter["value"];
                     } else {
                         $condition = $globalFilter["field"] . '=' . $globalFilter["value"];
                     }
                 } else {
                     if ($condition != "") {
                         $condition .= " AND " . $globalFilter["field"] . " like '%" . $globalFilter["value"] . "%'";
                     } else {
                         $condition = $globalFilter["field"] . " like '%" . $globalFilter["value"] . "%'";
                     }
                 }
                 $query->condition($condition);
             }
             // глобальные сортировки
             $globalOrder = CRequest::getGlobalOrder();
             if ($globalOrder["field"] !== false) {
                 $query->order($globalOrder["field"] . " " . $globalOrder["direction"]);
             }
         }
         /**
          * Использование глобального ограничения доступа
          */
         if ($this->_isAclControlledSet) {
             $this->updateQueryForACLLimitations();
         }
         if ($this->getPageSize() != PAGINATION_ALL) {
             $start = ($this->getCurrentPage() - 1) * $this->getPageSize();
             $query->limit($start, $this->getPageSize());
         }
         $items = $query->execute();
         foreach ($items->getItems() as $item) {
             $ar = new CActiveRecord($item);
             $ar->setTable($query->getTable());
             $res->add($ar->getId(), $ar);
         }
         return $res;
     }
 }