⚠️ 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 detailemcustom; parametrrelations=prilohyfunguje 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
rozpadRadkuu 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 emptyvrátí záznamy bez štítku,stitky is not emptyzá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říkladdodavatel.stitky is emptynad 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
reportyv evidenciuzivatelsky-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 sorder,sortanistart.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
NORMALpřitom přepne naAUTOMATIC. Skript se nově jmenujereset_uzivatele.bat(Windows), resp.resetUser.sh(Linux, macOS) a nahrazuje dosavadníreset_hesla.bataresetPassword.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í.
