КатегорияЛогическа грешка — схемата мълчи
Кога се хващаПри логическите проверки на приемащата система; XSD не я хваща
Типичен сигналФайлът е схемно валиден, но вътрешно противоречив
Какво значи
SAF-T файлът носи едновременно салда по сметки (начално и крайно) и хронологията на записите за периода. Тези две неща трябва да се погаждат — за всяка сметка поотделно:
Ако равенството не излиза дори за една сметка, файлът е вътрешно противоречив: твърди едно в салдата и друго в хронологията. XSD проверката тук мълчи — тя гледа структура и формати, не аритметика. Затова файл, който „минава схемата“, спокойно може да бъде отхвърлен на този етап — това е една от най-честите реални причини за отхвърляне.
Защо се случва
- Оборотната ведомост и хронологията са експортирани в различни моменти. Типичната причина: извадили сте салдата сутринта, хронологията следобед — а междувременно колега е осчетоводил нещо в периода. Двете „снимки“ вече не съвпадат.
- Записи след „приключването“. Периодът е изглеждал затворен, но по-късно са влезли корекции, сторна или закъснели документи — и експортираните по-рано салда не ги отразяват.
- Част от записите не са влезли във файла. Филтър на експорта е пропуснал тип документи или диапазон — оборотите във файла са по-малки от реалните. Този случай често се проявява и като разминаване в TotalDebit/TotalCredit.
- Мапингът на сметките размества обороти. Когато няколко вътрешни сметки се сливат към една SAF-T сметка (или една се разделя), салда и обороти трябва да се мапнат по същата логика. Разминаване в мапинга на двете страни чупи равенството.
Как се поправя
- Приключете периода докрай и се уверете, че никой повече не осчетоводява в него.
- Генерирайте всичко в един момент — салда и хронология от едно и също състояние на базата. Това е правилото, което предотвратява повечето случаи.
- Ако равенството пак не излиза: сверете за конкретната сметка началното салдо, сбора на дебитните и кредитните обороти от записите и крайното салдо — срещу оборотната ведомост от системата. Разликата сочи източника: липсващи записи, различен момент или мапинг.
- Проверете дали крайните салда на предишния период съвпадат с началните на текущия — пренасянето между периоди е също източник на разлики.
Пример
Сметка с начално дебитно салдо 1000.00, обороти за периода: дебит 500.00, кредит 200.00. Крайното салдо трябва да е 1300.00:
<OpeningDebitBalance>1000.00</OpeningDebitBalance>
<!-- записите за периода дават:
дебит 500.00, кредит 200.00 -->
<ClosingDebitBalance>1250.00</ClosingDebitBalance>
<!-- 1000 + 500 − 200 = 1300 ≠ 1250:
50.00 обороти липсват или салдото
е от друг момент -->
<OpeningDebitBalance>1000.00</OpeningDebitBalance>
<!-- записи: дебит 500.00,
кредит 200.00 -->
<ClosingDebitBalance>1300.00</ClosingDebitBalance>
Пуснете файла през безплатната проверка: всяка грешка идва с ред, обяснение и съвет. Проверете файла — безплатно, в браузъра.