docs: function f_kalem_onay_durumu(_kalem_id, _tahta_id) {
  
          var defer = result.dbQ.Q.defer();
  
          //noinspection JSValidateTypes
          if (!_tahta_id && _tahta_id === 0) {
              defer.resolve({Id: 2, Baslik: "İlk Kayıt"});
              //throw new exception.Istisna("Kalem onay durumu çekilemedi", "Tahta_id bilgisi kalemin onay durumu çekilirken boş bırakılamaz!");
          }
  
          // birden fazla satir_id için hmget_json_parse ile çekilebilir şekilde yazılacak
          (Array.isArray(_kalem_id)
              ? result.dbQ.hmget_json_parse(result.kp.tahta.hsetKalemOnayDurumlari(_tahta_id), _kalem_id)
              : result.dbQ.hget_json_parse(result.kp.tahta.hsetKalemOnayDurumlari(_tahta_id), _kalem_id))
              .then(function (_durum) {
  
                  function f_kalem_durumu(_kalemDurumu) {
                      return _kalemDurumu || {Id: 2, Baslik: "İlk Kayıt"};
                  }
  
                  return Array.isArray(_durum)
                      ? _durum.map(f_kalem_durumu)
                      : f_kalem_durumu(_durum)
  
              })
              .then(function (_res) {
                  defer.resolve(_res);
              })
              .fail(function (_err) {
                  defer.reject("Kalem onay durumu çekilirken hata alındı:", _err);
              });
  
          return defer.promise;
      }