100% в браузъра · файлът никога не напуска компютъра ви · безплатно, без регистрация

Речник на грешките · пълно ръководство

„Not an element of the set“ — код извън номенклатурата

Стойността е записана в правилен формат, но я няма в списъка с допустими кодове. Тук се сблъскват вашите вътрешни номенклатури и утвърдените кодове на НАП.

КатегорияСхемна грешка (XSD) — изброим тип

Кога се хващаПри XSD валидация, на всяка стойност извън допустимия списък

Типичен сигналcvc-enumeration-valid: Value '…' is not facet-valid with respect to enumeration

Какво значи

Много полета в SAF-T не приемат свободен текст, а изброим списък от кодове (XSD enumeration): кодове на данъци, типове документи, мерни единици, сметки от националния сметкоплан за целите на SAF-T (Приложение № 2 на НАП). Стойност извън списъка е невалидна, колкото и логична да ви се струва:

Примерно съобщение от валидатор (Xerces)cvc-enumeration-valid: Value 'активна' is not facet-valid with respect to enumeration '[Active, Passive, Bifunctional]'. It must be a value from the enumeration.

Сравнението е буквално: главни/малки букви имат значение, Activeactive, а кирилска буква, която изглежда като латинска, е различен знак. Част от списъците са вградени в самата схема — например тип на сметката (Active/Passive/Bifunctional), дебит/кредит индикаторът (D/C) или базата на отчитане (A, P, BANK, INSURANCE). Пълните таблици с данъчни кодове, типове документи и мерни единици са в Приложение № 2.

Защо се случва

  • Мапингът към номенклатурите не е завършен. Вашите вътрешни кодове (данъчни групи, типове документи, мерни единици) трябва да се преведат към кодовете на НАП. Това е най-трудоемката част от настройката на SAF-T — и всяка непокрита стойност излиза като тази грешка.
  • Складовият и счетоводният софтуер ползват различни кодове. Типичното място на разминаване: складовата програма праща своя мерна единица или тип документ, който никой не е мапнал.
  • Кирилица вместо латиница. С (кирилско) и C (латинско) изглеждат еднакво, но са различни знаци. Индикатор „Д“ вместо D е класически пример.
  • Сметка извън сметкоплана за SAF-T. Вътрешният ви сметкоплан има сметки, които не съществуват в националния сметкоплан за целите на SAF-T — те трябва да се мапнат, а не да се подават директно. Отделно AccountID има и шаблон ([1-9][0-9]{2,4}), който отхвърля например сметки, започващи с нула.

Как се поправя

  1. От съобщението вземете невалидната стойност и елемента. Проверете в справочника на номенклатурите или в Приложение № 2 какви са допустимите кодове за това поле.
  2. Намерете къде в мапинга вашата вътрешна стойност трябва да се превежда — и я добавете или поправете там, а не в XML файла.
  3. Съберете всички уникални невалидни стойности от протокола наведнъж и ги мапнете на един път — иначе следващата валидация ще извади следващата липсваща.
  4. Внимавайте за скрити разлики: регистър на буквите, кирилица/латиница, водещи или крайни интервали.

Пример

Тип на сметка — стойност извън вградения в схемата списък:

Грешно (свободен текст)
<AccountType>активна</AccountType>
<!-- cvc-enumeration-valid: Value
     'активна' is not facet-valid
     with respect to enumeration
     '[Active, Passive, Bifunctional]' -->
Вярно (код от списъка)
<AccountType>Active</AccountType>
<!-- допустими: Active, Passive,
     Bifunctional — буквално,
     с точния регистър -->
Кое поле какъв списък приема: номенклатурите покриват сметкоплана и стойностите, вградени в схемата, а справочникът на елементите показва типа и ограниченията на всяко от 347-те полета — например AccountID и DefaultCurrencyCode.
Не гадайте — проверете

Пуснете файла през безплатната проверка: всяка грешка идва с ред, обяснение и съвет. Проверете файла — безплатно, в браузъра.

Провери файла