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

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

Контрагент, който „не съществува“ — липсваща референция в MasterFiles

Записът сочи клиент C-1042, но в списъка с контрагенти такъв няма. Файлът реферира сам себе си — и когато референцията води в нищото, проверката на НАП отказва файла.

КатегорияЛогическа грешка — референтна цялост

Кога се хващаПри логическите проверки; схемата проверява формата на ID-то, не дали то съществува

Типичен сигналЗапис реферира идентификатор, който липсва в MasterFiles

Какво значи

SAF-T е устроен като малка база данни: секцията MasterFiles декларира номенклатурите — контрагенти, сметки, продукти — а записите в дневниците и документите ги реферират по идентификатор, вместо да повтарят име и данни на всеки ред. Тази конструкция работи само ако всяка референция води до съществуващ запис.

Когато ред от хронологията или фактура сочи CustomerID, който го няма сред декларираните клиенти, референцията виси. XSD проверката вижда само, че идентификаторът е валидно форматиран текст — дали съществува насреща, схемата не знае. Затова грешката излиза при логическите проверки, при напълно „зелена“ схемна валидация.

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

  • Складовата програма и счетоводството поддържат различни номенклатури. Класическата причина: единият софтуер води клиента като 1042, другият — като C-1042 или под съвсем друг номер. Документите идват с едното ID, MasterFiles се пълни с другото.
  • Контрагентът е създаден след експорта на MasterFiles. Ако номенклатурите са извадени в началото на генерирането, а записите — след това, нов клиент от последния момент присъства в записите, но не и в списъка.
  • Изтрити или слети контрагенти. „Почистване“ на номенклатурата (дублирани партиди, слети картони) след осчетоводяването оставя стари записи да сочат вече несъществуващи идентификатори.
  • Разлики в изписването на ID-то. Водеща нула (0142 срещу 142), префикс, интервал или кирилска буква в идентификатора — технически това са различни стойности, и референцията не се намира.

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

  1. Извадете от протокола всички нереферирани идентификатори и проверете къде живеят те — в коя система са създадени и защо ги няма в експортираните MasterFiles.
  2. Синхронизирайте номенклатурите или направете мапинг таблица между складовите и счетоводните кодове на контрагентите — преди експорта, на едно установено място.
  3. Генерирайте MasterFiles и записите в един и същи момент, за да не се разминават по време.
  4. Проверете и обратния знак: контрагенти в MasterFiles, които никой запис не ползва, не са грешка — но огромен брой такива подсказва, че мапингът налива грешната номенклатура.

Пример

Грешно (референция в нищото)
<!-- в записите: -->
<CustomerID>C-1042</CustomerID>

<!-- в MasterFiles: -->
<Customer>
  <CustomerID>1042</CustomerID>
  ...
</Customer>
<!-- 'C-1042' ≠ '1042' — записът сочи
     клиент, който не съществува -->
Вярно (референцията се намира)
<!-- в записите: -->
<CustomerID>1042</CustomerID>

<!-- в MasterFiles: -->
<Customer>
  <CustomerID>1042</CustomerID>
  ...
</Customer>
Безплатната проверка на SAFTCheck сверява референциите между записите и MasterFiles преди подаване — всеки висящ идентификатор излиза с реда, на който е използван.
Не гадайте — проверете

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

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