Walidacja JPK_KR_PD
D_11 niezgodne z sumą Z_4 i Z_7 w dzienniku JPK_KR_PD
Objaw / komunikat błędu
Dziennik D_1=…: kwota D_11 nie jest zgodna z sumą Wn albo Ma. Osobno: pozycja Z_1 ma Z_4 i Z_7 równe 0.
D_11 jest kwotą operacji na dowodzie. Suma Z_4 po stronie Wn i suma Z_7 po stronie Ma powinny każda równać się D_11. Dekret, w którym obie kwoty są zerem, nie niesie zapisu, a mimo to zajmuje numer Z_1.
Przyczyna techniczna
- W poprawnym dowodzie suma Wn (Z_4) równa się sumie Ma (Z_7) i obie równają się D_11. Walidator porównuje trzy liczby całkowite groszy, nie „kwotę brutto z nagłówka faktury”.
- ERP potrafi wpisać D_11 jako wartość bezwzględną obrotu, a wiersze KontoZapis zbudować z zaokrągleń pozycji. Przy wielu liniach różnica 0,01 zł wychodzi dopiero po zsumowaniu BigInt, nie przy oglądaniu jednego wiersza.
- Zapis z Z_4=0 i Z_7=0 powstaje przy stornie źle wyzerowanej, przy kontach technicznych albo przy eksporcie, który emituje pusty KontoZapis dla każdego konta planu. Taki węzeł podbija C_3 i nie wyjaśnia D_11.
- KontoZapis leży wewnątrz swojego Dziennik. Sumowanie Z_4 ze wszystkich dowodów roku i porównanie z jednym D_11 daje fałszywy alarm. Porównanie musi być w granicach jednego dowodu.
Jak naprawić błąd krok po kroku
- 1
Dla każdego D_1 policz sumę Z_4 i sumę Z_7
Zejdź tylko w KontoZapis tego dowodu. Obie sumy, w groszach, mają równać się D_11 tego samego Dziennika.
- 2
Odrzuć wiersze z obiema kwotami zero
Z_4=0 oraz Z_7=0 nie jest zapisem. Usuń taki KontoZapis w ERP albo popraw kwotę, zanim numer Z_1 wejdzie do C_3.
- 3
Nie porównuj floatów z wydruku
Weź tekst kwoty z XML, przesuń przecinek o dwa miejsca i dodawaj BigInt. Porównanie number === number maskuje grosz.
- 4
Popraw źródło, nie tylko plik na chwilę przed bramką
Ręczna edycja jednego D_11 w gigabajtowym XML rozjeżdża Ctrl. Najpierw raport z numerami D_1 i Z_1, potem korekta w module, który wystawił dekrety.
Jak rozwiązuje to architektura SecureJPK
Ostrzeżenia logiczne w walidatorze strumieniowym przechodzą przez każdy Dziennik, sumują Z_4 i Z_7 jako grosze i porównują je z D_11. Komunikat wskazuje D_1 oraz, przy dekrecie zerowym, Z_1. To nie zastępuje Ctrl: C_4 i C_5 dalej sumują cały plik. Raport zostaje w przeglądarce. Plik nie jest wysyłany na serwer SecureJPK w celu „sprawdzenia księgowania”.
Najczęstsze pytania (FAQ)
- Czy D_11 ma równać się Z_4 + Z_7?
- Nie. Z_4 i Z_7 to dwie strony tego samego zapisu. Każda z osobna ma równać się D_11. Suma Wn i Ma byłaby podwojeniem kwoty operacji.
- Czy zerowy dekret blokuje wysyłkę?
- W lokalnym raporcie SecureJPK jest ostrzeżeniem logicznym, nie automatycznym zatrzymaniem klejenia. Na bramce KAS pusty zapis i tak psuje sens C_3 i równowagę dowodu, więc trzeba go usunąć przed złożeniem.
- Gdzie szukać KontoZapis?
- Wyłącznie wewnątrz elementu Dziennik o tym D_1. KontoZapis z innego dowodu nie wchodzi do porównania z tym D_11.