Účtovné výkazy - vecný obsah
V tejto kapitole je uvedený popis nasledujúcich tém týkajúcich sa obstarávania účtovných výkazov:
Uživatelé provozující systém ABRA Gen v prostředí ABRA on-line neprovádí registraci OLE Automation serveru, neprovádí Nastavení klienta a nepoužívají definice výkazů, které jsou v instalačním adresáři systému ABRA Gen, nýbrž z adresáře k tomu určeného přímo v jejich ABRA on-line prostředí. Viac viď kap. ABRA on-line - prístup k šablónam výkazov pomocou vzdialenej aplikácie z prostredia MS Windows.

Účetní výkazy jsou řešeny prostřednictvím spolupráce s tabulkovým kalkulátorem Excel (MS Office) nebo Calc (Open Office/Libre Office) s využitím OLE technologie a to přes knihovnu NxServ64.dll, která je po instalaci ABRA Gen k dispozici v rootu adresáře, do něhož byla ABRA Gen instalována.
Jedná se o OLE Automation server pro účetní výkazy, který zajišťuje zprostředkování objektů ABRA Gen Windows aplikaci, v tomto případě Excel resp. Calc. Chová se jako klientská část aplikace ABRA Gen komunikující s aplikačním serverem a využívá data ABRA Gen - tedy obdobně jako jakýkoliv jiný klient ABRA Gen). Pojem klientská část viz kap. Technologie zpracování dat.
Keďže ide o COM (resp. DCOM) OLE Automation server, je jeho použitie obmedzené na operačný systém MS Windows. Jedná se o klientskou část aplikace ABRA Gen, tedy i když máte síťovou část instalace na Linuxu, běží na windowsových klientech, kde musí být instalován MS Excel (viz dále).
Pro zdárné spuštění účetních výkazů musí být soubor NxServ64.dll registrován v registrech Windows příslušného počítače, ze kterého chcete právě výkazy spouštět (tedy na klientovi, nikoli na serveru, kde je instalována ABRA Gen). Registrovat knihovnu je nutné i v případě, že byste si chtěli ve výkazech pouze načítat a prohlížet hotové ARD soubory (viz datová krychle), tj. i na počítačích, kde systém ABRA Gen vůbec není dostupný.
NxServ64.dll se neregistruje automaticky při instalaci ABRA Gen (důvodem je příp. následná odinstalace systému). Tedy musíte je zaregistrovat ručně, přičemž jsou možné dva způsoby:

NxServ64.dll lze zaregistrovat (resp. přeregistrovat) kdykoliv ručně a to např. pomocí příkazu RegSvr32 do aktuálního adresáře, příp. do zadaného adresáře, je-li uvedeno s plnou cestou. Před samotnou registrací je nutné ověřit, že máte již nainstalován systém ABRA Gen,. Pokud by systém nainstalován nebyl, je třeba provést nejprve jeho instalaci (nemusí být napojena databáze) a teprve poté provést registraci souboru NxServ64.dll.
RegSvr32 NxServ64.dll
Pro registraci NxServ64.dll se volá externí program regsvr32.exe, tudíž po provedení registrace je nutné potvrdit hlášení o úspěšné registraci, které generuje regsvr32. (Regsvr32.exe není součástí instalace ABRA Gen, jedná se o soubor OS Windows.). V případě, že registraci provádíte přes příkazovou řádek, tak i ten musí být spuštěn v režimu Správce, jinak registrace neproběhne.

NxServ64.dll lze zaregistrovat na klientském počítači spuštěním agendy Nastavení klienta z dané stanice a zatržením volby pro propojení na Excel/Calc.
Na počítači s OS Windows, pri ktorých sa pre podobné akcie vyžadujú administrátorské oprávnenia, je potrebné mať pre úspešné vykonanie danej akcie požadované oprávnenia. Pro zdárnou registraci je třeba spustit ABRA Gen funkcí "Spustit jako Správce". ABRA Gen rozpoznává, zda běží na OS Windows 7 či vyšším a vyžaduje přechod do režimu Administrátora, aby mohla registraci bezchybně dokončit.
Zaregistruje se s cestou do adresáře instalované ABRA Gen. Pokiaľ už je vo Windows registroch registrovaný s nejakou cestou (napr. zo skoršej registrácie toho istého dll z inej inštalácie), nové vykonanie registrácie ho preregistruje do svojho adresára. (Odinstalováním dané ABRA Gen se záznam v registrech neruší, nicméně odkaz do daného adresáře již nemusí být samozřejmě platný).
Dále musí při spuštění účetních výkazů platit, že je soubor NxServ64.dll na registrovaném místě samozřejmě k dispozici. Tj. pokud jste si např. zaregistrovali NxServ64.dll z nějaké demoverze a pak jste příslušnou instalaci odebrali a adresář smazali, nepodaří se vám účetní výkazy spustit, přestože je v registrech záznam s registrací příslušného OLE serveru. Obdobně, pokud je NxServ64.dll registrován na nějakém síťovém disku, musíte mít daný disk v okamžiku spouštění výkazů k dispozici.
V opačnom prípade skončí pokus o spustenie výkazov chybou v MS Excel typu "ActiveX Control - can't create object" apod., v Open Office chybou typu "Objekt je nedostupný, neplatná referencia na objekt", čo môže spôsobovať až problém s uzavretím danej aplikácie.
Správnost propojení (registrace, shodnost cest) se před spuštěním účetních výkazů kontroluje a to s ohledem na nastavení parametru Kontrolovat shodnost cest Propojení na Excel / OpenOffice Calc se spouštěcím adresářem ABRA ve Firemních údajích.

