Przejdź do głównej treści
EN 16931 · listy kodów

Błąd BR-CL-23: jednostka miary pozycji nie jest kodem UN/ECE

Każda pozycja faktury elektronicznej zawiera ilość z jednostką, zapisaną jako kod z Rekomendacji 20 UN/ECE: na przykład C62 dla sztuki. BR-CL-23 sprawdza, czy kod znajduje się na liście, BR-23, czy kod istnieje, a PEPPOL-EN16931-R130, czy jednostka ceny jest taka sama jak jednostka ilości.

FlexigoTech · Odpowiada: Víctor Gómez · Aktualizacja: 4 listopada 2026

Najważniejsze

Wersje
Odoo 17, 18, 19 i 20
Sprawdzone
w kodzie źródłowym modułu, wersja 17.0 i 20.0 · w źródłach podanych na końcu
Czas czytania
3 min
  1. BR-23, fatal „An Invoice line (BG-25) shall have an Invoiced quantity unit of measure code (BT-130).” Pozycja musi mieć jednostkę.
  2. BR-CL-23, fatal „Unit code MUST be coded according to the UN/ECE Recommendation 20 with Rec 21 extension” Jednostka musi być kodem z listy.
  3. PEPPOL-EN16931-R130, fatal „Unit code of price base quantity MUST be same as invoiced quantity.” Jeśli cena dotyczy ilości bazowej, jej jednostka jest taka sama jak jednostka pozycji.

Dwie pierwsze pochodzą z EN 16931 (Schematron validation-1.3.17). Trzecia pochodzi z Peppol BIS (3.0.22), a XRechnung również ją stosuje.

Karta reguł jednostek miary
BR-CL-23, BR-23 i PEPPOL-EN16931-R130 dotyczące BT-130 i atrybutu unitCode.

Skąd Odoo bierze kod

Kod, który Odoo zapisuje w pliku, pochodzi z różnych miejsc zależnie od wersji:

  • Odoo 17, 18 i 19: tabela przypisuje jednostkom Odoo (po identyfikatorze zewnętrznym) kody UN/ECE. Jednostka utworzona przez Ciebie nie znajduje się w tabeli i trafia jako C62, sztuka.
  • Odoo 20: każda jednostka miary ma własne pole kodu UN/ECE i ten kod trafia do pliku. Odoo zamienia go na wielkie litery, ale nie porównuje go z listą.

BR-CL-23 zgłasza błąd, gdy kod w pliku nie znajduje się na liście. W Odoo 20 wystarczy źle wpisany kod w jednostce miary. W Odoo 17 do 19 tabela zawsze podaje kod z listy, więc reguła zadziała tylko wtedy, gdy kod dotrze inną drogą, na przykład przez moduł, który go zmienia.

Istnieje też problem, którego żadna reguła nie wykrywa: jednostka własna („paleta”, „karton po dwanaście”), którą Odoo 17 do 19 zamienia na C62 bez ostrzeżenia. Plik przechodzi BR-CL-23, bo C62 jest na liście, ale Twój klient dostaje „sztuki” tam, gdzie sprzedawałeś kartony.

Dla odbiorcy faktury kod ma znaczenie: jego program odczytuje go, by dopasować pozycję do zamówienia i przyjęcia towaru. Jeśli zamówił kartony, a faktura mówi o sztukach, ilość nie zgadza się z tym, co otrzymał, mimo że kwota jest ta sama, i faktura utyka w jego weryfikacji.

Z naszym modułem XRechnung i ZUGFeRD

Moduł zawiera własną, edytowalną tabelę jednostek Odoo na kody UN/ECE, dzięki czemu każda Twoja jednostka otrzymuje swój kod w BT-130. Jednostka, której nie ma w tej tabeli, trafia jako C62, tak jak w Odoo 17 do 19, a jedyne ostrzeżenie pojawia się w logu serwera, którego nie widać z poziomu faktury. Pozycja bez jednostki również trafia jako C62.

Tabela modułu XRechnung przypisująca jednostki Odoo do kodów UN/ECE w Odoo 20
Minuty, sztuki, godziny, metry kwadratowe, kilowatogodziny i inne, z ich kodem dla BT-130. Zrzut ekranu Odoo 20 z danymi demonstracyjnymi.

W Odoo 18, 19 i 20, przy subskrypcji FlexigoTech Cloud, każda faktura XRechnung i każda ZUGFeRD EN 16931 jest walidowana regułami KoSIT, a kod spoza listy pojawia się jako BR-CL-23 w Validation Errors. W Odoo 17 opublikowana wersja nie przechodzi walidacji.

Co sprawdzić

  1. Zobacz, jaką jednostkę ma pozycja w XML (atrybut unitCode).
  2. W Odoo 20 otwórz jednostkę miary i ustaw jej kod UN/ECE.
  3. W Odoo 17, 18 i 19, jeśli używasz jednostek własnych, pamiętaj, że trafią jako C62. Z naszym modułem, w każdej wersji, dodaj każdą z nich do jego tabeli: brakujące również trafią jako C62.
  4. Jeśli cena dotyczy ilości bazowej (na przykład za każde sto sztuk), jej jednostka musi być taka sama jak jednostka pozycji.
  5. Wygeneruj plik ponownie i sprawdź atrybut unitCode każdej pozycji przed wysłaniem.

Czytaj dalej

Błąd UBL-SR-48: wiersz faktury z dwoma podatkami albo bez żadnegoUBL-SR-48 i BR-CO-04 wymagają jednej, i tylko jednej, kategorii VAT w każdym wierszu faktury elektronicznej. Komunikat Odoo 17, 18, 19 i 20 oraz BR-25 i BR-16.Błąd BR-CO-15 w e-fakturze: wartość brutto nie jest netto plus VATBR-CO-15, BR-CO-14, BR-CO-16 i BR-CO-17 sprawdzają, czy sumy e-faktury się zgadzają. Co sumuje każda z nich i które zawodzą przez jeden grosz.Błędy BR-09 i BR-11: adres sprzedawcy lub nabywcy bez kodu krajuBR-09 i BR-11 wymagają kodu kraju w adresie sprzedawcy i nabywcy; BR-08 i BR-10 dotyczą samego adresu. Komunikat Odoo 17, 18, 19 i 20 oraz co uzupełnić.
Sprawdzone w kodzie źródłowym modułu (wersja 17.0 i 20.0) i w podlinkowanych źródłach

Źródła