Preuzmite odgovarajući primer#
Za standardni uvoz u dijalogu Učitaj nalog izaberite TXT / JSON uvoz. Fajl mora odgovarati formatu ovog poglavlja. Obrada ne koristi AI i ne troši AI kredit.
CSV ili Excel dobijen iz pregleda nije ulazni TXT/JSON. Ne koriste se ni ORIS-ov izlazni fajl ni njegov API format. Ako fajl priprema vaš drugi program, ovo poglavlje možete proslediti osobi koja održava njegov izvoz.
Zajednička pravila i granice#
| Svojstvo | Zahtev |
|---|---|
| Obuhvat | Jedan fajl sadrži jedan nalog. Godina i organizacija određuju se iz vaše prijave i profila. |
| Naziv fajla | Nastavak .txt ili .json, prema izabranom sadržaju. Velika i mala slova nastavka ne menjaju format. |
| Kodiranje | UTF-8; početni BOM je dozvoljen. UTF-16 i stare ANSI/DOS kodne strane nisu podržane za standardni uvoz. |
| Veličina fajla | Najviše 10 MiB (10.485.760 bajtova). Moraju biti ispunjene i ostale granice ispod. |
| Dužina teksta i nacrta | Ulazni tekst ima najviše 2.000.000 UTF-16 jedinica. I nacrt nastao mapiranjem ima zasebnu granicu od 2.000.000 jedinica, pa fajl manji od limita ipak može biti prevelik posle mapiranja. |
| Broj stavki | TXT: 1–10.000. JSON: 0–10.000; prazan niz služi samo za popravljivi nacrt, a za slanje je potrebna najmanje jedna stavka. |
| Nazivi polja | Tačno kako su navedeni, sa istim velikim/malim slovima. Nema alternativnih naziva niti prevoda ključeva. |
| Šifre i broj naloga | Pišite ih kao tekst, sa vodećim nulama. Aplikacija ne uklanja razmake, ne preslovljava i ne dopunjava šifre nulama. |
| Valuta | Fiksno RSD. U fajlu nema polja valute, deviznih iznosa ili kursa; iznosi se ne preračunavaju. |
Tehničke granice su gornji limiti, a ne preporučeni obim rada ili obećanje da svaki fajl sa 10.000 stavki može da stane u dozvoljenu veličinu. Za uobičajeni rad pripremite samo stvarne stavke jednog naloga.
Polja zaglavlja i stavki#
U TXT-u broj i datum naloga ponavljaju se u svakom redu. U JSON-u stoje jednom, iznad niza stavke. Sledeća tabela daje tačno značenje podataka.
| Polje | Gde i da li je obavezno | Ispravan sadržaj i ponašanje |
|---|---|---|
| brojNaloga | JSON zaglavlje; TXT kolona 1. Obavezan ključ/kolona. | Tekstualni broj, npr. 000125. Za čuvanje mora sadržati bar jedan znak koji nije razmak. Za slanje važi granica 30 UTF-16 jedinica i podržani znakovi. Vodeće nule, početni/završni razmaci i pismo ostaju deo broja. |
| datumNaloga | JSON zaglavlje; TXT kolona 2. Obavezan ključ/kolona. | Datum dokumenta, preporučeno YYYY-MM-DD. Postaje datum zaglavlja i datum dokumenta svake uvezene stavke. Za čuvanje mora biti stvaran datum u izabranoj radnoj godini. |
| konto | JSON stavka; TXT kolona 3. Obavezan ključ/kolona. | Tekstualna šifra analitičkog konta. Pri uvozu duži zapis uvek se skraćuje na prvih šest znakova. Ne izvodi se IF iz odsečenog sufiksa. Proverite dobijenu šifru; konačni konto mora biti poznat i važeći. |
| duguje | JSON stavka; TXT kolona 4. Obavezan ključ/kolona. | Dinarski iznos, preporučeno tekst sa decimalnom tačkom: 1234.50. Za stranu bez iznosa upišite 0.00. |
| potrazuje | JSON stavka; TXT kolona 5. Obavezan ključ/kolona. | Ista pravila kao za duguje. Obe strane se dostavljaju; nedostajući iznos se ne izračunava iz druge strane ili zbira. |
| datumKnjizenja | Opciono na JSON stavci; TXT kolona 6 samo u punom obliku. | Datum knjiženja. Ako nije dostavljen ili je prazan, koristi se datumNaloga. Izričito unet neispravan datum ostaje za korekciju. |
| izvorFinansiranja | Opciono na JSON stavci; TXT kolona 7 samo u punom obliku. | Tačna tekstualna šifra IF-a, npr. 01 ili 00. Pre slanja obavezna na svakoj stavci. 00 je dozvoljen samo za klase 0–3. |
| funkcija | Opciono na JSON stavci; TXT kolona 8 samo u punom obliku. | Tačna tekstualna šifra funkcije iz važećeg kataloga. Obaveznost ili zabrana zavisi od klase konta. |
| program | Opciono na JSON stavci; TXT kolona 9 samo u punom obliku. | Tačna tekstualna šifra programa za godinu naloga. Mora odgovarati dostavljenoj aktivnosti/projektu. |
| aktivnostProjekat | Opciono na JSON stavci; TXT kolona 10 samo u punom obliku. | U ovom TXT/JSON formatu koristi se jedno polje sa šifrom programske aktivnosti ili projekta. Aplikacija razrešava vrstu kada su podaci šifrarnika jednoznačni; ako ista šifra ostane nejasna, izaberite tačnu aktivnost ili projekat u stavci naloga. Izbor se čuva odvojeno. Proveravaju se pripadajući program, godina i, kada je poznata, funkcijska veza projekta. |
Za IF, program, aktivnost/projekat i funkciju opciono u formatu ne znači opciono pri slanju. Njihovu kombinaciju određuje tabela klasnih pravila. Vrednosti sa razmacima oko šifre nisu isto što i tačna šifra.
TXT: tačno 5 ili tačno 10 TAB kolona#
Prvi red je zaglavlje. Svaki sledeći red je jedna stavka. Minimalni oblik ima pet kolona, a prošireni svih deset; oblici sa šest, sedam, osam ili devet kolona nisu podržani.
Zaglavlje minimalnog oblika — jedan red:
brojNaloga datumNaloga konto duguje potrazujeZaglavlje punog oblika — jedan red:
brojNaloga datumNaloga konto duguje potrazuje datumKnjizenja izvorFinansiranja funkcija program aktivnostProjekatPrikazi iznad i preuzeti fajlovi sadrže stvarne TAB znakove. Na uskom ekranu pomerite prikaz udesno. Ne zamenjujte TAB tačka-zarezom, zarezom ili razmacima i ne prelamajte zaglavlje u više redova.
- Zadržite tačne nazive i njihov redosled. Svaki red mora imati isti broj kolona kao zaglavlje.
- U svakom redu ponovite potpuno isti broj i datum naloga. Na primer, broj 0007 i broj 7 nisu isti; ni dva različita tekstualna zapisa istog datuma ne treba mešati među redovima.
- Za kraj reda koristite uobičajeni Windows CRLF ili LF. Dozvoljen je završni prelaz u novi red, ali ne ubacujte prazne redove između stavki niti dodatne prazne redove na kraju.
- U punom obliku ostavite prazne opcione kolone na njihovim mestima. I prazan poslednji podatak zahteva odgovarajući završni TAB.
- U TXT-u nema CSV navodnika ili posebnog načina da se TAB/prelaz reda ugradi unutar vrednosti. Nemojte stavljati navodnike oko svakog podatka.
Minimalni oblik ne dostavlja datum knjiženja ni klasifikacije. Datum knjiženja preuzima datum naloga, a dozvoljeni defaulti dopunjavaju nedostajuće klasifikacije. Puni oblik omogućava da ih navedete po stavci; već navedene vrednosti imaju prednost.
JSON: jedan objekat sa nizom stavki#
Osnovni primer sadrži tri obavezna polja zaglavlja: brojNaloga, datumNaloga i stavke. Svaka stavka ima najmanje konto, duguje i potrazuje.
{
"brojNaloga": "PRIMER-001",
"datumNaloga": "2026-10-01",
"stavke": [
{ "konto": "121111", "duguje": "1000.00", "potrazuje": "0.00" },
{ "konto": "311111", "duguje": "0.00", "potrazuje": "1000.00" }
]
}Redosled ključeva u JSON objektu nije bitan. Redosled elemenata niza stavke određuje redosled stavki. Nazivi ključeva i tekstualne vrednosti pišu se između dvostrukih navodnika.
| Dodatno polje zaglavlja | Ponašanje |
|---|---|
| godina | Opciono. Ako je navedena neprazna vrednost, mora odgovarati već izabranoj radnoj godini. Primer: tekst 2026. Ne menja godinu prijave. |
| jbkjs | Opciono. Neprazna tekstualna šifra mora tačno odgovarati ustanovi iz profila, uključujući vodeće nule. |
| trezor | Opciono. Neprazna tekstualna šifra mora tačno odgovarati trezoru iz profila, uključujući vodeće nule. |
Ova tri polja postoje samo u JSON zaglavlju. Nisu dodatne TXT kolone niti polja pojedinačne stavke. Ako ih izostavite, kontekst određuje aplikacija. Ako su navedena i ne odgovaraju kontekstu, prijem se odbija: promenite radnu godinu ili odaberite pravi fajl, a pogrešnu dodelu ustanove rešite sa administratorom.
JSON primer sa svim podržanim poljima#
Primer pokazuje i opciona polja. Klasifikacije koje nisu primenljive ostaju prazne; za prikazana konta klase 1 i 3 nisu potrebna sva polja punog oblika.
{
"brojNaloga": "PRIMER-002",
"datumNaloga": "2026-10-01",
"godina": "2026",
"jbkjs": "00001",
"trezor": "001",
"stavke": [
{
"konto": "121111",
"duguje": "1000.00",
"potrazuje": "0.00",
"datumKnjizenja": "2026-10-01",
"izvorFinansiranja": "00",
"funkcija": "",
"program": "",
"aktivnostProjekat": ""
},
{
"konto": "311111",
"duguje": "0.00",
"potrazuje": "1000.00",
"datumKnjizenja": "2026-10-01",
"izvorFinansiranja": "00",
"funkcija": "",
"program": "",
"aktivnostProjekat": ""
}
]
}Za svoje stavke unesite stvarne šifre i primenite klasna pravila. Ako neka klasa traži program, aktivnost/projekat i funkciju, ovde prikazan prazan tekst nije dovoljan bez dozvoljene dopune ili ručne korekcije.
Prazne vrednosti i neispravni tipovi#
| Zapis | Kako se obrađuje |
|---|---|
| Opciono JSON polje izostavljeno, null ili prazan tekst | Smatra se nedostajućim. Mogu se primeniti odgovarajuća dopuna datuma ili klasifikacija. |
| Prazna opciona TXT kolona | Ima praznu vrednost; TAB mesto mora ostati. Reč null u TXT-u nije prazno polje nego doslovni tekst. |
| Tekst sastavljen od razmaka | Nije nedostajuća vrednost za dopunu. Ostaje za ispravku; ne uklanja se automatski. |
| 0 ili 00 | Dostavljena vrednost, ne prazno polje. Za IF koristite tačnu šifru 00 samo kada je dopuštena. |
| Obavezni ključ nedostaje | Nedostajući brojNaloga, datumNaloga ili stavke u JSON zaglavlju, odnosno konto, duguje ili potrazuje na stavci, odbijaju strukturu fajla. |
| Broj, datum, konto ili iznos imaju null ili prazan tekst | To nije isto što i odsutan ključ. Vrednost može ostati u nacrtu za korekciju; prazan iznos nije nula, a neispravno zaglavlje sprečava automatsko čuvanje. Polje stavke, za razliku od tih vrednosti, uvek mora biti niz. |
| JSON broj bez navodnika | Brojčani zapis čuva se kao tekst bez gubitka decimalne preciznosti. Ipak, šifre i iznose pišite pod navodnicima: JSON broj ne čuva vodeće nule, a zapis sa eksponentom nije ispravan iznos za slanje. |
| Boolean, objekat ili niz umesto šifre/iznosa/datuma | To nije ispravna poslovna vrednost. Čitljiv sirovi podatak može biti zadržan za korekciju, ali ne prolazi poslovnu proveru; nije alternativni podržani način unosa. |
| Nepoznat ključ ili ponovljen ključ | JSON fajl se odbija. Na primer, IF nije zamena za izvorFinansiranja, a accountCode nije zamena za konto. Nema dodatnog polja napomena. |
JSON ne dopušta komentare, završni zarez posle poslednjeg člana, dodatni sadržaj posle objekta ili više naloga u jednom korenom nizu. Najveća dozvoljena dubina ugnježđivanja je 12; za propisanu strukturu dublje ugnježđivanje nije potrebno.
Na pojedinačnoj stavci nema polja datumNaloga, posebnog datuma dokumenta, rednog broja, opisa, valute ili deviznog iznosa. Ne dodajte ih: koristite samo osam polja stavke iz specifikacije.
Datumi i iznosi: preporučeni zapis i normalizacija#
| Podatak | Primeri i pravilo |
|---|---|
| Datum | Preporučeno 2026-10-01. Jednoznačni srpski zapisi 1.10.2026 ili 1.10.2026. pretvaraju se u isti ISO datum. |
| Datum sa kosom crtom | 13/4/2026 i 4/13/2026 jednoznačno znače 13. april. 03/04/2026 nije jednoznačan i ostaje za korekciju. Za pouzdan izvoz koristite YYYY-MM-DD. |
| Datum sa vremenom | Vreme nije deo podržanog datuma naloga. Ne izvozite timestamp umesto YYYY-MM-DD. |
| Datum knjiženja | Nedostajući datum preuzima datumNaloga; zasebno naveden datum ostaje. Sva knjiženja naloga moraju biti u istom mesecu i godini. |
| Iznos | Preporučeno 1234.50 ili -1234.50. Dozvoljen je ceo broj ili jedna/dve decimale. Za stranu bez iznosa koristite 0.00. |
| Jednoznačni lokalni zapis | 1234,50 i 1.234,50 postaju 1234.50. Potpun engleski zapis 1,234.50 takođe postaje 1234.50. |
| Neispravan ili previše precizan iznos | 1 234,50, 12.34,50, 1e3 ili 1.234 ne postaju tiho važeći iznosi. Uvoz ne zaokružuje više od dve decimale i ne računa nedostajuću stranu. |
| Šifre i broj naloga | Ne normalizuju se kao datumi/iznosi. Vodeće nule ostaju, razmaci se ne uklanjaju. Izuzetak je skraćivanje konta dužeg od šest znakova na prvih šest. |
Normalizacija zapisa ne čini nemoguć datum ili nevažeću šifru ispravnim. Na primer, 31.2.2026. i dalje zahteva korekciju. Sve datume i konačnu ravnotežu proverite prema izvornom dokumentu.
Šta aplikacija dopuni i kada sačuva nalog#
| Nedostajući podatak | Dopuna pri uvozu |
|---|---|
| Godina, JBKJS, trezor | Preuzimaju se iz potvrđenog profila i izabrane radne godine. Suprotna neprazna tvrdnja iz JSON-a se odbija. |
| Datum knjiženja stavke | Preuzima datum naloga. Datum dokumenta svih uvezenih stavki takođe je datum naloga. |
| IF na poznatom važećem kontu klase 0–3 | Dobija 00 samo ako nedostaje. Izričito naveden izvor ostaje. |
| IF na poznatom važećem kontu klase 4–9 | Može dobiti važeći opcioni godišnji IF. Ako ga niste izabrali, polje ostaje za dopunu. |
| Program, aktivnost/projekat i funkcija u klasama 4–6 | Dopunjuju se iz primenljivih godišnjih podešavanja, samo kada nedostaju i ne sukobljavaju se sa dostavljenim programom/aktivnošću. |
| Program, aktivnost/projekat i funkcija u klasama 0–3 | Nema automatske dopune pri uvozu. Za klase 0–2 možete kasnije izričito dopuniti celu grupu; klasa 3 je ne dopušta. |
| Duguje ili potražuje | Nema dopune nedostajućeg iznosa. Iznose dostavite iz izvornog naloga, sa izričitom nulom na praznoj strani. |
Kada je struktura čitljiva i zaglavlje ima broj i stvaran datum u godini naloga, prijem automatski čuva nalog i otvara ga za uređivanje, uz važeće uslove vašeg profila. Poslovne greške u stavkama ostaju za korekciju.
Ako broj/datum ne zadovoljava minimum ili isti tekući broj već postoji, otvara se prepoznat nacrt za dopunu; postojeći nalog se ne prepisuje. Podatke koje ispravite potom sačuvajte komandom Snimi.
Ako standardni uvoz odbije fajl#
| Poruka ili problem | Proverite |
|---|---|
| Pogrešan format ili kodiranje | Da li ste izabrali TXT / JSON uvoz, pravi nastavak i UTF-8. Promena nastavka sama ne pretvara sadržaj. |
| TXT nema propisano zaglavlje | Tačne nazive, isti redosled, TAB separator i tačno pet ili deset kolona. |
| Red nema propisan broj kolona | Prazne i završne TAB pozicije; da li je unutar vrednosti slučajno nastao TAB ili novi red. |
| Fajl sadrži više naloga | U TXT-u svi redovi moraju imati doslovno isti broj i datum. JSON ima jedan objekat naloga. |
| JSON ključ ili struktura nisu dozvoljeni | Nepoznate/ponovljene ključeve, komentare, završne zareze, navodnike i obavezni niz stavke. |
| Godina ili organizacija ne odgovara | Radnu godinu i profil; opciona JSON polja ne menjaju kontekst i moraju mu odgovarati. |
| Fajl ili nacrt prelazi limit | Veličinu, broj stavki i dodatni sadržaj. Nemojte izbacivati stvarne poslovne stavke da biste prikrili nepotpun nalog. |
Ako je to slobodan tekstualni izveštaj drugog programa, možete koristiti AI prepoznavanje umesto standardnog parsera. Ako odgovor obrade nije jasan, prvo upotrebite Proveri ishod iste obrade; ne pokrećite odmah novi prijem.
Strukturno prihvaćen fajl još ne znači poslovno ispravan nalog. Posle uvoza pregledajte stavke i pokrenite Proveri nalog.