Přeskočit na hlavní obsah

Desktopová aplikace - Novinky ve verzi 2026.6.0

8. 10. 2026 - Důležitá upozornění, Nové funkce, Vylepšení, Opravy chyb, Technické změny

Autor: Vývojář ABRA Flexi

⚠️ Důležitá upozornění

⚠️ Evidence, které se nesmějí mazat, jsou proti smazání chráněné i přes API. Volání DELETE i import s action="delete" u takové evidence nově končí chybou. Dřív šel záznam přes API smazat, přestože to evidence nepovoluje.

Týká se to i dokladových vazeb (DELETE /c/{firma}/vazba/{id}): jejich smazání obcházelo párovací logiku, doklad zůstal uhrazený bez vazby na úhradu a párovací skupinu šlo rozbít do neopravitelného stavu. Pro zrušení úhrady slouží akce odparovani na uhrazujícím dokladu; integrace, které k rozpárování používaly mazání vazby, je potřeba upravit.

Evidence uzivatelska-vazba se maže beze změny.

⚠️ Instalátor pro Windows a macOS instaluje PostgreSQL 17 místo verze 13. Při aktualizaci stávající instalace se data na novou verzi převedou automaticky.

Převod přenese celou databázi, takže u větších instalací trvá déle. Aktualizaci doporučujeme naplánovat mimo provoz. Na disku musí být volné místo zhruba o velikosti současných dat. Původní datový adresář zůstane jako záloha s číslem verze (například Data_old_PG13). Po ověření, že vše funguje, ho lze smazat.

Pokud na disku zůstala záloha z dřívější aktualizace, updater nabídne její smazání, přejmenování (například na Data_old_PG9_3), nebo ukončení aktualizace. Hláška o nedostatku místa vypíše nalezené staré zálohy i s jejich velikostí.

⚠️ Přepočet skladu je řádově rychlejší. Na datech firmy s ~3 miliony skladových pohybů doběhne plný přepočet za ~30 minut; dřív u takových firem trval řádově dny (v závislosti na konkrétním způsobu využívání). Uložení skladového dokladu na kartě s mnoha pohyby se zkrátilo z desítek sekund na ~1 sekundu. Na položce příjemky přibylo pole Vyskladněno MJ. Opravena je i chyba souběhu, při které mohly současným ukládáním dokladů více uživateli vzniknout přečerpané příjemky.

U FIFO skladů se mění ocenění výdejů z příjemek, jejichž hodnotu nelze beze zbytku rozdělit na jednotkové ceny se dvěma desetinnými místy — typicky u zboží sledovaného po výrobních číslech, například 3 kusy za 100,00 Kč. Výdej, který příjemku dočerpá, nově dopočítá rozdíl, aby součet ocenění výdejů odpovídal hodnotě příjemky; dřív rozdíl zůstával ležet na skladové kartě a promítal se do její hodnoty i průměrné ceny. Projeví se to až při nejbližším přepočtu skladu; u firem s uzavřenými účetními obdobími doporučujeme přepočet naplánovat a jeho výsledek zkontrolovat.

Databázová funkce jevydano je odstraněna — nahradilo ji pole Vyskladněno MJ (sloupec mnozMjReal). Vlastní dotazy, reporty a skripty, které ji volají, po upgradu skončí chybou a je potřeba je upravit.

⚠️ Uživatelské šablony reportů už nesmějí obsahovat výrazy v jazyce Groovy ani JavaScript. Z důvodu bezpečnosti se vyhodnocují jen výrazy v Javě; report s jiným jazykem se nevyrenderuje.

⚠️ Přílohy odkazem a šablony reportů jsou lépe zabezpečené. Server už nikdy nevrací obsah lokálního souboru ani z odkazu do vnitřní sítě. Odkaz na soubor v počítači uživatele jde dál uložit a desktopová aplikace ho otevře jako dosud. Veřejné odkazy http a https fungují dál, přesměrování se ale nenásledují. Nově nejde uložit odkaz s jiným schématem než http, https a file (např. ftp: nebo mailto:), už uložené odkazy zůstávají.

