Účetní výkazy - věcný obsah
V této kapitole je uveden popis následujících témat týkajících se pořizování účetních výkazů:
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í. Více viz kap. ABRA on-line - přístup k šablonám výkazů pomocí vzdálené aplikace z prostředí 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.
Jelikož jde o COM (resp. DCOM) OLE Automation server, je jeho použití omezeno 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, u kterých se pro obdobné akce vyžadují administrátorská oprávnění, je třeba mít pro zdárné provedení dané akce požadovaná oprávnění. 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. Pokud již je ve Windows registrech registrován s nějakou cestou (např. z dřívější registrace téhož dll z jiné instalace), pak jej nové provedení registrace přeregistruje do svého adresáře. (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čném případě skončí pokus o spuštění výkazů chybou u MS Excel typu "ActiveX Control - can't create object" apod., u Open Office chybou typu "Objekt je nedostupný, neplatná reference na objekt", což může způsobovat až problém s uzavřením dané aplikace.
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.
Rozhraní OLE Automation pro účetní výkazy je vytaženo jako funkce do MS Excel. V případě MS Excel k tomu slouží dodávaný soubor NxABRA.xla, který se po spuštění Účetních výkazů registruje jako doplněk do aplikace MS Excel a zaregistruje defaultně dodávané funkce využívané v dodávaných výkazech (uživatel si ale může pochopitelně definovat další své vlastní).
Tedy, aby bylo možno použít výstup do MS Excel, musí být na klientském PC instalován MS Excel a musí být k dispozici tento *.xla soubor.
Kromě doplňku NxABRA.xla je dodáván ještě doplněk NxTurnover.xla. Ten je ale určený k jinému účelu. Viz Účetní přehledy pomocí OLE rozhraní.
Toto neplatí pro Calc (Open Office), jelikož zde jsou funkce zakomponovány rovnou ve výkazech *.ods (resp. dříve *.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). Tu si můžeme pro snazší pochopení představit jako více rozměrnou, neboli jakousi "datovou krychli". Jednotlivé její rozměry (dimenze) jsou pak veličiny, podle kterých lze provádět tzv. řezy a získávat potřebné hodnoty. Objasníme na zjednodušeném nákresu:
Mějme datovou krychli, která bude obsahovat napočtená data zůstatků účtů po měsících a střediscích. Tedy nechť rozměr x naší krychle představuje čas (měsíce), rozměr z střediska a rozměr y pak zůstatky na jednotlivých účtech. Pokud nás pak v nějakém výkazu budou zajímat zůstatky účtů za měsíc X a středisko 100, provede se příslušný řez danou krychlí data jsou k dispozici (čili neprovádí se žádný další výpočet z databáze, ale o řez napočtenými daty):
Růžová rovina znázorňuje řez za měsíc X a fialová rovina řez za středisko 100. Průsečík rovin jsou zůstatky účtů v měsíci X za středisko 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). Ukládají se do souboru typu *.ard (ABRA report data). OLE Automation účetních výkazů pak umí čerpat data buď z takovéhoto souboru anebo z nově napočtené "datové krychle".
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. Pokud to nelze, systém to oznámí.
Verze ARD viz 4.,5. pozice v HEXa zobrazení ARD souboru.
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 účetních výkazů je apriori určena k pořízení výkazů prostřednictvím MS Excel. Nicméně si je uživatel může teoreticky pořídit prostřednictvím tiskových sestav ABRA Gen. Tiskové sestavy pro účetní výkazy však nejsou výrobcem defaultně dodávány. Uživatel si je může dodefinovat sám, příp. si je objednat u servisních konzultantů servisní sítě výrobce, ale je třeba vzít v potaz, že toto řešení je zbytečně složité - definice a údržba takovýchto reportů je poměrně náročná (s ohledem na charakter výkazů se v podstatě jedná o potřebu do značné míry simulovat tabulkový kalkulátor). Dále je třeba mít na zřeteli, že tyto tiskové sestavy čerpají data nikoli z databáze (jako tomu v tisk. sestavách v jiných částech systému), ale z datové krychle.
Pro vlastní pořízení jednotlivých typů účetních výkazů v aplikaci MS Excel z aktuálně napočtené datové krychle nebo z nějaké uložené v souboru jsou dodávány soubory NxDefVyk*.xls, což jsou MS Excel sešity, na jejichž jednotlivých listech jsou definovány výkazy pro Hospodářský výsledek, Rozvahu, Výsledovku a další.
V dodávaných definicích se používají dodávané funkce popsané dále. 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).
Dále, pokud máte v MS Excel v sekci Možností výpočtů 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 MS Excel nebo stiskem klávesy F9). Makra v dodávaných výkazech jsou definována tak, že se jednotlivé buňky aktualizují rovnou automaticky po opuštění dané buňky, nicméně v případě, že byste měli buňku definovanou např. jako "rovná se" A + B, tak je třeba přepočet spustit, aby došlo k napočtení dle daného vzorce.
Rovněž nezapomeňte v záhlaví listů zvolit příslušná období. Na to se často zapomíná zejména u výsledovky, tj. výkazu zisků a ztrát, kdy by si uživate 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". Pokud byste ponechali výchozí hodnotu <Všechny>, pak samozřejmě napočtený výkaz nebude smysluplný.
Je třeba mít povolena makra.
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 třeba zajistit požadované podmínky pro spuštění a poté výkazy dokončit 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ší.
V dodávaných definicích se používají dodávané funkce popsané dále. 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. Makra v dodávaných výkazech jsou definována tak, že se jednotlivé buňky aktualizují rovnou automaticky po opuštění dané buňky, nicméně v případě, že byste měli buňku definovanou např. jako "rovná se" A + B, tak je třeba přepočet spustit, aby došlo k napočtení dle daného vzorce.
Rovněž nezapomeňte v záhlaví listů zvolit příslušná období. 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". Pokud byste ponechali výchozí hodnotu <Všechny>, pak samozřejmě napočtený výkaz nebude smysluplný.
Je třeba mít povolena makra.
Nedoporučujeme makra povolovat úplně, tj. nastavovat úroveň zabezpečení maker na nízkou. 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 třeba zajistit požadované podmínky pro spuštění a poté výkazy dokončit 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.
S nstalací systému je dodáváno několik druhů výkazů, které jsou k dispozici v instalačním adresáři ABRA Gen. Soubory jsou dodávány jak pro MS Office, tak pro OpenOffice a na konci názvu souboru najdete číslo, což je rok, pro který jsou aktuální, například NxDefVykPodnikPKP2021 je aktuální v roce 2021. Jestliže pro daný rok nevidíte výkaz shodující se s aktuálním rokem, znamená to, že poslední výkaz je stále platný (Například výkaz NxDefVykPodnik2019 je platný a aktuální i v roce 2021), případně ještě nebyl součástí vámi instalované verze a bude doplněn později. Pro jednotlivé typy organizací podporujeme/udržujeme příslušnou definici Účetních výkazů:
-
NxDefVykPodnik - Účetní výkaz vhodný pro některé typy organizací.
-
NxDefVykNezisk - Účetní výkazy, které používají neziskové organizace.
-
NxDefVykPodnikPKP - Pomocný konsolidační přehled. Detailní informace o tomto výkazu v samostatné kapitole níže.
-
NxDefVykPO2019 - Účetní výkazy pro příspěvkové organizace
-
NxDefVykPO_PAP - Pomocný analytický přehled.
Výkaz NxDefVykPO_PAP není plněn automaticky z ABRA Gen, je třreba údaje do souobu zadávat ručně.
Výkaz PKP je určen pro soukromé podnikatele (účtující podle vyhlášky 500/2002), kteří mají nějakou účast státu a jsou zařazeni do konsolidací. V podstatě jde o rozvahu, výsledovku (a navíc podrozvahové účetnictví) ve složení obdobném výkazům pro příspěvkové organizace (výkazy PKP I. a IV.) a detailnější přehled podle jednotlivých partnerů (firem-IČO) transakcí (výkazy PKP III. a V.) tak, jak se vyžaduje např. u výkazu PAP.
Aby bylo možné v rámci průvodce sestavením účetních výkazů v agendě Účetní výkazy napočítat data pro tento výkaz, musí být nastaven firemní parametr Vytvářet pomocný konsolidační přehled (PKP) na Ano. Dále je třeba:
- mít na účetních záznamech z dokladů, na nichž se nezadává primárně firma (např. z modulu Mezd) , doplněnu firmu. Tj. mít nastaven firemní parametr Umožnit měnit firmu na účetních zápisech na Ano a firmu na zmíněné doklady doplnit, což lze provést i hromadně.
- v Adresáři firem správně mít vyplněnou položku Konsolidovaná jednotka státu, což je potřeba pro výkaz PKP III., v němž se za tyto jednotky dělají detailnější přehledy.
Spolu s tím byla rozšířena funkčnost xla doplňku a změněna verze datové kostky.
ABRA Gen generuje pouze výkazy I., III., IV. a V. Výkazy PKP II. a VI. je jednak problematické ze stávajících dat vygenerovat a jednak většina firem pracujícíh s ABRA Gen nemá povinnost je sestavovat.
Viz též instruktážní video na toto téma.
Pomocný konsolidační přehled PKP
Ve verzi 21.1 byl změněn celkový vzhled systému, na některých místech došlo k úpravám uspořádání uživatelského rozhraní. Vzhled produktu zachycený na obrázku/ve videu se proto může od aktuální verze mírně lišit. Bez ohledu na vizuální rozdíly obrázky/videa stále relevantním způsobem osvětlují danou problematiku.Více viz Obrázky a videa v helpu.
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 následujícím textu naleznete stručný popis vybraných funkcí:
Syntaxe: NxGetBeginning(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Podle parametrů zobrazí počátky účtů. 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 střediska
- <APeriod> - číslo období
Mějme výkaz za kalendářní rok sestavený po měsících. Chceme definovat výpis počátků účtu 311, bez omezení za střediska a za měsíc leden. Pak použijeme funkci 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. První varianta by mohla za některých okolností v kombinaci < > vrátit nesprávné údaje.
Syntaxe: NxGetBalance(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Podle parametrů zobrazí koncový stav účtů. 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 střediska
- <APeriod> - číslo období
Mějme výkaz za kalendářní rok sestavený po měsících. Chceme definovat tržby z účtů 601 a 602, bez omezení za střediska a za všechny měsíce. Pak použijeme funkci NxGetBalance("601;602";"";-1).
Číslo časového intervalu může být zadáváno i více automaticky podle toho, který časový interval si uživatel vybere z nabídky. Tj. k buňce s combo tlačítkem s nabídkou časových intervalů může být přes makro definováno, že po výběru jednoho z časových intervalů uživatelem, se např. do buňky D$2 zapíše jeho pořadové číslo. Pak funkci zapíšeme NxGetBalance("601;602";"";D$2). Pokud uživatel vybere např. leden, v buňce D$2 bude 0 a funkce vrátí zůstatek účtů 601 a 602 za leden bez omezení za střediska.
Pokud potřebujete počítat obraty účtů, nepoužívejte systém =NxGetBalance - NxGetBeginning, ale používejte funkci NxGetTurnover, pro tento účel zavedenou. První varianta by mohla za některých okolností v kombinaci < > vrátit nesprávné údaje.
Syntaxe: NxGetTurnover(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Podle parametrů zobrazí obraty účtů. 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 střediska
- <APeriod> - číslo období
Mějme výkaz za kalendářní rok sestavený po měsících. Chceme definovat výpis obratu účtu 311, bez omezení za střediska a za měsíc leden. Pak použijeme funkci NxGetTurnover("311";"";0).
Syntaxe: NxGetMathBeginning(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Význam je shodný jako u funkce NxGetBeginning, jen s tím rozdílem, že při výpočtu počátků na účtu postupuje vždy způsobem rozdílu stran MD-D bez ohledu na to, zda je účet aktivní či pasivní.
Mějme výkaz za kalendářní rok sestavený po měsících. Chceme definovat výpis počátku účtu 321xx, bez omezení za střediska a za měsíc leden. Daný účet je pasivní a nechť má zadaný počátek na straně D 13000,-.
Pokud použijeme funkci NxGetBeginning("321xx";"";0), pak získáme hodnotu +13000 (D-MD).
Pokud použijeme funkci NxGetMathBeginning("321xx";"";0), pak získáme hodnotu -13000 (MD-D).
Syntaxe: NxGetMathBalance(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Význam je shodný jako u funkce NxGetBalance, jen s tím rozdílem, že při výpočtu koncových stavů účtu postupuje vždy způsobem rozdílu stran MD-D bez ohledu na to, zda je účet aktivní či pasivní.
Mějme výkaz za kalendářní rok sestavený po měsících. Chceme definovat výpis zůstatku účtu 321xx, bez omezení za střediska a za všechny měsíce. Daný účet je pasivní a nechť má zůstatek na straně D 18000,-
Pokud použijeme funkci NxGetBalance("321xx";"";-1), pak získáme hodnotu +18000 (D-MD).
Pokud použijeme funkci NxGetMathBalance("321xx";"";-1), pak získáme hodnotu -18000 (MD-D).
Syntaxe: NxGetMathTurnover(<AAccounts>:String, <ADivision>:String, <APeriod>:String):Numeric
Popis: Význam je shodný jako u funkce NxGetTurnover, jen s tím rozdílem, že při výpočtu obratů účtu postupuje vždy způsobem rozdílu stran MD-D bez ohledu na to, zda je účet aktivní či pasivní.
Mějme výkaz za kalendářní rok sestavený po měsících. Chceme definovat výpis obratu účtu 321xx, bez omezení za střediska a za měsíc leden. Daný účet je pasivní a nechť má celkem obrat 5000,- na straně D.
Pokud použijeme funkci NxGetTurnover("321xx";"";0), pak získáme hodnotu +5000 (D-MD).
Pokud použijeme funkci NxGetMathurnover("321xx";"";0), pak získáme hodnotu -5000 (MD-D).
Syntaxe: NxGetCountPeriod():Numeric
Popis: Výkaz je pořizován za nějaké období rozčleněné do několika časových intervalů (dle volby uživatele). Tato funkce pak vypíše jako číslo počet časových intervalů, do kterých bylo období pro výkazy rozčleněno.
Mějme výkaz za kalendářní rok 2001 sestavený po měsících. Pak funkce NxGetCountPeriod() vrátí 12.
Syntaxe: NxGetPeriodDatesStr(<AOrder>:Numeric):String
Popis: Výkaz je pořizován za nějaké období rozčleněné do několika časových intervalů (dle volby uživatele). Tato funkce pak vypíše jako řetězec rozsah datumů časového intervalu, který má pořadí zadané v parametru AOrder.
- <AOrder> - pořadí časového intervalu z těch, na které bylo období pro výkazy rozděleno
Mějme výkaz za kalendářní rok 2001 sestavený po měsících. Pak funkce NxGetPeriodDatesStr(0) vrátí 1:1.1.2001-31.1.2001, funkce NxGetPeriodDays(1) vrátí 2 2:1.2.2001-28.2.2001 atd.
Syntaxe: NxGetPeriodDays(<AOrder>:Numeric):Numeric
Popis: Výkaz je pořizován za nějaké období rozčleněné do několika časových intervalů (dle volby uživatele). Tato funkce pak vypíše počet dnů z intervalu, který má pořadí zadané v parametru AOrder.
- <AOrder> - pořadí časového intervalu z těch, na které bylo období pro výkazy rozděleno
Mějme výkaz za kalendářní rok sestavený po měsících. Pak funkce NxGetPeriodDays(0) vrátí 31 dnů (za leden), funkce NxGetPeriodDays(1) vrátí 28 atd.
Syntaxe: NxGetPeriodName(<AOrder>:Numeric):String
Popis: Výkaz je pořizován za nějaké období rozčleněné do několika časových intervalů (dle volby uživatele). Tato funkce pak vypíše jako řetězec vnitřní označení časového intervalu, který má pořadí zadané v parametru AOrder.
- <AOrder> - pořadí časového intervalu z těch, na které bylo období pro výkazy rozděleno
Mějme výkaz za kalendářní rok sestavený po měsících. Pak funkce NxGetPeriodName(0) vrátí 1 (leden), funkce NxGetPeriodName(1) vrátí 2 (únor) atd.
Syntaxe: NxDividing(<ADividend>:Double,<ADividend>:Double):Double
Popis: Dělení dvou numerických výrazů <ADividend> a <ADivider>. V případě, že dojde k dělení nulou, tak vrátí 0 bez vyhlášení chyby.
- <ADividend> - dělenec
- <ADivider> - dělitel
NxDividing(5;X), přičemž X=0, vrátí numerickou hodnotu 0
Syntaxe: NxGetMMFName():String
Popis: Funkce vrátí jméno paměťové tabulky. K definicím výkazů ji běžný uživatel nebude potřebovat.
Syntaxe: NxGetAccRep(<MMFName>:String):Boolean
Popis: Vrátí logickou 1, pokud se podaří nahrát data z paměťové tabulky, jejíž jméno je dáno v parametru funkce. K definicím výkazů ji běžný uživatel nebude potřebovat.
- <AOrder> - pořadí časového intervalu z těch, na které bylo období pro výkazy rozděleno
Syntaxe: NxGetAccRepFromFile():Boolean
Popis: Vrátí logickou 1, pokud se podaří nahrát data ze souboru. K definicím výkazů ji běžný uživatel nebude potřebovat. V dodávaném xls sešitu je použita pro definici funkce Načtení ze souboru v menu ABRA Gen.
Syntaxe: NxGetAudited():String
Popis: Vrátí hodnotu v závislosti na tom, zda výkaz byl pořízen z dat s ohledem na příznak Audit nebo nikoliv, tj. vrací 'A', pokud byl výkaz sestaven s omezením za jen auditované záznamy, 'N' za jen neauditované, nebo '%', pokud omezení za příznak audit nebylo použito.
Syntaxe: NxGetAuditedStr():String
Popis: Vrátí hodnotu v závislosti na tom, zda výkaz byl pořízen z dat s ohledem na příznak Audit, obdobně jako NxGetAudited(). Vrací 'Ano', pokud byl výkaz sestaven s omezením za jen auditované záznamy, 'Ne' za jen neauditované, nebo ' ' (prázdný řetězec), pokud omezení za příznak audit nebylo použito.
Syntaxe: NxGetIsRequest():String
Popis: Vrátí hodnotu v závislosti na tom, zda výkaz byl pořízen z dat včetně účetních žádostí či nikoliv. Vrací 'A' - Započítat žádosti, 'N' - Nezapočítat žádosti.
Syntaxe: NxGetIsRequestStr(): String
Popis: Vrátí hodnotu v závislosti na tom, zda výkaz byl pořízen z dat včetně účetních žádostí či nikoliv obdobně jako NxGetIsRequest, ale vrací 'Ano' - Započítat žádosti, 'Ne' - Nezapočítat žádosti.
Syntaxe: NxGetDivisionsStr():String
Popis: Vrací textově, jak bylo omezeno za střediska.
Pořizujeme výkaz, který omezíme za střediska s kódy 100, 110 a 120. Pak funkce NxGetDivisionsStr() vrátí řetězec: (3):100;110;120. Pokud by nebylo omezeno za střediska, vrátila by prázdný řetězec.
Syntaxe: NxGetBusOrdersStr():String
Popis: Vrací textově, jak bylo omezeno za zakázky. Viz příklad u NxGetDivisionsStr().
Syntaxe: NxGetBusTransactionsStr():String
Popis: Vrací textově, jak bylo omezeno za obchodní případy. Viz příklad u NxGetDivisionsStr().
Syntaxe: NxGetFirmsStr():String
Popis: Vrací textově, jak bylo omezeno za firmy. Viz příklad u NxGetDivisionsStr().
Syntaxe: NxGetCompanyInfo(ValueName: string):string.
Popis: Podle parametru ValueName určuje položku z objektu GlobData, tj. v závislosti na hodnotě parametru může vrátit - např. název firmy a kompletní adresu včetně případných telefonů, faxů, IČO, DIČ, informace o plátcovství DPH, další data z ostatních údajů.
- <ValueName> - položka z objektu GlobData (např. název firmy, IČO) nebo po uvedení Address_ID položka firemní adresy.
NxGetCompanyInfo("CompanyName") vrátí název firmy, tak jak je uveden v nastavení firmy. NxGetCompanyInfo("Address_ID.Street") vrátí název ulice, tak jak je uveden ve firemní adrese.
Syntaxe: NxGetSystemPeriodInfo(Period: integer; ValueName: string; EndDate: string): string
Popis: Podle parametru ValueName určuje položku z objektu Období, tj. v závislosti na hodnotě parametru může vrátit např. kód účetního období, za které je pořizován účetní výkaz, nebo datum počátku či konce tohoto účetního období, název účetního období.
- <Period> - určuje pořadí časové periody zadané v omezení účetních výkazů. Může být i hodnota -1, viz Příklad 2.
- <ValueName> - název položky z objektu Období.
- <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átí kód období, do kterého spadá koncové datum časového intervalu číslo 2 z účetních výkazů. NxGetSystemPeriodInfo(0;"DateTo$Date","N") vrátí "datum od" z období, do kterého spadá počáteční datum časového intervalu z účetních výkazů.
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
Pak:
- 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.
Tato část se věnuje možnostem syntaxe výpočtových vzorců, které lze používat v definici řádků účetních výkazů. Jedná se o definici xls tabulky či ods (resp. dříve *.sxc) tabulky, čili při zápisech výpočtových vzorců je třeba dodržet syntaxi stanovenou pro daný tabulkový kalkulátor, v případě potřeby viz 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). Pro funkce dodávané výrobcem dále platí:
V tomto případě se uvede číslo účtové třídy, skupiny, syntetického nebo analytického účtu na libovolný počet míst. Uvedete-li např. 60, vysčítají se všechny účty skupiny 60. Pokud není dalšími parametry stanoveno jinak, berou se koncové zůstatky účtů:
- u aktivních, nákladových a podrozvahových účtů (typy účtů viz Účtový rozvrh) se zůstatek stanovuje jako rozdíl stran MD-D
- u pasivních a výnosových účtů naopak jako rozdíl stran D-MD.
Přídavnými parametry (řídícími znaky) lze dále přesněji určit, které zůstatky a kterých účtů se mají vysčítat. Lze použít tyto znaky:
t | Jen daňové účty např. člen 60t značí zůstatek účtů skupiny 60, kde z této skupiny se vysčítají pouze účty nastavené jako daňové - viz Příklad v popisu položky Daňový v Účtovém rozvrhu. | ||||||||||||||||||||||||||||||
nt |
Jen nedaňové účty např. člen 50nt značí zůstatek účtů skupiny 50, kde z této skupiny se vysčítají pouze účty nastavené jako nedaňové.
|
||||||||||||||||||||||||||||||
s | Jen krátkodobé účty např. člen 311s značí zůstatek účtů skupiny 311, kde z této skupiny se vysčítají pouze účty nastavené jako krátkodobé - viz Příklad v popisu položky Krátkodobý v Účtovém rozvrhu. | ||||||||||||||||||||||||||||||
ns |
Jen dlouhodobé účty např. člen 311ns značí zůstatek účtů skupiny 311, kde z této skupiny se vysčítají pouze účty nastavené jako dlouhodobé - viz Účtový rozvrh.
|
||||||||||||||||||||||||||||||
d | Vezme se pouze strana MD účtu (resp. skupiny či třídy) | ||||||||||||||||||||||||||||||
c |
Vezme se pouze strana D účtu (resp. skupiny či třídy)
|
||||||||||||||||||||||||||||||
a |
Jen účty s nastaveným druhem činnosti Vedlejší činnost (auxiliary). 504a ve Výkazu zisků a ztrát značí účet 504 s vedlejším druhem činnosti. |
||||||||||||||||||||||||||||||
m |
Jen účty s nastaveným druhem činnosti Hlavní činnost (main). 504m ve Výkazu zisků a ztrát značí účet 504 s hlavním druhem činnosti. |
||||||||||||||||||||||||||||||
- | Znak "minus". Mění znaménko, tj. násobí číslem -1. | ||||||||||||||||||||||||||||||
> | Je-li zůstatek větší než nula, vezme se tento zůstatek, jinak se vezme 0. Např. 34300>, pak bude-li zůstatek účtu 34300 větší než 0, započte se do buňky, bude-li záporný, započte se nula). | ||||||||||||||||||||||||||||||
< |
Je-li zůstatek menší než nula, vezme se tento zůstatek v absolutní hodnotě, jinak se započte 0 (Např. 34300<, pak bude-li zůstatek účtu 34300 menší než 0, započte se do buňky jeho absolutní hodnota, bude-li kladný, započte se nula). Použití funkcí <,> objasníme na příkladu: Mějme účet 343. Z povahy tohoto účtu však plyne, že nelze předem rozhodnout, zda bude pohledávkou nebo závazkem a je tedy třeba jej dle jeho zůstatku variantně zahrnout do závazků nebo do pohledávek. a) Mějme účet 343 definovaný jako pasivní. Pak si v rozvaze musíme definovat započtení zůstatku tohoto účtu následovně:
Mějme dva případy obratů a zůstatků na daném účtu (zůstatek pasivního účtu je D-MD):
Pak se účet 343 promítne do rozvahy:
b) Mějme účet 343 definovaný jako aktivní. Pak si v rozvaze musíme definovat započtení zůstatku tohoto účtu následovně:
Mějme dva případy obratů a zůstatků na daném účtu (zůstatek aktivního účtu je MD-D):
Pak se účet 343 promítne do rozvahy:
Funkce "<" nejdříve ověří, zda číslo je < 0. Je-li větší než 0, pak provede vynulovaní. Je-li menší, pak vrátí absolutní hodnotu. Tj. přebije i symbol "-". Tedy, je-li potřeba opravdu čísla od sebe odečíst, je třeba je odečíst až v Excelu nikoliv jako výčet účtů v jednom volání funkce. Přesto má "-" s kombinací <> smysl: obrací znaménko před porovnáním s 0. A vrací tím pádem nenulové číslo v opačných případech! Objasníme na příkladu: Mějme účet 09230, který chceme použít v rozvaze jako účet korekční. Je definován jako aktivní a jeho zůstatek se v rámci korekcí odečítá od zůstatku účtu 082, např. následovně:
Nechť zůstatek účtu 0923 je MD-D=+5000,-. Pokud bychom chtěli zůstatek účtu odečíst jenom v případě, že je kladný a použili výraz NxGetBalance("082;-0923>"), pak by se odečetla nula! Jelikož funkce:
|
Poznámka pro uživatele předchozího systému ABRA Gold: V ABRA Gold byl používán symbol "m1", který sloužil k otáčení znaménka. 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. Pokud nechcete za střediska omezovat, pak zůstane parametr prázdný.
Zůstatek syntetického účtu 311 omezený za střediska 100 a 200 za všechny časové intervaly je NxGetBalance("311"; "100,200";-1).
Zůstatek syntetického účtu 311 bez omezení za střediska za všechny č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. Pokud chcete výkaz vypsat za všechny časové intervaly, pak musí mít parametr hodnotu -1.
Mějme výkaz za kalendářní rok sestavený po měsících. Zůstatek syntetického účtu 311 bez omezení za střediska za leden je NxGetBalance("311"; "";0), za únor je NxGetBalance("311"; "";1) atd. Zůstatek syntetického účtu 311 bez omezení za střediska za všechny časové intervaly je NxGetBalance("311"; "";-1).
Kromě výše uvedených řídících znaků, se v některých výkazech mohou vyskytnout i jiné znaky, které však nejsou řídícími znaky, ale mají jiný účel. Jedná se o následující:
AÚ |
Nejde o řídící znak pro získání hodnot z účtu, ale o naznačení pro uživatele, aby si sem doplnili konkrétní analytické účty. V NxDefVykPodnik2014.xls, na záložce ROZP je v sekci pro Krátkodobý finanční majetek uvedeno -221AÚ. V tomto případě se jedná o potřebu doplnit analytické účty pro bankovní účty kontokorentu, protože ty se nemají uvádět zde v aktivech. |