Елемент не на своєму місці в XML рахунку FA(3)
Що означає ця помилка
Схема FA(3) не очікувала цього елемента в цьому місці файлу. Елемент стоїть у неправильному порядку, має одрук у назві або взагалі не існує у FA(3).
Те саме повідомлення з'являється, коли перед зазначеним елементом бракує обов'язкового поля. Якщо в Fa немає P_2, схема вкаже на елемент, що стоїть одразу після цього місця (наприклад, P_6), бо саме там вона чекала на P_2.
Чому порядок має значення
Схема XSD FA(3) описує вміст розділу як послідовність (xs:sequence): елементи мають іти в установленому порядку. Необов'язкові поля можна пропустити, але ті, що є у файлі, стоять на своєму місці. Fa починається з KodWaluty, P_1, P_1M і P_2, а Podmiot2 закінчується полями JST і GV, після NrKlienta і IDNabywcy. Назви елементів чутливі до регістру, тож Nip це не NIP.
Як читати підказку
Біля помилки бачиш назву елемента, номер рядка і список «Тут має бути». Це елементи, які схема прийняла б тут замість зазначеного.
- Одна назва в списку, наприклад
P_1при зазначеномуP_2. Або зазначений елемент стоїть зарано, або перед ним бракує поля зі списку. Пошукай це поле нижче в розділі: якщо воно є, поміняй елементи місцями, якщо немає, додай його. - Кілька назв. Це елементи, які можуть тут стояти, зокрема необов'язкові. У довгих послідовностях, як-от підсумок за ставками в
Fa, список буває обрізаний ще в повідомленні бібліотеки libxml2, якою ми перевіряємо схему, і може не містити поля, якого насправді бракує. Тоді порівняй розділ із порядком у схемі. - «Може, тут має бути…?» Назва відрізняється від очікуваної на одну-дві літери, тож це майже напевно одрук:
NazwзамістьNazwa,NazwaBankзамістьNazwaBanku. Для назв, що відрізняються лише номером, ми підказки не показуємо, боP_13_1іP_13_2це різні поля.
Як це виправити
- Відкрий файл на рядку, вказаному в повідомленні.
- Порівняй назву елемента зі списком очікуваних і виправ одрук або регістр.
- Якщо назва правильна, перенеси елемент на належне місце або додай перед ним поле, якого бракує.
- Елемент, якого схема FA(3) взагалі не знає (власне поле програми, залишок з іншого формату), видали. Додаткову інформацію на рахунку записують у
DodatkowyOpis, як паруKluczіWartosc.
<!-- ❌ P_2 перед P_1 -->
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_2>FV/2026/10/014</P_2>
<P_1>2026-10-08</P_1>
...
</Fa>
<!-- ✅ Порядок зі схеми -->
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2026-10-08</P_1>
<P_2>FV/2026/10/014</P_2>
...
</Fa>
<!-- ❌ Код GTU як назва елемента -->
<GTU_12>1</GTU_12>
<!-- ✅ Код GTU як значення елемента GTU -->
<GTU>GTU_12</GTU>Після виправлення можуть з'явитися нові помилки
Після першої помилки порядку схема не перевіряє решту цього розділу і вкладених у нього розділів. Якщо в Fa переставлено P_1 і P_2, а нижче в Adnotacje стоїть P_16 зі значенням 0, помилку цього значення побачиш лише після виправлення порядку. Наші правила MF працюють незалежно від схеми, тож їхні повідомлення, наприклад про кому в P_15, бачиш одразу. Перевіряй файл, доки список не стане порожнім.
Файл зі старого шаблону FA(2) зупиниться раніше, на просторі імен в елементі Faktura. Порядок основних розділів ми описали в огляді найчастіших помилок FA(3) (польською). Після виправлення перевір рахунок ще раз.
Перевір свій рахунок
Завантаж XML-файл, і ми покажемо, що треба виправити. Твій файл не залишає браузер.
Відкрити валідатор