Rozhranie OLE Automation pre účtovné výkazy je vytiahnuté ako funkcia do MS Excel. V prípade MS Excel na to slúži dodávaný súbor NxABRA.xla, ktorý sa po spustení Účtovných výkazov registruje ako doplnok do aplikácie MS Excel a zaregistruje defaultne dodávané funkcie využívané v dodávaných výkazoch (užívateľ si ale môže pochopiteľne definovať ďalšie svoje vlastné).
Takže, aby bolo možné použiť výstup do MS Excel, musí byť na klientskom PC inštalovaný MS Excel a musí byť k dispozícii tento *.xla súbor.
Okrem doplnku NxABRA.xla je dodávaný ešte doplnok NxTurnover.xla. Ten je ale určený na iný účel. Viď Účtovné prehľady pomocou OLE rozhrania.
To neplatí pre Calc (Open Office), keďže tu sú funkcie zakomponované priamo vo výkazoch *.ods (resp. predtým *.sxc).

Po spuštění účetních výkazů klient ABRA Gen nejdříve připraví data. Tj. podle podmínek zadaných v jednotlivých krocích Průvodce Účetními výkazy načte odpovídající data z databáze ABRA Gen a vytvoří tzv. memory maped file (mapovanou paměťovou tabulku). Tú si môžeme pre ľahšie pochopenie predstaviť ako viacrozmernú alebo ako akúsi "dátovú kocku". Jednotlivé jej rozmery (dimenzie) sú potom veličiny, podľa ktorých je možné robiť tzv. rezy a získavať potrebné hodnoty. Objasníme na zjednodušenom nákrese:
Máme dátovú kocku, ktorá bude obsahovať napočítané dáta zostatkov účtov po mesiacoch a strediskách. Teda nech rozmer x našej kocky predstavuje čas (mesiace), rozmer z strediská a rozmer y potom zostatky na jednotlivých účtoch. Pokiaľ nás potom v nejakom výkaze budú zaujímať zostatky účtov za mesiac X a stredisko 100, vykoná sa príslušný rez danou kockou, dáta sú k dispozícii (čiže neprebieha žiadny ďalší výpočet z databázy, ale z rezom napočítanými dátami):
Ružová rovina znázorňuje rez za mesiac X a fialová rovina rez za stredisko 100. Priesečník rovín sú zostatky účtov v mesiaci X za stredisko 100.
Napočtenou "datovou krychli" si lze uložit i do souboru (čili při opětovném použití není nutné ji vždy napočítávat znovu). Ukladajú sa do súboru typu *.ard (ABRA report data). OLE Automation účtovných výkazov potom dokáže čerpať dáta buď z takéhoto súboru alebo z novo napočítanej "dátovej kocky".
Formát datové krychle se může v čase měnit, proto datové krychle vytvořené z různých verzí systému ABRA Gen mají také své číslo verze. Většinou je podporována zpětná kompatibilita, tj. v novější verzi systému ABRA Gen je možné načíst i datové kostky starší verze. Pokiaľ to nie je možné, systém to oznámi.
Verzia ARD viď 4.,5. pozícia v HEXa zobrazení ARD súboru.

Kromě toho, že napočtenou datovou krychli si lze uložit do souboru *.ard pro opětovné použití, z ní lze pořídit i konkrétní účetní výkazy a to:

Agenda účtovných výkazov je a priori určená na obstaranie výkazov prostredníctvom MS Excel. Nicméně si je uživatel může teoreticky pořídit prostřednictvím tiskových sestav ABRA Gen. Tlačové zostavy účtovných výkazov však nie sú výrobcom defaultne dodávané. Užívateľ si ich môže dodefinovať sám, príp. si ich objednať u servisných konzultantov servisnej siete výrobcu, ale je potrebné zobrať do úvahy, že toto riešenie je zbytočne zložité - definícia a údržba takýchto reportov je pomerne náročná (s ohľadom na charakter výkazov ide v podstate o potrebu do značnej miery simulovať tabuľkový kalkulátor). Ďalej treba mať na zreteli, že tieto tlačové zostavy čerpajú dáta nie z databázy (ako to je v tlač. zostavách v iných častiach systému), ale z dátovej kocky.

