Erp Asistanı Erp Asistanı
Mikro SQL

Mikro v17 Tablo Yapısı: Yeni Sistem Kolonları, Varyant Tabloları ve Temel Tablolar Rehberi

Mikro v17 (Mikro Desktop) veritabanı tablo haritası: STOKLAR, STOK_HAREKETLERI, CARI_HESAP_HAREKETLERI, v17 ile gelen dokuz sistem kolonu, CARI_HESAP_BAKIYELERI, varyant tabloları, fonksiyon imzaları ve gerçek v17 veritabanında çalıştırılmış örnek SQL'ler.

Erp Asistanı Erp Asistanı Editör ekibi 11 dk okuma
Mikro v17 Tablo Yapısı: Yeni Sistem Kolonları, Varyant Tabloları ve Temel Tablolar Rehberi

Mikro v17 (Mikro Desktop), v16'nın tablo düzenini korur ama üstüne yenilerini ekler: neredeyse her tabloya dokuz yeni sistem kolonu gelir, açık bakiyeler için ayrı bir tablo oluşur, beden ve renk bilgisi varyant tablolarına taşınır, bakiye fonksiyonları bir parametre daha ister. Bu rehber yalnızca Mikro v17 veritabanını anlatır: tablo haritası, v17 ile gelen kolon ve tablolar, kod sözlükleri, fonksiyon imzaları ve örnek sorgular. Yazıdaki kolon adları, fonksiyon imzaları ve sorgular gerçek bir v17 veritabanında çalıştırılarak doğrulanmıştır.

Önce: veritabanınız gerçekten v17 mi?

Sürümü veritabanının kendisinden okuyun:

SELECT CASE WHEN COL_LENGTH('dbo.CARI_HESAPLAR', 'cari_VersionNo') IS NOT NULL THEN 'v17'
            WHEN COL_LENGTH('dbo.CARI_HESAPLAR', 'cari_Guid')      IS NOT NULL THEN 'v16'
            WHEN OBJECT_ID('dbo.CARI_HESAPLAR')                    IS NOT NULL THEN 'v15'
       END AS MikroSurumu;

v17'nin işareti cari_VersionNo kolonudur; v15 ve v16'da bu kolon yoktur. Sonuç v16 çıkarsa Mikro v16 tablo yapısı, v15 çıkarsa Mikro v15 tablo yapısı rehberine bakın.

Sürümü bir tablonun varlığından anlamaya çalışmayın: aşağıda anlatılan CARI_HESAP_BAKIYELERI tablosu v17'ye özgüdür ama eski sürümden yükseltilmiş bazı firma veritabanlarında bulunmayabilir. Kolon kontrolü bu yüzden daha güvenilirdir.

Mikro v17 adlandırma mantığı

Kolonlar tabloya özgü önekle başlar: STOKLAR → sto_, STOK_HAREKETLERI → sth_, CARI_HESAPLAR → cari_, CARI_HESAP_HAREKETLERI → cha_, SIPARISLER → sip_, DEPOLAR → dep_. Satır kimliği v16'daki gibi <önek>_Guid'dir; evrak numarası <önek>_evrakno_seri + <önek>_evrakno_sira, iptal bayrağı <önek>_iptal kolonundadır.

v17 ile gelen dokuz sistem kolonu

v17'nin en görünür farkı, tabloların sonuna eklenen dokuz kolondur. Önek değişir, son ek aynı kalır:

Son ek Örnek (STOKLAR)
_MainProgramNo sto_MainProgramNo
_VersionNo sto_VersionNo
_MenuNo sto_MenuNo
_MikroSpecial1, _MikroSpecial2, _MikroSpecial3 sto_MikroSpecial1 …
_ExternalProgramType, _ExternalProgramId sto_ExternalProgramType …
_Hash sto_Hash