Nové funkce

  • Nastavení Denní kurz nabízí novou volbu Z aktuálního dne (průběžně aktualizovat). Když doklad v cizí měně vznikne dřív, než ČNB vyhlásí kurz pro daný den, použije se poslední známý kurz a Flexi na to upozorní. Po vyhlášení se kurz automaticky aktualizuje, takže další doklady téhož dne už dostanou aktuální kurz. Dřív kurz stažený před vyhlášením platil po celý den.

Vylepšení

  • Vlastní uživatelský účet už nejde zablokovat přes API. Pokus skončí chybou 400 s hláškou „Nelze zablokovat vlastní uživatelský účet.“ a účet zůstane funkční; chování API se tím sjednocuje s aplikací, kde je tlačítko pro blokaci vlastního účtu neaktivní. Blokace i odblokování jiného uživatele a běžná editace vlastního účtu fungují beze změny.

  • Přílohy navázaných objektů už nejsou součástí detailu full. Export dokladu s přílohami tak nezahlcuje odpověď ani dočasné úložiště serveru. Kdo přílohy potřebuje, vyžádá si je detailem custom; parametr relations=prilohy funguje beze změny.

  • Standardní účetní sestavy už nejdou měnit přes API. Zakládání, úprava ani mazání standardních sestav a jejich předpisů se přes API neprovede — dřív šlo standardní sestavu nechtěně přepsat a přijít o její definici. Vlastní uživatelské sestavy se ovládají beze změny. Import vlastnosti rozpadRadku u standardní sestavy nově končí chybou 400 místo tichého ignorování.

  • Filtr přes API umí vybrat záznamy podle vyplněnosti štítku: stitky is empty vrátí záznamy bez štítku, stitky is not empty záznamy s aspoň jedním. Dřív takový filtr buď skončil chybou, nebo tiše nevrátil nic. Opraven je i filtr na štítek přes vazbu — například dodavatel.stitky is empty nad ceníkem, který dřív končil chybou serveru.

  • Uživatelský dotaz, na který jsou navázané reporty, jde smazat i přes API a WUI. Reporty zůstanou zachované, zaniknou jen vazby na ně. Vazbu na reporty lze u uživatelského dotazu nově vypsat i upravit přes kolekci reporty v evidenci uzivatelsky-dotaz, dosud byla dostupná jen v desktopové aplikaci.

  • Položka podání JMHZ založená přes API nově vyžaduje vyplněnou hlavičku podání i pracovní poměr, jinak skončí chybou 400. Případné položky bez těchto vazeb se při upgradu odstraní.

  • Výchozí řazení záznamů evidence jde vypnout parametrem no-order=true. Záznamy se pak vrací v pořadí, v jakém je dá databáze. Hodí se pro rychlé čtení velkých evidencí, kde na pořadí nezáleží. Nelze ho kombinovat s order, sort ani start.

  • Nejnáročnější výpisy mohou na velkých datech běžet rychleji, protože je databáze smí počítat paralelně na více jádrech procesoru. Týká se to účetního deníku, přehledu položek faktur, vazebních dokladů apod.

  • Majetek umožňuje zadat rozdílnou daňovou a účetní vstupní cenu. Odpisy, událost zařazení i navazující sestavy s oběma cenami počítají odděleně.

  • Prohlížeč JMHZ se otevírá přímo z Flexi, přes firemní stránku /c/{firma}/jmhz/prohlizec, ne přes dočasný soubor v počítači. Data se nepřenášejí v odkazu, takže se korektně otevřou i velká hlášení s mnoha pracovními poměry, u kterých otevření dřív selhávalo kvůli délce adresy. Přístup se řídí běžným oprávněním k formuláři Měsíčního hlášení. Pokud hlášení uložíte do Flexi už v Prohlížeči, dotaz „Bylo odesláno?“ v průvodci se sám zavře.

  • Hláška o nepodporovaném kódu činnosti při vytváření Měsíčního hlášení nově uvádí konkrétní kód činnosti i osobu a pracovní poměr, kterých se týká.

  • Prohlížeč JMHZ umí aktualizovat hlášení, které už je ve Flexi uložené. Do evidence uložených podání se tak dostanou i úpravy provedené po uložení z průvodce.

  • Textová položka s číslem objednávky, kterou Flexi doplní na začátek faktury při vložení položek z objednávky, se zakládá ve všech jazycích nastavených ve firmě. Dřív se uložila jen v jazyce rozhraní uživatele, který převod dělal, takže při tisku faktury v cizím jazyce zůstal tento jeden řádek nepřeložený. Platí pro oba směry — objednávka přijatá do faktury vydané i objednávka vydaná do faktury přijaté. Existující doklady se nemění.

  • Úprava uložené příjemky s mnoha položkami je ve webovém rozhraní výrazně rychlejší. Odpadly zbytečné opakované dotazy do databáze při kontrole, zda lze u položek měnit šarži, expiraci a datum trvanlivosti.

  • Čtení účetního deníku je rychlejší, zejména při čtení po stránkách. Vrácená data se nemění.

  • Hláška o neshodě nastavení účetního skladu s typem skladového dokladu uvádí kód a název typu, který se skutečně vyhodnocoval — například „Nastavili jste účetní sklad, ale typ skladového dokladu ‚VYD-VYR: Výdej do výroby‘ je neúčetní.“ Dosud hláška neřekla, o který typ jde, a u příjmu přes kusovník se příčina dohledávala nejhůř.

  • Skript pro reset hesla lokálního uživatele umí uživateli nastavit i administrátorská práva: všechna serverová práva a výchozí roli ADMIN. Ostatní uživatele typu NORMAL přitom přepne na AUTOMATIC. Skript se nově jmenuje reset_uzivatele.bat (Windows), resp. resetUser.sh (Linux, macOS) a nahrazuje dosavadní reset_hesla.bat a resetPassword.sh.

  • Demo firmy mají doplněná data, například v personalistice, a to ve variantách pro daňovou evidenci, podvojné účetnictví i slovenskou legislativu. Vyzkoušení Flexi na demo datech tak pokryje víc agend.

  • Dialog hromadných změn se otevře okamžitě i na firmách s velkým adresářem. Vazební pole, která rostou s objemem dat — Firma, Zakázka, Cenová skupina a Výrobce — se zadávají textovým polem s našeptavačem a lupou místo seznamu naplněného celou cizí evidencí, takže klient nespadne na nedostatek paměti. Text, kterému neodpovídá žádný záznam, dialog ohlásí a nechá opravit — dřív se tiše vyhodnotil jako pokyn vlastnost vymazat. Hromadná změna vlastnosti Kontaktní osoba se u dokladů, faktur a smluv už nenabízí, protože kontakt patří ke konkrétní firmě a jedna hodnota napříč záznamy různých firem tvořila nekonzistentní data.

