docs: function f_kalemleri_by_page(_ihale_id, _tahta_id, _arama) {
          l.info("f_kalemleri_by_page");
  
          //anahtar yok
          //ihalenin aktif kalem idlerini çek
          //sonuçta result.kp.temp.ssetTahtaIhaleKalemleri(_tahta_id, _ihale_id) anahtarı oluşmuş olacaktır
          //böylece sayfalama işlemine geçebiliriz
  
          var defer = result.dbQ.Q.defer(),
              defer_kriter = result.dbQ.Q.defer();
  
          var sonuc = schema.f_create_default_object(schema.SCHEMA.LAZY_LOADING_RESPONSE);
  
          switch (_arama.Kriter) {
              case schema.SABIT.URL_QUERY.KRITER.TAKIPTEKILER:
              {
                  defer_kriter = f_tahtanin_takipteki_kalem_idleri(_ihale_id, _tahta_id);
                  break;
              }
              case schema.SABIT.URL_QUERY.KRITER.GIZLENENLER:
              {
                  defer_kriter = f_tahtanin_gizlenen_kalem_idleri(_ihale_id, _tahta_id);
                  break;
              }
              case schema.SABIT.URL_QUERY.KRITER.AKTIFLER:
              default:
                  defer_kriter = f_aktif_kalem_idler(_ihale_id, _tahta_id);
                  break;
          }
  
          defer_kriter.then(function (_cekilen_idler) {
                  if (!_cekilen_idler || _cekilen_idler.length == 0) {
  
                      sonuc.ToplamKayitSayisi = 0;
                      sonuc.Data = [];
                      defer.resolve(sonuc);
                  } else {
  
                      sonuc.ToplamKayitSayisi = _cekilen_idler.length;
  
                      //temp e ekle ve sonra da sil
                      var temp_key = "temp_tahta_ihale_kalem_" + _ihale_id;
                      result.dbQ.sadd(temp_key, _cekilen_idler)
                          .then(function () {
  
                              var baslangic = 0,
                                  bitis = 10;
  
                              if (_arama.Sayfalama) {
                                  baslangic = _arama.Sayfalama.Sayfa * _arama.Sayfalama.SatirSayisi;
                                  bitis = _arama.Sayfalama.SatirSayisi;
                              }
  
                              l.info("Baslangic: " + baslangic);
                              l.info("Bitis: " + bitis);
  
                              result.dbQ.sort(temp_key, "LIMIT", baslangic, bitis)
                                  .then(/**
                                   *
                                   * @param {string[]} _kalem_idler
                                   */
                                  function (_kalem_idler) {
  
                                      //temp ile işimiz bitti sil
                                      result.dbQ.del(temp_key);
  
                                      if (_kalem_idler && _kalem_idler.length > 0) {
                                          var db_kalem = require('./db_kalem');
  
                                          /** @type {OptionsKalem} */
                                          var opt = {};
                                          opt.bArrTeklifleri = false;
                                          opt.bOnayDurumu = true;
                                          opt.bTakiptemi = true;
  
                                          db_kalem.f_db_kalem_id(_kalem_idler, _tahta_id, opt)
                                              .then(function (_dbKalemler) {
                                                  sonuc.Data = [].concat(_dbKalemler);
                                                  defer.resolve(sonuc);
                                              });
                                      } else {
                                          sonuc.Data = [];
                                          defer.resolve(sonuc);
                                      }
                                  });
                          });
                  }
  
              })
              .fail(function (_err) {
                  defer.reject("İhaleye bağlı kalemler sayfalı çekilemedi!", "HATA MESAJI:" + _err);
              });
  
          return defer.promise;
      }