Walidacja JPK_KR_PD
Brak znacznika S_12_1 w ZOiS pliku JPK_KR_PD (1)
Objaw / komunikat błędu
ZOiS: konto S_1=… nie ma znacznika S_12_1.
W strukturze JPK_KR_PD (1) każde konto w ZOiS niesie znacznik słownikowy S_12_1. Pusty element albo jego brak oznacza, że plan kont wyszedł z ERP bez kwalifikacji wymaganej przez schemat, nawet gdy numer S_1 wygląda poprawnie.
Przyczyna techniczna
- S_12_1 nie jest opisem tekstowym konta. To znacznik ze słownika struktury, który klasyfikuje konto. Eksporter, który mapuje tylko numer i nazwę, zostawia puste S_12_1 albo w ogóle go nie emituje.
- Przy scalaniu miesięcy znaczniki S_12_1–S_12_3 wędrują razem z wierszem konta. Jeśli pierwszy miesiąc ma znacznik, a kolejny plik ma to samo S_1 bez niego, zła strategia scalenia potrafi nadpisać dobry wiersz pustym.
- Walidacja „czy tag istnieje” to za mało, gdy tag jest obecny i pusty. Pusty tekst S_12_1 jest tym samym brakiem co nieobecny element.
- Błąd dotyczy konkretnego S_1. Raport bez numeru konta zmusza księgowego do przeszukania całego planu. Przy kilku tysiącach kont to różnica między poprawką mapowania a ponownym eksportem w ciemno.
Jak naprawić błąd krok po kroku
- 1
Dla każdego wiersza ZOiS odczytaj tekst S_12_1
Warunek jest spełniony tylko wtedy, gdy po obcięciu spacji zostaje niepusty kod słownikowy. Sam tag <S_12_1/> nie wystarcza.
- 2
Porównaj mapowanie w ERP z wersją (1)
JPK_KR_PD (1) i schemat 1-0 oczekują tego znacznika w planie kont. Uzupełnij słownik w module, który buduje ZOiS, a nie ręcznie w XML.
- 3
Przy klejeniu nie zgub znacznika z pierwszego pełnego wiersza
Jeśli konto pojawia się wielokrotnie, ustal, który wiersz jest źródłem S_12_1. Nadpisanie go pustką z późniejego miesiąca odtwarza błąd.
- 4
Powtórz kontrolę po eksporcie, przed podpisem
Znacznik dodany w planie kont nie wchodzi do już wygenerowanego XML. Po zmianie mapowania wyeksportuj plik jeszcze raz i sprawdź S_1 wskazane w raporcie.
Jak rozwiązuje to architektura SecureJPK
W jednym przejściu strumienia walidator, widząc wiersz ZOiS, sprawdza tekst S_12_1 i przy braku dopisuje ostrzeżenie z numerem S_1. Nie buduje DOM planu kont. Przy merge wiersz konta jest składany świadomie: bilans otwarcia z pierwszego wystąpienia, a znaczniki zgodnie z wybraną strategią ZOiS, więc puste S_12_1 da się zobaczyć zanim plik roczny pójdzie do podpisu. Plik zostaje w OPFS.
Najczęstsze pytania (FAQ)
- Czy S_12_2 i S_12_3 zastępują S_12_1?
- Nie. S_12_2 i S_12_3 są dodatkowymi znacznikami, jeśli struktura je niesie. Brak S_12_1 jest osobnym błędem i nie jest naprawiany obecnością pozostałych pól.
- Czy ostrzeżenie dotyczy też kont pozabilansowych?
- Dotyczy każdego wiersza ZOiS, który walidator widzi jako konto ze S_1. Jeśli konto jest w pliku, znacznik ma być w tym wierszu, niezależnie od pozycji w układzie bilansu.
- Czy da się uzupełnić S_12_1 hurtowo w XML?
- Technicznie tak, ale bez słownika z ERP wpiszesz zgadywany kod. Poprawka należy do mapowania planu kont. Walidator ma wskazać S_1, nie zgadywać znacznika.