İncelediğimiz v17 veritabanında bu kolonlar 394 tabloda bulunur; v15 ve v16'da hiçbirinde yoktur. Raporlarınız için iki sonucu vardır: bu kolonları seçen bir sorgu eski sürümlerde çalışmaz, SELECT * ile kolon sırasına güvenen eski bir sorgu da v17'de farklı sonuç döndürür. Kolonları adıyla seçmek her sürümde en güvenli yoldur.

En çok kullanılan Mikro v17 tabloları

Tablo Ne tutar Öne çıkan kolonlar Kolon sayısı
STOKLAR Stok kartları sto_kod, sto_isim, sto_kisa_ismi, sto_birim1_ad, sto_anagrup_kod, sto_marka_kodu, sto_resim_url 236
STOK_HAREKETLERI Tüm stok giriş/çıkışları (fatura ve irsaliye kalemleri dahil) sth_tarih, sth_stok_kod, sth_miktar, sth_birimfiyat, sth_tutar, sth_tip, sth_evraktip, sth_fat_uid 148
CARI_HESAPLAR Cari kartlar cari_kod, cari_unvan1, cari_unvan2, cari_vdaire_adi, cari_VergiKimlikNo, cari_EMail, cari_CepTel 196
CARI_HESAP_HAREKETLERI Parasal hareketler ve fatura başlıkları cha_tarihi, cha_kod, cha_meblag, cha_kdv_toplam, cha_tip, cha_cinsi, cha_evrak_tip, cha_vade 186
CARI_HESAP_BAKIYELERI Cari bakiye kayıtları (yalnız v17) chb_cari_kodu, chb_bakiye, chb_vade, chb_evrak_tip 50
SIPARISLER Sipariş kalemleri (ayrı başlık tablosu yoktur) sip_tarih, sip_musteri_kod, sip_stok_kod, sip_miktar, sip_teslim_miktar, sip_tip, sip_kapat_fl 140
DEPOLAR Depo tanımları dep_no, dep_adi, dep_tipi 81
BARKOD_TANIMLARI Barkodlar bar_kodu, bar_stokkodu, bar_birimpntr 44
STOK_SATIS_FIYAT_LISTELERI Stok × liste × depo × birim fiyatı sfiyat_stokkod, sfiyat_listesirano, sfiyat_deposirano, sfiyat_birim_pntr, sfiyat_fiyati 42
KASALAR / BANKALAR Kasa ve banka tanımları kas_kod, kas_isim · ban_kod, ban_ismi, ban_IBANKodu 34 / 99
VARYANTLAR Varyant kayıtları (yalnız v17) beden, renk gibi kırılımların yeni yeri 28

Kolon sayıları gerçek bir v17 veritabanından sayılmıştır. Aynı veritabanında 450 tablo, 935 görünüm (view) ve 1.267 fonksiyon bulunur.

Mikro'da ayrı bir FATURALAR tablosu yoktur: faturanın başlığı CARI_HESAP_HAREKETLERI'nde, kalemleri STOK_HAREKETLERI'ndedir ve ikisi sth_fat_uid = cha_Guid ile bağlanır. Ayrıntı: Mikro'da fatura hangi tabloda?

v17'ye özgü üç yenilik

1. Hazır birim fiyat ve KDV toplamı. v16'da birim fiyat, tutarın miktara bölünmesiyle hesaplanırdı. v17'de STOK_HAREKETLERI tablosuna sth_birimfiyat, CARI_HESAP_HAREKETLERI tablosuna cha_birimfiyat ve cha_kdv_toplam kolonları gelir. Siparişte sip_miktar2 ve sip_avans_tutari de v17 ile eklenmiştir.

2. Bakiye tablosu. CARI_HESAP_BAKIYELERI v15 ve v16'da yoktur. v17'de cari bakiye kayıtlarını (chb_cari_kodu, chb_bakiye, chb_vade) tutar. Eski sürümden yükseltilmiş bir veritabanında bu tablo bulunmayabileceği için, her v17 kurulumunda çalışması gereken bir rapor bakiyeyi hareketlerden hesaplamalıdır (aşağıda örneği var).

