SecureJPK
Zaloguj się

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. 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. 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. 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. 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.