Numerisanje knjigovodstvenih dokumenata
Dobar program za knjigovodstvo se od strane svog autora skoro obavezno opisuje ovako
“Korišćenjem programskih opcija program je moguće u potpunosti prilagoditi osobenostima poslovanja korisnika”.
Poenta je veoma jasna: naš program radi i može sve za svakog da odradi samo ga treba malo podesiti.
Ja se sa tim uglavnom ne slažem i mislim da od “viška glava boli” te je po odgovornost autora da odabere minimalni set funkcija koji odgovaraju potrebama većine korisnika i da namerno zaobiđe “uniju svih eventualnosti” – jednostavnost ispred moći.
Jedno od retkih aspekata knjigovodstvenih programa gde taj princip ne važi je aspekt numerisanja dokumenata koji se kreiraju u programu za knjigovodstvo. Razlog zašto je to tako leži u mom lošem ličnom iskustvu iz prošlosti kada mi je problem broj jedan za distribuciju programa bio baš to što potencijalni korisnici nisu hteli da pređu sa svog metoda označavanja dokumenata na moj “super-inovativno-pametni” način. Jednostavna lekcija naučena tada: ljudima je bitno kako označavaju dokumente jer im to omogućava jednostavnije snalaženje u moru papira kojim su zatrpani i koliko god da je loš ili dobar taj sistem numerisanja veoma je teško odvići se od iste.
Ono što je problem u ovom validnom zahtevu korisnika je da svako od njih ima neki svoj način (obično urezan u cortex dugogodišnjim korišćenjem nekog knjigovodstvenog programa) i svi su oni različiti te je moj tadašnji pokušaj da od slučaja do slučaja dodajem nove načine rezultovala papazjanijom u kodu i “morem opcija”.
S obzirom da se dekadu kasnije opet srećem sa istim tipom programa, rekoh da ovaj put prvo razmislim pre nego što krenem sa programiranjem, a kad već razmišljam što ne bih razmišljao na glas.
Super-inovativno-pametni način numerisanja dokumenata
U tom mom starom programu imao sam dva tipa numerisanja gde je numerisanje dokumenata na prvi način je bilo implementirano na sledećim principima:
-
svaki objekt ima svoju šifru koja je tipa “01”, “02”….
-
brojač dokumenta je zaseban za svaki objekt
-
broj dokumenta == šifra objekta x 10.000 + redni broj dokumenta
.
Na primer, recimo da imam dva maloprodajna objekta i da unosim po kalkulaciju za oba objekta: broj kalkulacije prvog – 10001, broj kalkulacije drugog – 20001.
Prednost ovog principa je da na osnovu broja dokumenta “10001” korisnik odmah zna da je to iz MP 01 objekta.
Mana ovog metoda ima više:
- Šta ako su šifre objekta MPBGD, MPNIS itd?
- Šta ako imam fakturu na kojoj su iskazane stavke iz više objekata?
- Objekat 01 ima više dokumenata sa istim brojem (MP kalkulacija 10001, MP Faktura 10001 itd)
.
Drugi metod numerisanja u tom mom starom programu je bio korišćen u numerisanju naloga za knjiženje i izgledao je ovako: ŠIFRA TIPA DOKUMENTA + ŠIFRA OBJEKTA + DD + MM
Recimo da je tip dokumenta “MP kalkulacija” ima šifru 31 i da je spomenuta kalkulacija broj 10001 napravljena 15.04.2012 broj naloga za knjiženje bi bio 31011504.
Prednost ovog metoda je da se samo na osnovu broja naloga automatski zna njegov datum i šta je na njemu knjiženo. Prednost je takođe ta što nema brojača u nalogu tako da se knjiženja slažu “prirodno” bez obzira na to kojim redosledom su unošena i kojim danima.
Mana ovog metoda je očigledna: broj naloga ne sadrži broj dokumenta te se postavlja pitanje šta ako je 15.-og aprila u objektu 01 bilo više kalkulacija?
Odgovor (u slučaju tog starog programa) je: gde piše da knjižni nalog mora da sadrži podatke SAMO jednog dokumenta.
Ostali načini numerisanja
Ok, sada kada ste videli tip numerisanja koji sam ja podržavao, sasvim vam je jasno na koji način sam reagovao kada je tokom moje prezentacije programa nekoj knjigovodstvenoj agenciji X dobio odgovor da se njima to ne dopada i da oni numerišu dokumente sa TIP DOKUMENTA + BROJAČ, da koriste isti brojače neovisno o objektu, a da naloge numerišu sa GGGG MM DD 0001.
Koristeći primere od gore njihovi brojevi dokumenata su: K0001 (kalkulacija objekata 01), K0002 (kalkulacija objekta 02) i 201103310001, 201103310002, 201103310003 itd.
Šta ću, gde ću – odradim i to i dodam nekoliko check box opcijama u administraciji.
Sledeća agencija: “ne sviđa mi se šta vi radite, a ne sviđa mi se ni agencija X što radi”. Oni numerišu sve dokumente na način TIP DOKUMENTA + OBJEKT + MESEC + 01 brojač.
Koristeći primere od gore njihovi brojevi dokumenata su: MKAL 01 03 01 (kalkulacija objekata 01), MKAL010302 (kalkulacija objekta 02) i NAL010301, NAL010302 itd.
Ishod znate, posle n agencija broj opcija u administraciji je premašio broj dugmadi u NASA lansirnom centru, a moj kod postao papazjanija i uvek je sledeći korisnik imao “svoj super-inovativno-pametni način”
Rad, red i disciplina
Za mene lično, putanje numerisanja dokumenata je stara navika ostala iz prošlosti i proistekla iz korišćenja loših knjigovodstvenih programa jer jednostavno i brzo pronalaženje željenog dokumenta u svakom programu bi danas trebalo da bude potpuno trivijalan zadatak za korisnika bez obzira kako sa koji dokument numeriše.
Ipak ne mogu da ignoriše problem koji očigledno postoji:
- korisnici ne žele ni da pomisle da pređu na program koji ne podržava njihov način numerisanja
- programska podrška od slučaja do slučaja nije isplativa ni za mene ni za korisnike
U mojim analizama starog koda koji podržava sve lude načine numerisanja pronašao sam da većina njih sadrži jednu ili više varijabli sledećeg tipa:
- tip dokumenta – skraćenica (VPFAK, F)
- tip dokumenta – šifra (31)
- šifra objekta – (01, MP01)
- šifra partnera – (kupca ili dobavljača)
- Godina – (12, 2012)
- Mesec – (04,4, apr)
- Dan – (15)
- Brojač po tipu dokumenta
- Brojač po objektu
- Brojač po tipu dokumenta i objektu
- Brojač po Godini i/ili Mesecu i/ili Danu
Tokom instalacije mog programa, korisnik će moći da odabere bilo koju kombinaciju gore navedenih delova koji grad broj dokumenta za sve dokumente ili po tipu dokumenta.
Ono što ja (za sada bar) planiram da ponudim kao podrazumevan način numerisanja dokumenata je sledeće:
- TIP DOK + BROJAČ PO TIPU DOKUMENTA (MPK0001, MPK0002)
Razlog: deluje mi kao najprostiji moguć pristup
Slažete se?
Pozdrav čoveče,
istina da numerisanje može biti jako komplikovano, i da korisnici mogu svašta da izmišljaju. Tu nisi usamljen, tedo da ti kažem.
Evo ukratko šta ja mislim: Priča sa knjigovodstvenom agencijom X, i knjigovodstvenom agencijom Y koja ima taktiku koja ne X, mi je jako poznata. Jedino rešenje vidim u komplikovanju biznis logike programa, tj. pravljenju tabele u bazi koja definiše način ponašanja brojača.
S tim u skladu, komplikuje se i obuka, ali mislim da ako se zadržiš na nekoliko kategorija koje si gore lepo opisao, dovoljno je 15ak minuta + 2-3 primera u slikama da prosečan korisnik skapira kako se definišu brojači.
Ja bih postavio tabelu za brojače i biznis logiku prema sledećim uslovima:
1. Tip dokumenta
2. šifra objekta
3. šifra partnera
4. šifra korisnika (Mirko ima svoje fakture, a Marko svoje)
5. godina
6. mesec
7. dan
8. brojač (po bilo kojem od gornjih 7)
9. numerička maska brojača (###0 ili ######0 npr.)
10. separator između delova brojača
Mislim da si ovime obuhvatio sve situacije.
Za default bih dao mali improvement, ako se slažeš:
tip dokumenta + šifra objekta + brojač po šifri tipa dokumenta + šifri objekta.
Razlog: ako je firma kojoj se vode knjige razgranata (npr. lanac maloprodaja), ne moraš ništa da objašnjavaš korisniku kako se brojači podešavaju. Ako nema objekata, imaćeš jedno 001 ili OBG viška u sredini broja.
Evo samo da prijavim slučaj iz moje prakse, u aplikaciji koja se koristi u našem preduzeću:
Šifra_objekta + Brojač po tipu dokumenta i objektu
Šta da kažem… Funkcioniše i svi su naviknuti na princip.
Eto, uklapa se u metod koji predlažeš.
Ps. Samo napred! 🙂