3. Beden ve renk yerine varyant. v15 ve v16'da stok kartında duran sto_beden_kodu ve sto_renk_kodu kolonları v17'de yoktur. Yerlerine STOKLAR tablosunda sto_varyant_detayli_fl1 gibi varyant kolonları ve VARYANTLAR, VARYANT_KIRILIM_TANIMLARI, VARYANT_BAGLANTI_TANIMLARI tabloları gelir. Beden/renk kırılımlı eski raporlar v17'de yeniden yazılmalıdır.

Kod sözlükleri

STOK_HAREKETLERI:

Kolon Değerler
sth_tip (yön) 0: Giriş · 1: Çıkış · 2: Depo transferi
sth_cins (sınıf) 0: Toptan · 1: Perakende · 4: Fire · 5: Sarf · 7: Üretim · 10: Sayım · 11: Açılış
sth_evraktip (evrak) 1: Çıkış irsaliyesi · 3: Giriş (alış) faturası · 4: Çıkış (satış) faturası · 13: Giriş irsaliyesi · 18: Stoktan demirbaşa virman dekontu (v17 ile geldi)
sth_normal_iade 0: Normal · 1: İade

CARI_HESAP_HAREKETLERI:

Kolon Değerler
cha_tip (yön) 0: Borç · 1: Alacak
cha_cinsi (sınıf) 0: Nakit · 1: Müşteri çeki · 2: Müşteri senedi · 5: Dekont · 6: Toptan fatura · 7: Perakende fatura · 8: Hizmet faturası
cha_evrak_tip (evrak) 0: Alış faturası · 63: Satış faturası · 1: Tahsilat makbuzu · 64: Tediye makbuzu · 137: Stoktan demirbaşa virman dekontu (v17 ile geldi)
cha_cari_cins (hesap türü) 0: Cari · 2: Banka · 4: Kasa

SIPARISLER: sip_tip 0 alınan (müşteri) siparişi, 1 verilen (tedarikçi) siparişidir.

Kodları ezberlemek zorunda değilsiniz; veritabanı adlarını kendisi söyler:

-- Evrak tipi numarasının adını veritabanından okuma
SELECT SHEvrNo, SHEvrIsim
FROM vw_Stok_Hareket_Evrak_Isimleri
ORDER BY SHEvrNo;

SELECT dbo.fn_StokHarEvrTip(4)      AS [Stok evrak 4],
       dbo.fn_CariHarEvrTipUzun(63) AS [Cari evrak 63],
       dbo.fn_TalepTemin(0)         AS [Sipariş tipi 0];

Satış cirosunun güvenli tanımı: sth_iptal = 0 AND sth_tip = 1 AND sth_evraktip IN (1, 4) AND sth_normal_iade = 0. Yalnız sth_evraktip = 4 yazarsanız irsaliyeyle kesilmiş satışlar dışarıda kalır.

v17 fonksiyonları ve imzaları

Fonksiyon v17'de parametre Diğer sürümler
fn_EldekiMiktar 1 (stok kodu) Üç sürümde 1
fn_DepodakiMiktar 3 (stok kodu, depo no, tarih) Üç sürümde 3
fn_StokSatisFiyati 4 (stok kodu, fiyat listesi, depo, birim) v15'te 3
fn_CariHesapBakiye 12 v15'te 7, v16'da 11
fn_CariHesapAnaDovizBakiye 14 v15'te 9, v16'da 13
fn_OpVadeTarih 2 (vade kodu, referans tarih) Üç sürümde 2
fn_VergiYuzde 1 (vergi sıra numarası) Üç sürümde 1

v17'de bakiye fonksiyonlarına eklenen son parametre depozito nakit işlemlerinin bakiyeyi etkileyip etkilemeyeceğini belirler. v16'dan taşınan bir bakiye sorgusu "An insufficient number of arguments were supplied" hatası veriyorsa eksik olan bu son parametredir.

