Backdated dokumenti i preobračun zaliha
Prijemnica sa datumom u prošlosti menja nabavnu vrednost robe koja je već prodata, fakturisana i proknjižena — i to je najteži problem robno-materijalnog poslovanja.
- Objavljeno
- Autor
- Konis Software
Prijemnica nosi datum 3. marta. U sistem je uneta 27. marta. Između ta dva datuma roba sa nje je izdata sa magacina, fakturisana kupcu i proknjižena. Nijedan od tih dokumenata nije nastao pogrešno — svaki je bio tačan po podacima koji su tada postojali. Od 27. marta svi su netačni. Ovo nije rubni slučaj nego normalan mart u firmi koja radi sa robom: dobavljač kasni sa dokumentom, carinski račun stigne posle robe, magacioner unese prijem kad dođe do računara, a faktura prevoznika tek deset dana kasnije otkrije pravu nabavnu cenu. Robno-materijalno poslovanje je jedini deo ERP-a u kom vreme unosa i vreme događaja rutinski ne idu zajedno — i jedini u kom ta razlika menja brojeve unazad.
Pet datuma, ne jedan
Prvi izvor zabune je što reč „datum“ u ERP-u nema jedno značenje. Ozbiljan dokument nosi najmanje pet, i svaki upravlja drugim obračunom:
- Datum dokumenta — kada je dokument sastavljen. Formalnost, ali ga korisnik vidi prvi, pa ga najčešće pomeša sa ostalima.
- Datum prometa — kada je roba prešla u posed. Određuje redosled na zalihama i vrednost svakog izlaza posle njega.
- Datum knjiženja — u koji računovodstveni period ide stavka glavne knjige.
- Poreski datum — u koji PDV period ide obaveza ili pravo na odbitak prethodnog poreza.
- Datum valute — kada obaveza dospeva. Jedini bez uticaja na vrednovanje.
„Backdated dokument“ znači tačno jedno: datum prometa je stariji od trenutka unosa. Sve ostalo su posledice. Sistem sa jednim datumom na dokumentu ovaj problem ne rešava — on ga ne vidi, pa razliku prebacuje na knjigovođu i na kraj meseca.
Šta se stvarno lomi
Zalihe se vode kao niz kretanja koji se samo dodaje (append-only) i kao stanje izvedeno iz tog niza. Dok kretanja pristižu redom, sve je jednostavno. Zakasnela prijemnica ne dodaje kretanje na kraj — ubacuje ga u sredinu. A svaki metod vrednovanja je funkcija redosleda. Uzmimo jedan artikal, jedan magacin i tri dokumenta:
| Dokument | Datum prometa | Datum unosa | Promet | Nabavna cena |
|---|---|---|---|---|
| PR-2026-00061 | 05.03.2026. | 05.03.2026. | +200 kom | 1.100,00 |
| OT-2026-00214 | 12.03.2026. | 12.03.2026. | −150 kom | — |
| PR-2026-00087 | 03.03.2026. | 27.03.2026. | +100 kom | 1.000,00 |
FIFO
Pre unosa zakasnele prijemnice FIFO je za 150 izdatih komada trošio jedini postojeći sloj — 200 komada po 1.100,00 — i dao nabavnu vrednost izlaza od 165.000,00. Posle unosa ispred njega stoji stariji sloj: 100 komada po 1.000,00, sa datumom prometa 3. marta. FIFO ga mora potrošiti prvi, pa vrednost istog izlaza postaje 100.000,00 plus 55.000,00, odnosno 155.000,00. Razlika je 10.000,00 na jednom dokumentu. Marža na toj fakturi bila je pogrešna petnaest dana, a niko nije napravio grešku.
Ponderisani prosek
Prosečna cena se ponaša drugačije i, suprotno intuiciji, teže. FIFO ima slojeve, pa se pogađaju samo izlazi koji su dodirnuli pomereni sloj. Prosek nema slojeve — ima jedan broj koji se preračunava pri svakom ulazu. Ulaz na 3. mart menja prosek od 3. marta nadalje, pa svaki izlaz posle tog datuma dobija drugu vrednost. Svaki, bez izuzetka.
| Metod | Vrednost izlaza — pre | Vrednost izlaza — posle | Razlika | Šta se sve pomera |
|---|---|---|---|---|
| FIFO | 165.000,00 | 155.000,00 | −10.000,00 | Izlazi koji dodiruju pomereni sloj |
| Ponderisani prosek | 165.000,00 | 160.000,00 | −5.000,00 | Svi izlazi posle 03.03. — bez izuzetka |
Kod proseka je 160.000,00 rezultat lanca, ne jedne formule: 3. marta prosek postaje 1.000,00; 5. marta ulaz od 220.000,00 podiže vrednost na 320.000,00 za 300 komada, pa prosek na 1.066,67; 12. marta izlazi 150 komada po toj ceni. Ako posle 12. marta postoji još deset izlaza, svih deset se pomera. Ako je neki bio ulaz u proizvodnju, pomera se i cena koštanja gotovog proizvoda, pa i vrednost njegovog izlaza — i tako niz sastavnicu. Preobračun nije korekcija jednog reda nego talas, čiji je domet nepoznat dok se ne izračuna.
Robno-finansijsko usaglašavanje nije izveštaj, nego posledica
U većini firmi „robno-finansijsko usaglašavanje“ je posao u tabeli krajem meseca: uporedi se vrednost lagera sa saldom konta zaliha i traži razlika. Kad se nađe, proknjiži se „na ruke“, bez zapisa odakle je došla, pa sledećeg meseca isti posao počinje od nule. A razlika skoro nikad nije misteriozna — ima konačan spisak uzroka i svaki od njih ima datum:
- Zakasneli ulaz koji je promenio vrednovanje svih izlaza posle svog datuma prometa.
- Zavisni troškovi koji su ušli u cenu posle prijema — prevoz, špedicija i dažbine po JCI stižu sa fakturom prevoznika, a raspodeljuju se na robu koja je možda već otišla.
- Nivelacija proknjižena u periodu različitom od onog u kom je promenila vrednost zalihe.
- Manjkovi i viškovi popisa knjiženi izvan datuma popisa; manjak preko blokirane ili tuđe zalihe je poseban slučaj sa poreskim posledicama.
- Storno posle promene šeme kontiranja — mora da koristi STARU verziju pravila, inače sam pravi razliku koju traži.
- Roba u tranzitu i konsignaciona roba: fizički kod nas, vlasnički ne naša. Ako vlasništvo nije dimenzija modela zalihe, ova razlika je trajna.
Kad sistem zna za svaki od ovih uzroka i drži ih kao zapise sa datumom i izvornim dokumentom, usaglašavanje prestaje da bude istraga. Izveštaj slaganja tada ne prikazuje razliku nego njeno objašnjenje, stavku po stavku, sa vezom na dokument koji ju je napravio.
Ako sistem ume da izračuna razliku, a ne ume da je objasni, on razliku nije izračunao — samo je premestio problem na čoveka.
Preobračun kao postupak, ne kao dugme
- 1
Odredi tačku uticaja
Kretanje se ubacuje na svoj datum prometa, ne na kraj. Tačka uticaja je taj datum, taj artikal i taj magacin — ne ceo lager i ne cela godina. Preobračun koji ne ume da suzi opseg neće se izvršiti na pravoj bazi.
- 2
Pronađi pogođena kretanja
Sva kretanja istog artikla posle tačke uticaja, po datumu prometa, sa determinističkim razbijanjem izjednačenja — po rednom broju kretanja, nikad po vremenu upisa u bazu. Bez toga dva izvršavanja nad istim podacima daju dva rezultata.
- 3
Preračunaj po pravilu koje je tada važilo
Metod vrednovanja, decimale i raspodela zaokruženja uzimaju se iz verzije pravila važeće na datum prometa, ne iz trenutne konfiguracije. Prelazak sa proseka na FIFO u junu ne sme da prepiše mart.
- 4
Proknjiži razliku, ne rezultat
U glavnu knjigu ide delta po periodu, sa referencom na izvorni dokument i na preobračun koji ju je izazvao. Prepisivanje starog knjiženja nije opcija: proknjižena stavka je zapis, ne promenljiva.
- 5
Ostavi trag koji izdrži pitanje
Svaki pogođeni izlaz mora da odgovori: koja je vrednost bila, koja je sada, koji dokument je promenu izazvao, po kojoj verziji pravila i ko je odobrio. Preobračun bez tog traga je nedokaziv — što u reviziji znači isto što i netačan.
| Pristup | Ponašanje | Kada ima smisla | Cena |
|---|---|---|---|
| Odbijanje | Dokument sa datumom prometa u zatvorenom periodu se ne prima | Uvek, za zatvorene periode | Bez jasnog toka „šta sad“ korisnik namešta datum — problem postaje nevidljiv |
| Potpun preobračun | Sva kretanja posle tačke uticaja se preračunavaju, razlika ide u otvoren period | Otvoren period, robno-materijalno jezgro | Skupo pri obimu; traži deterministički redosled i zaključavanje artikla za vreme obrade |
| Prospektivna korekcija | Prošlost se ne dira; razlika ulazi kao nivelacija na dan saznanja | Zatvoren period, mala razlika, dugačak lanac izlaza | Marža na starim dokumentima ostaje netačna — svesno i zapisano, ne slučajno |
| Ručna ispravka | Knjigovođa knjiži razliku „na ruke“ da se lager i konto slože | Nikad kao pravilo, samo kao poslednja mera | Zapis nema vezu sa uzrokom; svako sledeće usaglašavanje počinje od nule |
Nijedan od ova četiri pristupa nije univerzalno tačan. Tačan je onaj koji je izabran svesno, zapisan kao pravilo i primenjen dosledno — a ne onaj koji je nastao kao slučajna posledica davno napisane procedure.
Granica: zaključan period i PDV
PDV strana ima svoju logiku i svoj datum. Poreski datum ne prati datum prometa robe automatski, pravo na odbitak vezuje se za posedovanje računa, a POPDV i PP PDV za prošli period su već predati. Zakasnela ulazna faktura zato po pravilu ne ide u prošlu evidenciju nego u tekuću, po pravilima koja važe za taj slučaj; isto važi za EEO i EPP evidencije, čiji rokovi imaju sopstvena pravila obračuna i pomeranja za neradne dane. Zaključak je asimetričan i vredi ga izgovoriti naglas: zaliha se preračunava unazad, PDV evidencija se ne prepisuje. Sistem koji ta dva toka veže za isti datum grešiće na jednom.
Kako ovome pristupa NG One
NG One backdated dokument tretira kao normalno stanje, ne kao izuzetak. Magacin je u jezgru sistema — lokacije, usmereno komisioniranje, talasi — pa datum prometa nije trenutak kada je magacioner stigao do računara. Pravila koja ovaj problem čine rešivim postavljena su pre prve tabele zaliha; takva se posle ne dodaju:
- Pet datuma stoji na svakom dokumentu kao pet odvojenih polja — dokumenta, prometa, knjiženja, poreski i valuta — a ne kao naknadno dodata kolona.
- Kretanja su append-only, stanje je izvedeno, a jednakost „stanje = suma kretanja“ je svojstveni test nad generisanim scenarijima, ne primer u dokumentaciji.
- Backdated preobračun je eksplicitno pravilo u konfiguraciji, ne implicitno ponašanje koda: koliko unazad, uz čije odobrenje, sa kakvim efektom na knjiženje.
- Pravila obračuna — metod vrednovanja, decimale, raspodela zaokruženja, metod raspodele zavisnih troškova — verzionisana su i vremenski važeća, pa se stari obračun reprodukuje starim pravilom.
- Delta ulazi u glavnu knjigu dimenziono, od prve stavke: preobračun pogađa maržu po artiklu, magacinu, kupcu i nosiocu troška bez naknadnog raspoređivanja.
- Retroaktivna prijemnica kad je deo robe već prodat je test prihvatanja, uz knjiženje u zaključan period, storno posle promene kontiranja i popis sa manjkom preko blokirane zalihe. To nisu scenariji koji se testiraju ako ostane vremena.
Backdated dokumenti nisu greška korisnika koju treba iskoreniti obukom. Oni su odraz toga kako roba stvarno putuje i kako dokumenti stvarno kasne. ERP koji ih tretira kao izuzetak proizvodi tabelu u Excelu na kraju svakog meseca i knjigovođu koja pamti zašto je prošle godine bila razlika. ERP koji ih tretira kao normalno stanje cenu plaća unapred — u modelu podataka, u verzionisanim pravilima i u testovima koji se pišu pre nego što problem nastane. Ta cena se plaća jednom.