Riešenie situácie s hlásením «Nedefinovaný identifikátor» pri tlači: príčiny a podrobný postup
V každodennej prevádzke obchodnej spoločnosti je tlač dokumentov (fiškálnych a nefiškálnych dokladov, výdajok, protokolov o vykonaných prácach, mzdových výpočtových listov) nepretržitým procesom potrebným na obsluhu zákazníkov a vedenie internej evidencie. Pri práci s týmto režimom sa podnikatelia najčastejšie obracajú na technickú podporu s týmito otázkami: prečo sa pri pokuse o vytlačenie výkazu zobrazí hlásenie o nedefinovanom identifikátore, ako samostatne nahradiť parametre v dokumente po prepnutí rozhrania do ukrajinčiny a aké znaky sa nesmú používať v názvoch tovarov, aby sa doklady tlačili správne.
Základné pojmy a podstata problému
Pre hlbšie pochopenie situácie je potrebné definovať kľúčové pojmy používané v evidenčnom systéme:
-
Tlačová šablóna — vizuálna forma dokumentu, ktorú si používateľ nastavuje alebo používa v predvolenej podobe na výstup informácií na tlačiareň.
-
FastReport — generátor a editor výkazov zabudovaný v programe, pomocou ktorého sa nastavuje vzhľad šablón.
-
Premenná (alebo Výraz) — špeciálny parameter v systéme (napríklad suma, meno zákazníka, dátum), ktorý pri vytváraní tlačeného dokumentu automaticky načíta aktuálne údaje z databázy.
Hlásenie s textom «Nedefinovaný identifikátor» (alebo «Identifier expected», «Неопределенный идентификатор») znamená, že editor výkazov pri vytváraní dokumentu nedokáže rozpoznať alebo nájsť v databáze premennú uvedenú v tlačovej šablóne.
Príčiny vzniku situácie a ich súvislosti
Existujú tri hlavné dôvody, prečo program pri tlači nedokáže identifikovať zadaný parameter:
1. Zmena jazyka rozhrania programu na ukrajinčinu
Otázky týkajúce sa nedefinovaného identifikátora sa najčastejšie objavujú po prepnutí programu z ruskej lokalizácie na ukrajinskú. Ak bola tlačová šablóna vytvorená skôr, obsahuje premenné v ruštine (napríklad «счет», «Период», «Начислено»). Keďže rozhranie a databáza začnú pracovať s ukrajinskými ekvivalentmi, ruské premenné už systém nerozpoznáva, čo vedie k zastaveniu tlače a zobrazeniu príslušného hlásenia.
2. Premenovanie premenných v nových verziách programu
Aby funkcie premenných v systéme vyjadrovali presnejšie, vývojári ich môžu premenovať. Napríklad premenná «счет» bola premenovaná na «Тип счета» (alebo príslušný ukrajinský ekvivalent), pretože určuje práve typ zúčtovacieho účtu. Použitie starého formátu premennej vo vlastnej šablóne spôsobí zastavenie jej rozpoznávania.
3. Použitie hranatých zátvoriek v názvoch tovarov
Pri tlači fiškálneho pokladničného dokladu prostredníctvom programovej RP (RRP) môže systém signalizovať chybu vo výraze a nedefinovaný identifikátor, ak sa v názve predaného tovaru nachádzajú hranaté zátvorky. V editore FastReport sú hranaté zátvorky systémovým znakom označujúcim hranice premennej. Program sa preto pokúsi časť názvu tovaru prečítať ako systémový kód, nenájde ho a preruší tlač.
Podrobný postup na samostatnú opravu
Ak sa pri tlači zobrazí hlásenie o nedefinovanom identifikátore, nastavenie šablóny môžete opraviť sami podľa nasledujúceho postupu:
-
Určte problémové pole. V texte hlásenia je vždy uvedený konkrétny prvok (napríklad Memo51, Memo3, Memo19), v ktorom program našiel nerozpoznanú premennú.
-
Otvorte nastavenia šablón. V hlavnom menu programu prejdite na položku Nastavenia — Nastavenia tlačových šablón.
-
Vyberte požadovaný dokument. V ľavej časti okna nájdite šablónu, pri ktorej sa pri tlači vyskytuje problém (napríklad «Výdajka», «Protokol o vykonaných prácach», «Mzdový výpočtový list»), a kliknite na tlačidlo Nastavenia, čím spustíte editor FastReport.
-
Nájdite a odstráňte starú premennú. Nájdite vo formulári šablóny objekt (textové pole), ktorý spôsobuje zastavenie tlače, otvorte ho dvojitým kliknutím myšou a odstráňte text nerozpoznanej premennej spolu s hranatými zátvorkami.
-
Vložte správnu premennú. V okne textového editora kliknite na tlačidlo Vložiť výraz, prejdite na kartu Premenné a dvojitým kliknutím vyberte správnu premennú v ukrajinčine zo stromu údajov. Automaticky sa zobrazí v poli výrazu.
-
Uložte zmeny. Kliknite na OK a potom šablónu uložte výberom Súbor — Uložiť (alebo kliknutím na ikonu uloženia) v editore FastReport.
Pri problémoch s tlačou dokladov RRP stačí otvoriť kartu tovaru na úpravu a odstrániť hranaté zátvorky z jeho názvu.