İki tuzak daha:

  • Ana veritabanı bağımlılığı. v17 fonksiyon ve görünümlerinin bir bölümü ana Mikro veritabanına (MikroDesktop) adıyla başvurur. Raporu çalıştıran SQL kullanıcısının o veritabanını da okuyabilmesi gerekir; yoksa sorgu "is not able to access the database" hatasıyla durur. Hızlı teşhis: SELECT DB_ID('MikroDesktop').
  • KDV kolonları oran değildir. sto_toptan_vergi, sto_perakende_vergi ve sth_vergi_pntr bir sıra numarası tutar; oranı dbo.fn_VergiYuzde(sıra) verir ve numara–oran eşleşmesi kuruluma göre değişir.

Gerçek v17 veritabanında çalıştırılmış dört sorgu

-- 1) Eldeki stok
SELECT sto_kod AS [Stok Kodu], sto_isim AS [Stok Adı],
       dbo.fn_EldekiMiktar(sto_kod) AS [Eldeki Miktar]
FROM STOKLAR
WHERE sto_iptal = 0 AND sto_hidden = 0
ORDER BY sto_kod;
-- 2) En borçlu 15 müşteri (hareketlerden; her v17 veritabanında çalışır)
WITH bakiye AS (
  SELECT c.cha_kod AS kod,
         SUM(CASE WHEN c.cha_tip = 0 THEN 1 ELSE -1 END
             * c.cha_meblag
             * CASE WHEN ISNULL(c.cha_d_kur, 0) BETWEEN 0.01 AND 500 THEN c.cha_d_kur ELSE 1 END) AS tl
  FROM CARI_HESAP_HAREKETLERI c
  WHERE c.cha_iptal = 0 AND c.cha_cari_cins = 0
  GROUP BY c.cha_kod
)
SELECT TOP 15 ISNULL(ch.cari_unvan1, b.kod) AS [Müşteri],
       CAST(b.tl AS decimal(18,2)) AS [Bize Borcu (TL)]
FROM bakiye b
LEFT JOIN CARI_HESAPLAR ch ON ch.cari_kod = b.kod
WHERE b.tl > 0
ORDER BY b.tl DESC;
-- 3) Son 30 günün satış faturası kalemleri (v17: hazır birim fiyat kolonu)
SELECT TOP 50 sth_tarih AS [Tarih], sth_evrakno_seri AS [Seri], sth_evrakno_sira AS [Sıra],
       sth_cari_kodu AS [Cari Kodu], sth_stok_kod AS [Stok Kodu], sth_miktar AS [Miktar],
       sth_birimfiyat AS [Birim Fiyat], sth_tutar AS [Tutar]
FROM STOK_HAREKETLERI
WHERE sth_iptal = 0 AND sth_tip = 1 AND sth_evraktip = 4 AND sth_normal_iade = 0
  AND sth_tarih >= DATEADD(DAY, -30, CAST(GETDATE() AS date))
ORDER BY sth_tarih DESC, sth_evrakno_sira DESC, sth_satirno;
-- 4) Güncel kasa ve banka bakiyesi (v17 imzası: 14 parametre)
SELECT dbo.fn_CariHesapAnaDovizBakiye(N'', 4, N'', N'', N'', 0, '19000101', GETDATE(), 0, 0, 0, 0, 0, 0) AS [Kasa Bakiyesi],
       dbo.fn_CariHesapAnaDovizBakiye(N'', 2, N'', N'', N'', 0, '19000101', GETDATE(), 0, 0, 0, 0, 0, 0) AS [Banka Bakiyesi];

Dördüncü sorguda ikinci parametre hesap türüdür (4 kasa, 2 banka); üçüncü parametre boş bırakıldığında o türdeki bütün hesaplar toplanır. Aynı çağrı v16'da 13, v15'te 9 parametreyle yapılır.

v16'dan v17'ye geçerken ne değişir?

