Belirti
Tipik ticket ifadeleri: "bilanço yanlış gösteriyor", "bilanço eksi/zarar yazıyor", "bilanço tutmuyor", "bilanço timeout veriyor", "geçmiş tarihe bilanço alınamıyor", "bilanço fazla gösteriyor", "yanlış alınan bilanço silinecek", "bilançoda kur değişince rakam değişiyor", "geniş bilanço istendi". "bilanço/bilanco/bilonço/lanço" yazım varyantları (≈390), "yanlış" (16), "zarar" (14), "timeout" (9).
Gözlem ile sebep ayrımı
- Gözlem: bilanço satırının TOPLAM/KÂR-ZARAR değeri beklenenden farklı, eksi, ya da rapor açılmıyor.
- Ayrım: bilanço türetilmiş bir rapordur: BAKİYE + STOK + PIRLANTA + İŞÇİLİK + TAKOZ + TAŞ + MALZEME toplamından DEVİR (önceki satır) çıkarılır (BR-BILANCO-001). Dolayısıyla "bilanço yanlış" neredeyse hiçbir zaman bilançonun kendi hatası değildir; girdilerinden birinin (kur, stok, işlem kuru, takoz, devir satırı, şube birimi) yanlışıdır. Ticket başlığı hangi girdinin bozuk olduğunu söylemez.
- "Eksi" gözlemi ile "zarar" yorumu ayrılmalı: program gerçekten zarar da yazabilir (pano kurunun altında satış — H-128a); bu veri hatası değildir.
Muhtemel nedenler
| # | Neden | Kanıt |
|---|---|---|
| 1 | Pano kurunun çok altında/üstünde işlem kuru → gerçek zarar | H-128, PROC-130 (22.10.2021), BR-KUR-007 kur farkı uyarısı |
| 2 | Stokta olmayan mal çıkılmış (negatif stok) | H-123, H-128 |
| 3 | Pozisyon sıfır değil → kur değişince bilanço değişir (kur farkı) | H-129, FN-BILANCO.GETKURFARKI, METRIC_DICTIONARY MET-KUR-FARKI |
| 4 | Maden maliyeti işlem kurunu değil güncel kuru baz alıyor (fonksiyon sürümü) | H-129, PROC-81, PROC-130 (24.11.2021), FN-STOK.GETMADENMALIYETI |
| 5 | Çıkılmamış / devir öncesi alınıp sonra çıkılan takozlar | H-130, PROC-130 (11.02.2022), PB-034 |
| 6 | Raporsuz takoz %60 milyem varsayımı: bilanço fonksiyonlarında 0,600, Cari.BakiyeKodlari'nda 0,0, pozisyonda 0 — üç farklı değer |
BR-BAKIYE-009, CONFIGURATION "Raporsuz takoz has varsayımı" — CTR: aynı stok üç raporda üç değer |
| 7 | Kur listesi boş → karşılık 0 | H-124, PB-036 |
| 8 | Yeni şubede bilanço birimi seçilmemiş | H-025, BR-BILANCO-002, Sistem.Subeler.BilancoBirimId — SOURCE_IMPLEMENTED |
| 9 | Yanlış tarihe alınmış bilanço satırı DEVİR'i bozuyor (programdan silinemez) | H-133, PROC-54, Bilanco.Bilancolar |
| 10 | Zaman aşımı (büyük veri, indeks) | PB-052 → SYM-PERFORMANS |
İlk sorulacak sorular
- Hangi şube, hangi tarih; hangi kalem yanlış (BAKİYE/STOK/TAKOZ/İŞÇİLİK/DEVİR)?
- Pozisyon raporu sıfır mı? Kur listesi dolu mu?
- Stok listesinde eksi miktar var mı?
- Son bilançodan bu yana kur girişi/işlem kuru sapan işlem var mı (İşlem Kontrol Raporu)?
- Takoz stoğu var mı; çıkılmamış takoz var mı? Devir yakın zamanda yapıldı mı?
- Bilanço listesinde tarih sırası bozuk (yanlış tarihli) satır var mı?
İlgili ekran(lar)
SCR-FRMPATRONBILANCOSU · SCR-BILANCOSIMPLEVIEW · SCR-FRMBILANCOSIFIRLA · SCR-FRMEMTIABILANCO · SCR-FRMPOZISYON · SCR-FRMSUBEEKLE (bilanço birimi) · SCR-FRMMADENSTOKLARI (Maliyeti Göster)
İlgili müşteri varyantı
KUYUMCU: takoz (5, 6) ve maden maliyeti (4) kaynaklı farklar bu varyanta özgüdür; raporsuz takoz varsayımı çelişkisi (CTR) kuyumcuyu etkiler. DOVIZ: pozisyon/kur farkı (3) ve işlem kuru sapması (1) baskındır. MüşteriŞemasıD: GAP: MüşteriŞemasıD şemasında ayrı bilanço fonksiyonu olup olmadığı doğrulanmadı.
Kontrol edilecek Settings
Sistem.Subeler.BilancoBirimId, RevCostDate (maliyet yeniden değerleme tarihi), Sermaye/SermayeBirimId · Sistem.Settings.IslemKurFarki (sapma uyarı eşiği), HasSymbol (has birimi) · Sistem.Kurlar doluluğu. Kaynak: CONFIGURATION. GAP: RevCostDate'in bilanço hesabına etkisi kodda doğrulanmadı.
Salt okunur SQL teşhis sorgusu
-- 1) Bilanço satırları: tarih sırası ve yanlış tarihli kayıt (H-133)
SELECT B.Id, B.Tarih, B.SubeId, B.Sube, B.Cinsi, B.Kodu, B.Bakiye, B.Kur1, B.Kur2, B.Net, B.Birim
FROM Bilanco.Bilancolar B WHERE B.SubeId = @SubeId ORDER BY B.Tarih DESC, B.Cinsi, B.Kodu;
-- 2) Negatif stok adayları: stok bazında net miktar (H-123)
SELECT S.SubeId, S.KasaId, S.StokTipi, S.StokId, SUM(S.Miktar) AS NetMiktar, SUM(S.Adet) AS NetAdet
FROM Stok.StokHaraketleri S
WHERE S.Tarih <= @Tarih AND S.Bolum = 0
GROUP BY S.SubeId, S.KasaId, S.StokTipi, S.StokId
HAVING SUM(S.Miktar) < 0 OR SUM(S.Adet) < 0;
-- 3) İşlem kuru pano kurundan sapan satırlar (H-128a) — Fiyat ile o günkü kur karşılaştırması
SELECT I.Id, I.Tarih, I.FisNo, I.IslemKodu, I.IslemTuru, I.BirimId, I.Fiyat, K.Alis, K.Satis
FROM Cari.Islemler I
LEFT JOIN Sistem.Kurlar K ON K.BirimId = I.BirimId AND K.Tarih = I.Tarih AND K.IsDeleted = 0
WHERE I.IsDeleted = 0 AND I.SubeId = @SubeId AND I.Tarih BETWEEN @T1 AND @T2
AND K.Satis > 0 AND ABS(I.Fiyat - K.Satis) / K.Satis > 0.10;
-- 4) Şube bilanço birimi (H-025)
SELECT Id, Kodu, BilancoBirimId, RevCostDate FROM Sistem.Subeler WHERE IsDeleted = 0;
İlgili iş kuralı
BR-BILANCO-001 · BR-BILANCO-002 · BR-BAKIYE-009 · BR-KUR-007 · BR-MALIYET-001 · BR-DEVIR-001 · Metrikler: MET-KAR, MET-KUR-FARKI, MET-NET-POZISYON (METRIC_DICTIONARY)
Geçmiş ticket teması
PRB-BILANCO-000 — 458 çağrı, ERPGOLDV2 çağrılarının %4,1'i. Alt kategori Bilanco 364; ortalama kapanış 11,8 saat.
İlgili süreç
PROC-130 bilanço problemleri (3 revizyon) · PROC-54 bilanço silme · PROC-96 geniş bilanço · PROC-33 şube tanımlama (bilanço birimi) · PROC-81 / PROC-142 maden maliyeti · PROC-190 devir (takoz notu)
Çözüm
PB-055: PROC-130 revizyon sırası — (1) İşlem Kontrol Raporu'nda kur sapması ve eksi stok, (2) pozisyon 0 mı; değilse kur farkı normaldir, (3) maliyet fonksiyonu sürümü, (4) takoz eşleştirmesi. Silme/yeni şube/geniş bilanço: PB-056. Kur boşsa PB-036.
Workaround
Müşteriye "kur farkı" kalemi ayrı gösterilerek (MET-KUR-FARKI) bilançonun neden değiştiği açıklanır; yanlış tarihli bilanço satırı silinene kadar bir sonraki bilanço alınmaz (DEVİR zinciri bozulmasın).
Yazılımcıya escalate koşulu
Stok.GetMadenMaliyeti, bilanço fonksiyonları (Bilanco.GetIBilanco, GetKurFarki) ya da takoz stok kaynağı (GetTakozSubeStoklari) değişikliği; Bilanco.Bilancolar üzerinde silme — hepsi yalnız SQL yetkili destek/yazılımcı, yedek sonrası ve müşteri yazılı onayıyla (PB-055). Raporsuz takoz varsayımı çelişkisi (CTR) ürün kararı gerektirir.
Kalıcı önlem
Kur sapma uyarısı eşiği (IslemKurFarki) makul tutulur (PB-046); bilanço öncesi kontrol listesi: kur dolu, pozisyon, eksi stok, çıkılmamış takoz; şube açılışında bilanço birimi zorunlu.
Kaynaklar
- TICKET_THEME:PRB-BILANCO-000 (SRC-TKT-ERP, 458 çağrı)
- DOCUMENT:12_Support/Playbooks/PB-055.md, PB-056.md, PB-036.md, PB-034.md
- DOCUMENT:12_Support/KnownIssues/H-025, H-123, H-124, H-128, H-129, H-130, H-133, H-139
- DOCUMENT:12_Support/Processes/PROC-130 (22.10.2021 / 24.11.2021 / 11.02.2022), PROC-54, PROC-96, PROC-81
- BUSINESS_RULE:BR-BILANCO-001, BR-BILANCO-002, BR-BAKIYE-009 (SOURCE_IMPLEMENTED)
- DERIVED:09_CodeArchitecture/CONFIGURATION.md (raporsuz takoz varsayımı üç değer); 08_Database/Tables/TBL-BILANCO.BILANCOLAR.md, TBL-STOK.STOKHARAKETLERI.md, TBL-SISTEM.KURLAR.md, TBL-SISTEM.SUBELER.md (kolon doğrulaması)