Opravy chyb

  • Import, který u existujícího záznamu mění needitovatelné datum, nově končí srozumitelnou chybou. Typicky jde o datum podání uloženého hlášení JMHZ v evidenci jmhz-podani-hlav. Dřív skončil vnitřní chybou serveru a statistika uváděla nula neúspěšných záznamů, přestože se nic neuložilo.

  • Zrušení vazby zálohového daňového dokladu, který žádnou vazbu na úhradu nemá, končí srozumitelnou hláškou „Vybraný zálohový daňový doklad nemá vazbu na úhradu.“ Dřív se v odpovědi vrátil název java třídy, ze kterého nebylo poznat, co je špatně, a na webu se ukázala hláška popisující úplně jinou situaci.

  • Evidence, které patří jen do podvojného účetnictví, se ve firmě s daňovou evidencí přes API už nenabízejí. Dřív se objevovaly v seznamu evidencí, přestože v daňové evidenci nejsou použitelné.

  • Doklad jde založit i uložit, i když má jeho typ dokladu vyplněné pole, které aktuální licence nepovoluje. Může jít například o obchodní transakci bez licence na Intrastat. Dřív se taková hodnota přenesla na doklad a validace ho odmítla, přestože uživatel to pole ani nevidí. Pole zakázaná licencí se nově nevalidují a na nový doklad ani při kopírování dokladu se nepřenášejí. Uložená data zůstávají a po obnovení licence se zase použijí.

  • Upgrade cloudové instance pokračuje i tehdy, když je jedna firma nedostupná. Dřív celé volání skončilo chybou a zbytek instance se neupgradoval; firmy, na které upgrade nedošel, navíc mohly natrvalo zůstat v režimu údržby. Nově v režimu údržby zůstanou jen firmy, kterým upgrade schématu skutečně selhal.

  • Databázové funkce, kterými Flexi vede žurnál, sledování změn a externí identifikátory, jsou lépe chráněné proti zneužití podvrženou zálohou.

    Obnova zálohy s neobvykle upravenou strukturou databáze se odmítne a serverový log uvede, který objekt vadí. Běžné zálohy se obnoví beze změny.

  • Výběr pracovních poměrů v průvodci REGZEC se drží záznamů, které uživatel opravdu zaškrtl, i když se mezitím data změní. Dřív se řádky mohly mezi zaškrtnutím a odesláním přečíslovat a do podání na ČSSZ se bez jakéhokoli hlášení dostaly jiné záznamy, než uživatel viděl. Export do XLS a tisk nad tímto výpisem už nekončí chybou.

  • Nepřítomnost zadaná mimo trvání pracovního poměru nově upozorní varováním, a to na obou hranicích — před nástupem i po skončení. Dřív šlo nepřítomnost do období před nástupem zadat bez jakékoli reakce. Záznam jde i přes varování uložit; náhrada se pak počítá jen za dny trvání pracovního poměru.

  • Podání JMHZ uložené z Prohlížeče nad ručně nahraným souborem jde použít jako základ opravného hlášení i storna. Dřív se takové podání uložilo bez vazby na pracovní poměry a chyba se projevila až při sestavování opravného hlášení. Vazbu Flexi nově dohledá podle ID PPV v XML mezi pracovními poměry platnými v období hlášení, takže to funguje i u zaměstnanců, kteří už ve firmě nejsou. Když vazbu jednoznačně dohledat nejde, podání se neuloží a hláška vyjmenuje dotčené zaměstnance podle ID PPV. Pokud ID PPV v XML chybí, uvede je podle GUID formuláře; příčinou bývá nevyplněné OIČ na osobě.

  • U vícedílného Měsíčního hlášení mají všechny díly v hlavičce shodné datum a čas vyplnění, jak vyžadují pravidla ČSSZ. Dřív se lišily o zlomky sekundy. Uložené hlášení přebírá datum podání z tohoto údaje, takže má pokaždé stejné datum bez ohledu na to, kdo a kolikrát ho uloží.

  • Hromadná změna Typu sazby DPH na položkách dokladů funguje i v desktopové aplikaci. Dřív ji průvodce hromadných změn nabízel, ale změna selhala, přestože přes API procházela. Ve skladu, kde se hodnota neukládala vůbec, se tato volba už nenabízí.

Technické změny

  • Aktualizováno vestavěné běhové prostředí Javy na Temurin 11.0.32.1+1.

  • Aktualizována knihovna Hibernate z verze 3.6 na 6.6. Jde o vnitřní technickou změnu databázové vrstvy; funkčnost ani vzhled aplikace se nemění.

Dostali jste odpověď na svou otázku?