Konu v16 v17
Sistem kolonları (_VersionNo, _Hash …) Yok Var (dokuz kolon)
sth_birimfiyat, cha_birimfiyat, cha_kdv_toplam Yok Var
sip_miktar2, sip_avans_tutari Yok Var
CARI_HESAP_BAKIYELERI, VARYANTLAR Yok Var
sto_beden_kodu, sto_renk_kodu Var Yok
cha_disyazilimid Var Yok
fn_CariHesapBakiye 11 parametre 12 parametre
fn_CariHesapAnaDovizBakiye 13 parametre 14 parametre
Ana veritabanı MikroDB_V16 MikroDesktop

Özetle v17 çoğunlukla ekler, az şey kaldırır. v16 raporlarının büyük kısmı v17'de aynen çalışır; bozulanlar beden/renk kolonlarını kullananlar, cha_disyazilimid'i seçenler ve bakiye fonksiyonlarını eski parametre sayısıyla çağıranlardır. Geçiş planı için: Mikro v16 ve v17 farkları.

Sık yapılan hatalar

  • İptal filtresini unutmak: sth_iptal = 0, cha_iptal = 0, sip_iptal = 0 yazılmazsa iptal edilmiş evraklar rapora karışır.
  • Cari bakiyeyi süzmeden toplamak: CARI_HESAP_HAREKETLERI kasa ve banka hareketlerini de taşır; müşteri bakiyesi için cha_cari_cins = 0 şartı gerekir.
  • Dövizli hareketi TL gibi toplamak: cha_meblag hareketin kendi para birimindedir; TL karşılığı için cha_d_kur ile çarpın.
  • cha_vade kolonunu tarih sanmak: Bu kolon tam sayıdır; gerçek vade tarihini dbo.fn_OpVadeTarih(cha_vade, cha_tarihi) verir. Ayrıntı: Mikro cari yaşlandırma raporu.
  • SELECT * kullanmak: v17'nin eklediği kolonlar yüzünden kolon sayısı ve sırası v16'dan farklıdır.

Sık sorulanlar

Mikro v17'de kaç tablo var? Kuruluma göre değişir; incelediğimiz v17 veritabanında 450 tablo ve 935 görünüm bulunuyor. Günlük raporların çoğu bu rehberdeki çekirdek tablolarla çıkar.

v17'de beden ve renk bilgisi nerede? Stok kartındaki beden ve renk kolonları kaldırılmıştır; bilgi varyant yapısına (VARYANTLAR ve ilgili tanım tabloları, STOKLAR tablosundaki varyant kolonları) taşınmıştır.

CARI_HESAP_BAKIYELERI tablosu bende neden yok? Bu tablo v17'ye özgüdür ama eski sürümden yükseltilmiş bazı firma veritabanlarında oluşmayabilir. Bakiyeyi CARI_HESAP_HAREKETLERI'nden hesaplayan sorgu her durumda çalışır.

Tablo ve kod ezberlemeden v17 raporu alabilir miyim? Evet. Erp Asistanı'nda sorunuzu Türkçe yazarsınız; sistem sürümü bağlantınızdan algılar ve sorguyu v17 şemasına göre kurar.


Sürümlerin ortak yapısı için: Mikro tablo yapısı rehberi. Hazır sorgular için: Mikro hazır SQL sorguları.

Bu haritayı ezberlemek yerine kullanmak isterseniz Erp Asistanı'na ücretsiz üye olun, raporunuzu doğal dille isteyin; v17 şemanıza uygun SQL'i saniyeler içinde alın.

Ücretsiz üye olun, sorgunuzu doğal dille üretin →

Bu yazıyı paylaş
Konuşarak raporlayın

Mikro'da SQL ve raporu konuşarak alın

Türkçe sorunuzu yazın, şemanıza uygun çalışan SQL'i ya da hazır uygulamanızı saniyeler içinde alın. Kredi kartı gerekmez.