Odpovede na časté otázky podnikateľov týkajúce sa tlače
Ktoré konkrétne parametre je najčastejšie potrebné meniť pri prechode na ukrajinčinu v protokoloch o vykonaných prácach?
Podnikatelia sa často pýtajú na nastavenie protokolov o vykonaných prácach po zmene jazyka. V týchto dokumentoch je potrebné nahradiť nerozpoznanú ruskú premennú «счет» (ktorú program signalizuje ako chybu vo výraze) jej ukrajinskou verziou. Po odstránení ruského poľa a vložení ukrajinskej premennej sa protokol o vykonaných prácach vytlačí správne.
Prečo systém pri tlači mzdového výkazu (mzdového výpočtového listu) hlási chybu identifikátora «Начислено» alebo «Период»?
Stáva sa to v prípadoch, keď sa používa štandardná šablóna mzdového výpočtového listu, ale rozhranie programu pracuje v ukrajinčine. Premenné «Начислено» a «Период» sú v ruštine a ukrajinská databáza ich nedokáže spracovať. Na opravu je potrebné otvoriť šablónu mzdového výpočtového listu a pomocou nástroja na pridávanie premenných nahradiť tieto parametre ich ukrajinskými ekvivalentmi.
Čo robiť, ak sa po vytvorení vlastnej šablóny niektoré premenné zobrazujú v angličtine alebo ich systém nerozpoznáva?
Môže sa to stať, ak pri ukladaní dokumentu v lokalizácii odlišnej od ruštiny algoritmus pridávania premenných v FastReport uložil premenné v systémovej podobe bez prekladu kategórií. V takom prípade je potrebné skontrolovať strom údajov v editore šablón a uistiť sa, že premennú pridávate práve z preloženej skupiny údajov aktuálneho dokumentu.
Vážení podnikatelia. Architektúra programu Torgsoft a základy jeho databáz sa formovali viac ako 15 rokov, čo v čase nášho rozsiahleho prechodu na ukrajinskú lokalizáciu vytvorilo určité technické dedičstvo. Napriek systematickému prispôsobovaniu produktu nie je z technického hľadiska možné úplne odstrániť z rozhrania prvky pôvodného jazykového prostredia, a to z dvoch objektívnych dôvodov.
Po prvé, obrovské množstvo systémových premenných a skôr vytvorených používateľských tlačových šablón je už uložené v databázach vo svojej pôvodnej podobe. Ich nútená automatická náhrada prináša priame riziko narušenia integrity vašej aktuálnej evidencie a zdvojenia kategórií údajov.
Po druhé, značnú časť textových upozornení negeneruje samotný program Torgsoft, ale vracia ich bez prekladu operačný systém Windows, výstupy SQL servera alebo externé služby (napríklad API poštových služieb). Tieto systémové odpovede závisia výlučne od regionálnych nastavení vášho zariadenia a serverov tretích strán. Spoločnosť lokalizáciu neustále zdokonaľuje, prítomnosť zvyškových systémových artefaktov v pokročilých nastaveniach alebo protokoloch však zostáva technickou realitou, ktorú je potrebné pri práci s programom zohľadniť.









Vráťte sa na predchádzajúci krok