Na vlastné obstaranie jednotlivých typov účtovných výkazov v aplikácii MS Excel z aktuálne napočítanej dátovej kocky alebo z nejakej uloženej v súbore sú dodávané súbory NxDefVyk*.xls, čo sú MS Excel zošity, na jednotlivých listoch zošitov sú definované výkazy pre Hospodársky výsledok, Súvahu, Výsledovku a ďalšie.
Od v.15.02 vr. sú dodávané v dvojakom prevedení: jednak pre podnikateľov (NxDefVykUZPOD*.xls) a jednak pre tzv. mikroúčtovné jednotky (NxDefVykUZMUJ*.xls), ktoré zostavujú výkazy v skrátenom rozsahu. Zvoľte preto adekvátny súbor!
V dodávaných definíciách sa používajú dodávané funkcie popísané ďalej. V menu v sekci doplňků je doinstalován doplněk ABRA s volbou "Načtení ze souboru", pomocí něhož si můžete obnovit zobrazení výkazů z jiného souboru (z jiné uložené datové krychle, viz výše).
Ďalej, pokiaľ máte v MS Excel v sekcii Možností výpočtov nastavené, že sa výpočty majú vykonávať Ručne, potom je pre úplný prepočet výkazu potrebné vyvolať tento prepočet (príslušnou voľbou v menu MS Excel alebo stlačením klávesu F9). Makrá v dodávaných výkazoch sú definované tak, že sa jednotlivé bunky aktualizujú rovno automaticky po opustení danej bunky, avšak v prípade, že by ste mali bunku definovanú napr. ako "rovná sa" A + B, tak je potrebné prepočet spustiť, aby došlo k napočítaniu podľa daného vzorca.
Tiež nezabudnite v záhlaví listov zvoliť príslušné obdobia. Na to sa často zabúda hlavne pri výsledovke, tzn. výkazu ziskov a strát, kedy by si užívateľ vlastne mal napočítať dátovú kocku za obdobie, ku ktorému zostavuje výsledovku a za obdobie predchádzajúce a potom na liste výsledovky v záhlaví vybrať jedno z nich ako "Sledovaný časový interval" a druhé ako "Minulý časový interval". Pokiaľ by ste ponechali východiskovú hodnotu <Všetky>, tak samozrejme napočítaný výkaz nebude zmysluplný.
Je potrebné mať povolené makrá.
Ďalej viď Použitie výkazov v lokalizácii pre SR.
Pokud otevření výkazu ze systému ABRA Gen selže, tj. nepodaří se aplikaci MS Excel dohledat (není na daném lokálním PC instalována) nebo se nepodaří otevřít doplněk (xla soubor není v rootu adresáře, kde je instalována ABRA Gen) nebo není pro danou instalaci zaregistrováno napojení na Excel/OpenOffice Calc (tj. není NxServ64.dll správně zaregistrován na daném PC pro danou ABRA Gen), pak program zobrazí chybové hlášení. Je potrebné zaistiť požadované podmienky spustenia a potom výkazy dokončiť znovu. Podrobněji viz OLE Automation server - NxServ64.dll a Doplněk aplikace MS Excel. Příp. pokud po otevření výkazů nebudete mít jednotlivé buňky napočteny a budou se vám zobrazovat pouze hodnoty #VALUE, je to pravděpodobně tím, že nemáte adekvátně povolena makra.

Pokud při používání aplikace Calc v OpenOffice narazíte na problémy při generování některých výkazů, použijte místo OpenOffice alternativní kancelářský balík LibreOffice. Viz související FAQ Vygenerovaný výkaz NxDefVykPodnik v OpenOffice neobsahuje číselné hodnoty.
Pro vlastní pořízení jednotlivých typů účetních výkazů v aplikaci Calc z aktuálně napočtené datové krychle nebo z nějaké uložené v souboru jsou dodávány soubory NxDefVyk*.ods (resp. dříve NxDefVyk*.sxc), což jsou Calc sešity, na jejichž jednotlivých listech jsou definovány výkazy pro Hospodářský výsledek, Rozvahu, Výsledovku a další.
Od v.15.02 vč. jsou dodávány v dvojím provedení: jednak pro podnikatele (např. NxDefVykUZPOD*.ods) a jednak pro tzv. mikroúčetní jednotky (NxDefVykUZMUJ*.ods), které sestavují výkazy ve zkráceném rozsahu.
V dodávaných definíciách sa používajú dodávané funkcie popísané ďalej. Na každém listu je definováno funkční tlačítko s názvem Načtení ze souboru, pomocí něhož si můžete obnovit zobrazení výkazů z jiného souboru (z jiné uložené datové krychle, viz výše).
Dále, pokud máte v tabulkovém procesoru nastaveno, že se výpočty mají provádět Ručně, pak je pro úplný přepočet výkazu třeba vyvolat tento přepočet příslušnou volbou v menu nebo stiskem klávesy F9. Makrá v dodávaných výkazoch sú definované tak, že sa jednotlivé bunky aktualizujú rovno automaticky po opustení danej bunky, avšak v prípade, že by ste mali bunku definovanú napr. ako "rovná sa" A + B, tak je potrebné prepočet spustiť, aby došlo k napočítaniu podľa daného vzorca.
Tiež nezabudnite v záhlaví listov zvoliť príslušné obdobia. Na to se často zapomíná zejména u výsledovky, tj. výkazu zisků a ztrát, kdy by si uživatel vlastně měl napočítat datovou kostku za období, k němuž sestavuje výsledovku a za období předcházející a potom na listu výsledovky v záhlaví vybrat jedno z nich jako "Sledovaný časový interval" a druhé jako "Minulý časový interval". Pokiaľ by ste ponechali východiskovú hodnotu <Všetky>, tak samozrejme napočítaný výkaz nebude zmysluplný.
Je potrebné mať povolené makrá.
Neodporúčame makrá povoľovať úplne, tzn. nastavovať úroveň zabezpečenia makier na nízku. V aplikaci OpenOffice/Libre Office si lze nastavit na Střední (v aplikaci Libre Office dle zkušeností funguje i při Vysoké úrovni). Pak je ale třeba nejdříve přidat adresář s instalací ABRA Gen mezi důvěryhodné zdroje. Viz Volby→Zabezpečení→Zabezpečení maker→Důvěryhodné zdroje→Důvěryhodná umístění. Důvěryhodné umístění by nemělo být zapsáno prostřednictvím UNC cesty (\\server\cesta\...), ale je třeba uvést jej pomocí namapovaného písmena (S:\cesta\...) příp. výkazy umístit do nějakého lokálního adresáře. V opačném případě aplikace Calc příslušné nastavení nebere v potaz a hodnoty stále nevypisuje, i když je důvěryhodné umístění zadáno.
Pokud otevření výkazu ze systému ABRA Gen selže, tj. nepodaří se aplikaci MS Excel dohledat (není na daném lokálním PC instalována) nebo se nepodaří otevřít doplněk (xla soubor není v rootu adresáře, kde je instalována ABRA Gen) nebo není pro danou instalaci zaregistrováno napojení na Excel/OpenOffice Calc (tj. není NxServ64.dll správně zaregistrován na daném PC pro danou ABRA Gen), pak program zobrazí chybové hlášení. Je potrebné zaistiť požadované podmienky spustenia a potom výkazy dokončiť znovu. Podrobněji viz OLE Automation server - NxServ64.dll a Doplněk aplikace MS Excel. Příp. pokud po otevření výkazů nebudete mít jednotlivé buňky napočteny a budou se vám zobrazovat pouze hodnoty #VALUE, je to pravděpodobně tím, že nemáte adekvátně povolena makra.
Ďalej viď Použitie výkazov v lokalizácii pre SR.

V SK lokalizácii sú okrem *.xls/*.ods dodávané ešte ďalšie súbory (tiež uložené v rootu adresára, kde je nainštalovaný systém ABRA):
- *.pdf s tzv. šablónami aktuálnych PDF formulárov požadovaných Daňovým riaditeľstvom SR (DR SR) - napr. uvpod1-2007.pdf, uvpod2-2007.pdf, UZPOD-14-print-save.pdf, ....)
- NxFDF.xla - doplněk, který ve výkazech dřívějších verzích zajišťoval možnost exportů vybraných výkazů do *.FDF souboru. Aktuálne sa rieši priamo v *.xls/*.ods
Viď použitie výkazov v lokalizácii pre SR je nasledujúce:
V dodávaných súboroch *.xls/*.ods s výkazmi pre SK lokalizáciu sa o. i. nachádzajú funkčné tlačidlá, pomocou ktorých si môžete vygenerovať výkazy do exportných súborov vo formáte *.FDF nebo *.XML.
Zvoľte podľa toho, aký ďalší postup plánujete (či len obstaranie výkazov v papierovej podobe bez možnosti editácie alebo zostavenie výkazu elektronicky na www stránkach DR SR s importom dát):
- Zostavenie výkazu bez možnosti editácie (v papierovej podobe) ⇒ Tlačidlom "Vygenerovať FDF"
Vznikne exportný súbor(y) *.FDF potrebný pre následné zostavenie PDF formulárov. FDF súbor v sebe má odkaz na príslušnú PDF šablónu.
V prípade výkazov do r. 2013 sa toto konalo zvlášť pre Rozvahu a zvlášť pre Výkaz ziskov a strát (každý do samostatného súboru a *.xls/*.ods teda obsahovali zvlášť tlačidlo "Vygenerovať PDF" pre každý z nich). Pre r. 2014 DR SR zmenilo PDF šablónu tak, že je len jedna spoločná pre oba výkazy naraz, tým pádom pri výkazoch pre r. 2014 a vyšší sa toto koná naraz jedným spoločným tlačidlom "Vygenerovať PDF" (do jedného spoločného súboru).
Vytvorené *.FDF súbory je potrebné vložiť do toho istého adresára, kde máte uložené spomenuté *.PDF šablóny. Pokiaľ je FDF súbor v tom istom adresári ako príslušná PDF šablóna, tak jeho otvorením v aplikácii Acrobat Reader sa otvorí automaticky i PDF šablóna a načítajú sa do nej dáta zo súboru *.FDF. (Pri prvom spustení je v Acrobat Readeru potrebné povoliť načítanie tohto zdroja (bezpečnostné obmedzenie)). Pro usnadnění se po exportu do PDF zobrazí uživateli rovnou dialog s dotazem, jestli má být FDF také spuštěn. Pokiaľ zvolíte Áno a pokiaľ ste FDF uložili do toho istého umiestnenia ako PDF šablónu, výkaz sa automaticky spustí. Pokiaľ PDF šablóna v danom umiestnení nie je, Acrobat Reader nahlási chybu. Vyplnený formulár môžete vytlačiť.
Podmienkou je nainštalovaný program Acrobat Reader (a k nemu asociácie prípony *.FDF).
- Zostavenie výkazu s možnosťou editácie ⇒ Tlačidlom "Vygenerovať XML"
Vznikne exportný súbor(y) *.XML.
Výkaz zostavíte pomocou ponuky priamo na www stránkach DR SR. Tu je k dispozícii program eDane, do ktorého môžete XML načítať. Následne tu môžete výkaz editovať a hotový výkaz elektronicky podať.
Okrem vlastných výkazov tu môžete načítať i poznámky individuálnej účtovnej uzávierky. Tie sa v systéme ABRA neevidujú, účtovná jednotka si ich píše v nejakom textovom editore. Aby ich ale mohla ľahšie naimportovať na portál, má k dispozícii možnosť si z *.xls/*.ods vyexportovať o. i. *.XML s hlavičkou rovnakou ako majú ostatné výkazy (adresa, IČO, dátumy a i.), na eDane môže načítať túto hlavičku a potom pridať svoje textové súbory.

V rámci dodávaného xls sešitu s dodávanými definicemi účetních výkazů k ABRA Gen jsou k dispozici v definici makra speciální funkce, které jsou nebo mohou být využívány v definicích jednotlivých dodávaných výkazů. V nasledujúcom textu nájdete stručný popis vybraných funkcií:

Syntax: NxGetBeginning(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Podľa parametrov zobrazí počiatky účtov. Při výpočtu počátků na účtu postupuje vždy způsobem rozdílu stran MD-D pro aktivní účty a D-MD pro pasivní účty (na rozdíl od NxGetMathBeginning).
- <AAccounts> - účty
- <ADivision> - kód strediska
- <APeriod> - číslo obdobia
Máme výkaz za kalendárny rok zostavený po mesiacoch. Chceme definovať výpis počiatkov účtu 311, bez obmedzenia za strediská a za mesiac január. Potom použijeme funkciu NxGetBeginning("311";"";0).
Pokud potřebujete počítat obraty účtů, nepoužívejte systém =NxGetBalance - NxGetBeginning, ale používejte funkci NxGetTurnover, pro tento účel zavedenou. Prvý variant by mohol za niektorých okolností v kombinácii < > vrátiť nesprávne údaje.

Syntax: NxGetBalance(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Podľa parametrov zobrazí koncový stav účtov. Při výpočtu zůstatku účtu postupuje vždy způsobem rozdílu stran MD-D pro aktivní účty a D-MD pro pasivní účty (na rozdíl od NxGetMathBalance).
- <AAccounts> - účty
- <ADivision> - kód strediska
- <APeriod> - číslo obdobia
Máme výkaz za kalendárny rok zostavený po mesiacoch. Chceme definovať tržby z účtov 601 a 602, bez obmedzenia za strediská a za všetky mesiace. Potom použijeme funkciu NxGetBalance("601;602";"";-1).
Číslo časového intervalu môže byť zadávané aj viac automaticky podľa toho, ktorý časový interval si užívateľ vyberie z ponuky. Tzn. k bunke s combo tlačidlom s ponukou časových intervalov môže byť pomocou makra definované, že po vybratí jedného z časových intervalov užívateľom, sa napr. do bunky D$2 zapíše jeho poradové číslo. Potom funkciou zapíšeme NxGetBalance("601;602";"";D$2). Ak užívateľ vyberie napr. január, v bunke D$2 bude 0 a funkcia vráti zostatok účtov 601 a 602 za január bez obmedzenia za strediská.
Pokud potřebujete počítat obraty účtů, nepoužívejte systém =NxGetBalance - NxGetBeginning, ale používejte funkci NxGetTurnover, pro tento účel zavedenou. Prvý variant by mohol za niektorých okolností v kombinácii < > vrátiť nesprávne údaje.

Syntax: NxGetTurnover(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Podľa parametrov zobrazí obraty účtov. Při výpočtu obratu na účtu postupuje vždy způsobem rozdílu stran MD-D pro aktivní účty a D-MD pro pasivní účty (na rozdíl od NxGetMathTurnover).
- <AAccounts> - účty
- <ADivision> - kód strediska
- <APeriod> - číslo obdobia
Máme výkaz za kalendárny rok zostavený po mesiacoch. Chceme definovať výpis obratu účtu 311, bez obmedzenia za strediská a za mesiac január. Potom použijeme funkciu NxGetTurnover("311";"";0).

Syntax: NxGetMathBeginning(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Význam je rovnaký ako pri funkcii NxGetBeginning, len s tým rozdielom, že pri výpočte počiatkov na účte postupuje vždy spôsobom rozdielu strán MD-D bez ohľadu na to, či je účet aktívny alebo pasívny.
Máme výkaz za kalendárny rok zostavený po mesiacoch. Chceme definovať výpis počiatku účtu 321xx, bez obmedzenia za strediská a za mesiac január. Daný účet je pasívny a nech má zadaný počiatok na strane D 13000,-.
Pokiaľ použijeme funkciu NxGetBeginning("321xx";"";0), dostaneme hodnotu +13000 (D-MD).
Pokiaľ použijeme funkciu NxGetMathBeginning("321xx";"";0), dostaneme hodnotu -13000 (MD-D).

Syntax: NxGetMathBalance(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Význam je rovnaký ako pri funkcii NxGetBalance, len s tým rozdielom, že pri výpočte koncových stavov účtu postupuje vždy spôsobom rozdielu strán MD-D bez ohľadu na to, či je účet aktívny alebo pasívny.
Máme výkaz za kalendárny rok zostavený po mesiacoch. Chceme definovať výpis zostatku účtu 321xx, bez obmedzenia za strediská a za všetky mesiace. Daný účet je pasivní a nechť má zůstatek na straně D 18000,-
Pokiaľ použijeme funkciu NxGetBalance("321xx";"";-1), dostaneme hodnotu +18000 (D-MD).
Pokiaľ použijeme funkciu NxGetMathBalance("321xx";"";-1), dostaneme hodnotu -18000 (MD-D).

Syntax: NxGetMathTurnover(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Význam je rovnaký ako pri funkcii NxGetTurnover, len s tým rozdielom, že pri výpočte obratov účtu postupuje vždy spôsobom rozdielu strán MD-D bez ohľadu na to, či je účet aktívny alebo pasívny.
Máme výkaz za kalendárny rok zostavený po mesiacoch. Chceme definovať výpis obratu účtu 321xx, bez obmedzenia za strediská a za mesiac január. Daný účet je pasívny a nech má celkom obrat 5000,- na strane D.
Pokiaľ použijeme funkciu NxGetTurnover("321xx";"";0), dostaneme hodnotu +5000 (D-MD).
Pokiaľ použijeme funkciu NxGetMathTurnover("321xx";"";0), dostaneme hodnotu -5000 (MD-D).

Syntax: NxGetCountPeriod():Numeric
Popis: Výkaz je obstarávaný za nejaké obdobie rozčlenené do niekoľkých časových intervalov (je to na užívateľovi). Táto funkcia potom vypíše ako číslo počet časových intervalov, do ktorých bolo obdobie pre výkazy rozčlenené.
Máme výkaz za kalendárny rok 2001 zostavený po mesiacoch. Potom funkcia NxGetCountPeriod() vráti 12.

Syntax: NxGetPeriodDatesStr(<AOrder>:Numeric):String
Popis: Výkaz je obstarávaný za nejaké obdobie rozčlenené do niekoľkých časových intervalov (je to na užívateľovi). Táto funkcia potom vypíše ako reťazec rozsah dátumov časového intervalu, ktorý má poradie zadané v parametri AOrder.
- <AOrder> - poradie časového intervalu z tých, na ktoré bolo obdobie pre výkazy rozdelené
Máme výkaz za kalendárny rok 2001 zostavený po mesiacoch. Potom funkcia NxGetPeriodDatesStr(0) vráti 1:1.1.2001-31.1.2001, funkcia NxGetPeriodDays(1) vráti 2 2:1.2.2001-28.2.2001 atď.

Syntax: NxGetPeriodDays(<AOrder>:Numeric):Numeric
Popis: Výkaz je obstarávaný za nejaké obdobie rozčlenené do niekoľkých časových intervalov (je to na užívateľovi). Táto funkcia potom vypíše počet dní z intervalu, ktorý má poradie zadané v parametri AOrder.
- <AOrder> - poradie časového intervalu z tých, na ktoré bolo obdobie pre výkazy rozdelené
Máme výkaz za kalendárny rok zostavený po mesiacoch. Potom funkcia NxGetPeriodDays(0) vráti 31 dní (za január), funkcia NxGetPeriodDays(1) vráti 28 atď.

Syntax: NxGetPeriodName(<AOrder>:Numeric):String
Popis: Výkaz je obstarávaný za nejaké obdobie rozčlenené do niekoľkých časových intervalov (je to na užívateľovi). Táto funkcia potom vypíše ako reťazec vnútorné označenie časového intervalu, ktorý má poradie zadané v parametri AOrder.
- <AOrder> - poradie časového intervalu z tých, na ktoré bolo obdobie pre výkazy rozdelené
Máme výkaz za kalendárny rok zostavený po mesiacoch. Potom funkcia NxGetPeriodName(0) vráti 1 deň (za január), funkcia NxGetPeriodName(1) vráti 2 (február) atď.

Syntax: NxDividing(<ADividend>:Double,<ADividend>:Double):Double
Popis: Delenie dvoch numerických výrazov <ADividend> a <ADivider>. V prípade, že nastanie delenie nulou, vráti 0 bez vyhlásenia chyby.
- <ADividend> - delenec
- <ADivider> - deliteľ
NxDividing(5;X), pričom X=0, vráti numerickú hodnotu 0

Syntax: NxGetMMFName():String
Popis: Funkcia vráti meno pamäťovej tabuľky. Na definície výkazov ju bežný užívateľ nebude potrebovať.

Syntax: NxGetAccRep(<MMFName>:String):Boolean
Popis: Vráti logickú 1, pokiaľ sa podarí nahrať dáta z pamäťovej tabuľky, ktorej meno je dané v parametri funkcie. Na definície výkazov ju bežný užívateľ nebude potrebovať.
- <AOrder> - poradie časového intervalu z tých, na ktoré bolo obdobie pre výkazy rozdelené

Syntax: NxGetAccRepFromFile():Boolean
Popis: Vráti logickú 1, pokiaľ sa podarí nahrať dáta zo súboru. Na definície výkazov ju bežný užívateľ nebude potrebovať. V dodávaném xls sešitu je použita pro definici funkce Načtení ze souboru v menu ABRA Gen.

Syntax: NxGetAudited():String
Popis: Vráti hodnotu v závislosti od toho, či výkaz bol obstaraný z dát s ohľadom na príznak Audit alebo nie, tzn. vracia 'A', pokiaľ bol výkaz zostavený s obmedzením za len auditované záznamy, 'N' za len neauditované, alebo '%', pokiaľ obmedzenie za príznak audit nebolo použité.

Syntax: NxGetAuditedStr():String
Popis: Vráti hodnotu podľa toho, či výkaz bol obstaraný z dát s ohľadom na príznak Audit, podobne ako NxGetAudited(). Vracia 'Áno', pokiaľ bol výkaz zostavený s obmedzením za len auditované záznamy, 'Nie' za len neauditované, alebo ' ' (prázdny reťazec), pokiaľ obmedzenie za príznak audit nebolo použité.

Syntax: NxGetIsRequest():String
Popis: Vráti hodnotu podľa toho, či výkaz bol obstaraný z dát vrátane účtovných žiadostí alebo nie. Vracia 'A' - Započítať žiadosti, 'N' - Nezapočítať žiadosti.

Syntax: NxGetIsRequestStr(): String
Popis: Vráti hodnotu podľa toho, či výkaz bol obstaraný z dát vrátane účtovných žiadostí alebo nie podobne ako NxGetIsRequest, ale vracia 'Áno' - Započítať žiadosti, 'Nie' - Nezapočítať žiadosti.

Syntax: NxGetDivisionsStr():String
Popis: Vracia textovo, ako bolo obmedzené za strediská.
Obstarávame výkaz, ktorý obmedzíme za strediská s kódmi 100, 110 a 120. Potom funkcia NxGetDivisionsStr() vráti reťazec: (3):100;110;120. Pokiaľ by nebolo obmedzené za strediská, vrátila by prázdny reťazec.

Syntax: NxGetBusOrdersStr():String
Popis: Vracia textovo, ako bolo obmedzené za zákazky. Viď príklad pri NxGetDivisionsStr().

Syntax: NxGetBusTransactionsStr():String
Popis: Vracia textovo, ako bolo obmedzené za obchodné prípady. Viď príklad pri NxGetDivisionsStr().

Syntax: NxGetFirmsStr():String
Popis: Vracia textovo, ako bolo obmedzené za firmy. Viď príklad pri NxGetDivisionsStr().

Syntax: NxGetCompanyInfo(ValueName: string):string.
Popis: Podľa parametra ValueName určuje položku z objektu GlobData, tzn. v závislosti od hodnoty parametra môže vrátiť - napr. názov firmy a kompletnú adresu vrátane prípadných telefónov, faxov, IČO, IČ DPH, informácie o platení DPH, ďalšie dáta z ostatných údajov.
- <ValueName> - položka z objektu GlobData (napr. názov firmy, IČO) alebo po uvedení Address_ID položka firemnej adresy.
NxGetCompanyInfo("CompanyName") vráti názov firmy, tak ako je uvedený v nastavení firmy. NxGetCompanyInfo("Address_ID.Street") vráti názov ulice, tak ako je uvedený vo firemnej adrese.

Syntax: NxGetSystemPeriodInfo(Period: integer; ValueName: string; EndDate: string): string
Popis: Podľa parametra ValueName určuje položku z objektu Obdobie, tzn. v závislosti od hodnoty parametra môže vrátiť napr. kód účtovného obdobia, za ktoré je obstarávaný účtovný výkaz, alebo dátum počiatku alebo konca tohto účtovného obdobia, názov účtovného obdobia.
- <Period> - určuje poradie časovej periódy zadanej v obmedzení účtovných výkazov. Môže byť i hodnota -1, viď Príklad 2.
- <ValueName> - názov položky z objektu Obdobie.
- <EndDate> - nepovinný parametr - určuje, k jakému datumu z časového intervalu z účetních výkazů se dohledává období z ABRA Gen - "A" datum do, "N" datum od. Defaultná hodnota je "A".
NxGetSystemPeriodInfo(2;"Code") vráti kód obdobia, do ktorého spadá koncový dátum časového intervalu číslo 2 z účtovných výkazov. NxGetSystemPeriodInfo(0;"DateTo$Date","N") vráti "dátum od" z obdobia, do ktorého spadá začiatočný dátum časového intervalu z účtovných výkazov.
Využití hodnoty "-1"
Mějme období:
- 2005 - rok 2005 - od 1.1.2005 do 31.12.2005
-
2006 - rok 2006 - od 1.1.2006 do 31.12.2006
Potom:
- NxGetSystemPeriodInfo(-1;"Code") vrátí kód období, do kterého spadá 31.12.2006.
- NxGetSystemPeriodInfo(-1;"Code";"N") vrátí kód období, do kterého spadá 1.1.2005.

Táto časť sa venuje možnostiam syntaxe výpočtových vzorcov, ktoré sa dajú používať v definícii riadkov účtovných výkazov. Ide o definíciu xls tabuľky či ods (resp. predtým *.sxc) tabuľky, čiže pri zápisoch výpočtových vzorcov je potrebné dodržať syntax stanovenú pre daný tabuľkový kalkulátor, v prípade potreby viď help Excel resp. Calc. Použít můžete samozřejmě všechny funkce dostupné v rámci MS Excel, včetně funkcí dodávaných výrobcem ABRA Gen speciálně pro tyto výkazy (viz popis dodávaných funkcí výše). Pre funkcie dodávané výrobcom ďalej platí:

V tomto případě se uvede číslo účtové třídy, skupiny, syntetického nebo analytického účtu na libovolný počet míst. Ak uvediete napr. 60, vysčítajú sa všetky účty skupiny 60. Pokiaľ nie je ďalšími parametrami stanovené inak, berú sa koncové zostatky účtov:
- pri aktívnych, nákladových a podsúvahových účtoch (typy účtov viď Účtový rozvrh) sa zostatok stanovuje ako rozdiel strán MD-D
- pri pasívnych a výnosových účtoch naopak ako rozdiel strán D-MD.
Prídavnými parametrami (riadiacimi znakmi) sa dá ďalej presnejšie určiť, ktoré zostatky a ktorých účtov sa majú sčítať. Je možné použiť tieto znaky:
t | Len daňové účty napr. člen 60t znamená zostatok účtov skupiny 60, kde z tejto skupiny sa sčítajú iba účty nastavené ako daňové - viď Príklad v popise položky Daňový v Účtovom rozvrhu. | ||||||||||||||||||||||||||||||
nt |
Len nedaňové účty napr. člen 50nt znamená zostatok účtov skupiny 50, kde z tejto skupiny sa sčítajú iba účty nastavené ako nedaňové.
|
||||||||||||||||||||||||||||||
s | Len krátkodobé účty napr. člen 311s znamená zostatok účtov skupiny 311, kde z tejto skupiny sa sčítajú iba účty nastavené ako krátkodobé - viď Príklad v popise položky Krátkodobý v Účtovom rozvrhu. | ||||||||||||||||||||||||||||||
ns |
Len dlhodobé účty napr. člen 311ns znamená zostatok účtov skupiny 311, kde z tejto skupiny sa sčítajú iba účty nastavené ako dlhodobé - viď Účtový rozvrh.
|
||||||||||||||||||||||||||||||
d | Vezme sa iba strana MD účtu (resp. skupiny či triedy) | ||||||||||||||||||||||||||||||
c |
Vezme sa iba strana D účtu (resp. skupiny či triedy)
|
||||||||||||||||||||||||||||||
a |
Len účty s nastaveným druhom činnosti Vedľajšia činnosť (auxiliary). 504a vo Výkaze ziskov a strát značí účet 504 s vedľajším druhom činnosti. |
||||||||||||||||||||||||||||||
m |
Len účty s nastaveným druhom činnosti Hlavná činnosť (main). 504m vo Výkaze ziskov a strát značí účet 504 s hlavným druhom činnosti. |
||||||||||||||||||||||||||||||
- | Znak "mínus". Mení znamienko, tzn. násobí číslom -1. | ||||||||||||||||||||||||||||||
> | Ak je zostatok väčší ako nula, vezme sa tento zostatok, inak sa vezme 0. Napr. 34300>, potom ak bude zostatok účtu 34300 väčší ako 0, započíta sa do bunky, ak bude záporný, započíta sa nula). | ||||||||||||||||||||||||||||||
< |
Ak je zostatok menší ako nula, vezme sa tento zostatok v absolútnej hodnote, inak sa vezme 0. (Napr. 34300>, potom ak bude zostatok účtu 34300 menší ako 0, započíta sa do bunky jeho absolútna hodnota, ak bude kladný, započíta sa nula). Použitie funkcií <,> objasníme na príklade: Majme účet 343. Z povahy tohto účtu však vyplýva, že nie je možné dopredu rozhodnúť, či bude pohľadávkou alebo záväzkom a je teda potrebné ho podľa zostatku variantne zahrnúť do záväzkov alebo do pohľadávok. a) Máme účet 343 definovaný ako pasívny. Potom si v rozvahe musíme definovať započítanie zostatku tohto účtu nasledovne:
Máme dva prípady obratov a zostatkov na danom účte (zostatok pasívneho účtu je D-MD):
Pak se účet 343 promítne do rozvahy:
a) Máme účet 343 definovaný ako aktívny. Potom si v rozvahe musíme definovať započítanie zostatku tohto účtu nasledovne:
Máme dva prípady obratov a zostatkov na danom účte (zostatok aktívneho účtu je MD-D):
Pak se účet 343 promítne do rozvahy:
Funkcia "<" najprv overí, či číslo je < 0. Ak je väčšie ako 0, tak vykoná vynulovanie. Ak je menšie, vráti absolútnu hodnotu. Tzn. prebije aj symbol "-". Takže ak je potrebné skutočne čísla od seba odčítať, treba ich odčítať až v Exceli nie ako výpočet účtov v jednom vyvolaní funkcie. Napriek tomu má "-" s kombináciou <> zmysel: obracia znamienko pred porovnaním s 0. A vracia tým pádom nenulové číslo v opačných prípadoch! Objasníme na príklade: Máme účet 09230, ktorý chceme použiť v rozvahe ako účet korekčný. Je definovaný ako aktívny a jeho zostatok sa v rámci korekcií odčíta od zostatku účtu 082, napr. nasledovne:
Nech zostatok účtu 0923 je MD-D=+5000,-. Ak by sme chceli zostatok účtu odčítať len v prípade, že je kladný a použili výraz NxGetBalance("082;-0923>"), odčítala by sa nula! Pretože funkcia:
|
Poznámka pre užívateľov predchádzajúceho systému ABRA Gold: V ABRA Gold sa používal symbol "m1", ktorý slúžil na otáčanie znamienka. V ABRA Gen se nezavádí. V ABRA Gen se nahrazuje klasickým minusem "-".

V tomto případě se uvede kód střediska, příp. výčet středisek oddělený čárkou. Pokiaľ nechcete za strediská obmedzovať, zostane parameter prázdny.
Zostatok syntetického účtu 311 obmedzený za strediská 100 a 200 za všetky časové intervaly je NxGetBalance("311"; "100,200";-1).
Zostatok syntetického účtu 311 bez obmedzenia za strediská za všetky časové intervaly je NxGetBalance("311"; "";-1).

V tomto případě se uvede pořadové číslo požadovaného časového intervalu, za který chceme výkazy vyčíslit, přičemž časové intervaly jsou číslovány postupně od nuly. Pokiaľ chcete výkaz vypísať za všetky časové intervaly, musí mať parameter hodnotu -1.
Máme výkaz za kalendárny rok zostavený po mesiacoch. Zostatok syntetického účtu 311 bez obmedzenia za strediská za január je NxGetBalance("311"; "";0), za február je NxGetBalance("311"; "";1) atď. Zostatok syntetického účtu 311 bez obmedzenia za strediská za všetky časové intervaly je NxGetBalance("311"; "";-1).

Okrem vyššie uvedených riadiacich znakov sa v niektorých výkazoch môžu vyskytnúť i iné znaky, ktoré však nie sú riadiacimi znakmi, ale majú iný účel. Ide o nasledujúce:
AÚ |
Nejde o riadiaci znak pre získanie hodnôt z účtu, ale o naznačenie pre užívateľov, aby si sem doplnili konkrétne analytické účty. V NxDefVykPodnik2014.xls, na záložce ROZP je v sekci pro Krátkodobý finanční majetek uvedeno -221AÚ. V tomto prípade ide o potrebu doplniť analytické účty pre bankové účty kontokorentu, pretože tie sa nemajú uvádzať tu v aktívach. |