You are on page 1of 76

POSNET

SYSTEMY KAS FISKALNYCH


02-281 Warszawa, ul. Municypalna 33
Tel.: (0-22) 868-68-88 w. 201..204 (Dzia handlowy)
Tel.: (0-22) 868-68-88 w. 251..253 (Serwis)
Fax.: (0-22) 868-68-89

http://www.posnet.com.pl
e-mail: drukarki@posnet.com.pl

DRUKARKA FISKALNA
Thermal 1.02
INSTRUKCJA PROGRAMISTY

LUTY 2003
Ver. 1.08

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Spis treci:
1. WSTP____________________________________________________________________4
2. PROTOK KOMUNIKACYJNY_____________________________________________5
2.1 Syntaktyka rozkazw______________________________________________________________________5
2.2 Obsuga sytuacji bdnych__________________________________________________________________6

3. SEKWENCJE STERUJCE__________________________________________________8
3.1 Oglne zasady syntaktyki komend____________________________________________________________8

3.2 Programowanie parametrw / sterowanie ukadem elektronicznym.______________________11


[LBSETCK]: Ustawienie zegara_______________________________________________________________11
[LBDSP]: Sterowanie wywietlaczem / szuflad___________________________________________________12
[LBSETPTU] : Zmiana stawek PTU____________________________________________________________13
[LBSETHDR]: Programowanie nagwka________________________________________________________14
[LBSETRAB] : Wybr metody rozliczania rabatu__________________________________________________14
[LBSRVINFO] : Programowanie daty przegldu okresowego________________________________________15
[LBAUTH] : Wprowadzanie kodu autoryzacyjnego________________________________________________15
[LBFEED] : Wysuw papieru__________________________________________________________________15
[LBSERM]: Obsuga bdw_________________________________________________________________15

3.3 Transakcja______________________________________________________________________17
[LBTRSHDR]: Pocztek transakcji_____________________________________________________________17
_________________________________________________________________________________________18
[LBTRSLN] : Linia paragonu_________________________________________________________________18

3.4 Obsuga kaucji___________________________________________________________________20


[LBTRSDEP]: Obsuga kaucji w linii paragonu___________________________________________________20
[LBDEP+]: Kaucja pobrana (za sprzeda opakowania)______________________________________________20
[LBDEPSTR+]: Storno kaucji pobranej_________________________________________________________21
[LBDEP-]: Kaucja wydana (za zwrot opakowania)_________________________________________________21
[LBDEPSTR-]: Storno kaucji wydanej__________________________________________________________22

3.5 Zakoczenie transakcji____________________________________________________________23


[LBTREXITCAN] : Anulowanie transakcji ______________________________________________________23
[LBTREXIT] : Standardowe zatwierdzenie transakcji______________________________________________23
[LBTRXEND] : Zatwierdzenie transakcji z formami patnoci________________________________________25
[LBRABAT] : Rabat/narzut w trakcie transakcji___________________________________________________26
[LBGRPRAB] : Rabat/narzut do grupy towarw w danej stawce PTU__________________________________27
[LBPODSUM] : Rabat/narzut do paragonu od podsumy_____________________________________________27
[LBTRFORMPLAT]: Obsuga form patnoci_____________________________________________________28
[LBTRXEND1] : Zatwierdzenie transakcji z formami patnoci (2)____________________________________29

3.6 Rozkaz $z - dodatkowe linie na paragonie po logo fiskalnym_____________________________34


Linie zwrotw opakowa_____________________________________________________________________34
Linie przyj opakowa______________________________________________________________________34
Rozliczenie form patnoci____________________________________________________________________34
Linia dodatkowych stopek paragonu____________________________________________________________35
Linie informacyjne - definicja_________________________________________________________________35
Koniec wydruku____________________________________________________________________________35

3.7 Drukowanie raportw / kontrola bazy danych_________________________________________36


[LBCSHREP1]: Raport kasy / zmiany uwzgldniajcy formy patnoci_________________________________36
[LBCSHREP2] : Raport zmianowy/ kasy z formami patnoci (2)_____________________________________38
[LBTRSCARD] : Pokwitowanie sprzeday_______________________________________________________40
[LBSTOCARD]: Transakcja uznania (zwrot towaru)_______________________________________________41
[LBSTOCSH]: Zwrot towaru__________________________________________________________________42
[LBINCCSH]: Wpata do kasy________________________________________________________________43
[LBDECCSH]: Wypata z kasy________________________________________________________________43
[LBCSHSTS]: Stan kasy_____________________________________________________________________43
[LBCSHREP]: Raport kasy / zmiany___________________________________________________________44
[LBLOGIN] : Logowanie kasjera______________________________________________________________44

www.posnet.com.pl

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBLOGOUT]: Wylogowanie kasjera___________________________________________________________45
[LBFSKREP]: Drukowanie raportu okresowego___________________________________________________46
[LBDAYREP]: Drukowanie raportu dobowego____________________________________________________47
[LBDBREP]: Kontrola bazy danych____________________________________________________________48
[LBDBREPRS] : Pytanie o moliwo sprzeday towaru ___________________________________________49
[LBSENDCK]: Odelij czas RTC______________________________________________________________49
[LBFSTRQ]: Odelij informacje kasowe ________________________________________________________50
[LBERNRQ]: danie wysania kodu bdu ostatniego rozkazu_______________________________________51
[LBIDRQ] : Sekwencja odsyajca typ i wersj oprogramowania______________________________________51
[LBSNDMD]: Wczenie/ wyczenie drukowania dokumentw niefiskalnych na oryginale________________52
[LBCASREP]: Drukowanie raportu kasy_________________________________________________________52

3.8 Zawarto pamici fiskalnej wysyana po RS oraz dodatkowe informacje kasowe.___________52


[LBFSTRQ]: Odelij informacje kasowe.________________________________________________________52

4. DODATKOWE SEKWENCJE DLA WYDRUKW NIEFISKALNYCH____________55


2 - Transakcje odoone______________________________________________________________________55
3 - Funkcje operatora________________________________________________________________________56
4 - Raport kasjera___________________________________________________________________________56
5 - Raport rodkw patnoci__________________________________________________________________59
6 Sprzeda zarejestrowana w kasie____________________________________________________________59
7 Pokwitowanie___________________________________________________________________________60
8 Przedpata______________________________________________________________________________60
16 Rabat dla pracownika____________________________________________________________________61
17- Wymiana rodkw patnoci ______________________________________________________________61
18- Operacje kasowe________________________________________________________________________62
19- Bdy kasy_____________________________________________________________________________62
20 - Cennik________________________________________________________________________________63

5. Obliczenia realizowane przez drukark_________________________________________64


Obliczenia realizowane w trakcie transakcji______________________________________________________64
Obliczenia realizowane w trakcie drukowania raportu dobowego______________________________________67
Obliczenia realizowane w trakcie drukowania raportu okresowego____________________________________68
Rozliczanie groszy__________________________________________________________________________69

6. INFORMACJE DODATKOWE_______________________________________________72
6.1 Komunikaty zwizane z sekwencjami sterujcymi______________________________________________72
6.2 Kody sekwencji_________________________________________________________________________73
6.3 Bdy sekwencji_________________________________________________________________________74

6.4 HISTORIA ZMIAN.______________________________________________________________76

www.posnet.com.pl

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

1. WSTP
Niniejsza instrukcja programisty napisana zostaa pod ktem drukarki POSNET Thermal 1.02
i zawiera wszystkie niezbdne informacje potrzebne do napisania aplikacji do ich obsugi.
Od momentu powstania pierwszej drukarki fiskalnej (DF-300) zaszo wiele zmian w konstrukcji drukarek
oraz pojawiy si dodatkowe komendy, ktrych nie znay drukarki DF-300. Powstajce kolejno urzdzenia (DF301/302, Posnet Thermal/3001), mimo licznych zmian zachowyway kompatybilno z poprzednimi modelami
realizujc wszystkie komendy, ktre si pojawiy we wczeniejszych wersjach drukarek. Podobnie jest z now
drukark POSNET Thermal 1.02, ktra pomimo, e jest cakowicie nowym urzdzeniem, rozpoznaje skadnie
wszystkich sekwencji sterujcych wystpujcych w poprzednich drukarkach. Jakkolwiek czsto realizuje zawarte w
nich polecenia w nieco odmienny sposb w celu sprostania nowym wymaganiom zarwno klientw jak i przepisw
fiskalnych.
Oprcz zmian polegajcych na dodaniu do bogatej palety dotychczasowych sekwencji nowych rozkazw
rozszerzajcych waciwoci funkcjonalne naszych drukarek, uzupeniono wiele starszych sekwencji o liczne
parametry opcjonalne. Podczas opracowywania nowych sekwencji dooono wszelkich stara, aby zachowa znan
powszechnie atwo implementacji, logik skadni i w szerokim pojciu rozumiany przyjazny charakter rodziny
protokow pochodzcych z firmy Posnet.
Blisze informacje dotyczce urzdze firmy POSNET dostpne s na stronie WWW firmy pod adresem:

www.posnet.com.pl

www.posnet.com.pl

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

2. PROTOK KOMUNIKACYJNY
2.1 Syntaktyka rozkazw
Syntaktyka rozkazw jest identyczna jak dla produkowanych dotychczas drukarek. Niektre komendy zostay
uzupenione o dodatkowe opcjonalne parametry wtedy parametry te ujte s w nawiasy kwadratowe ([..]). W
rozdziale tym wyjanimy podstawowe zasady konstruowania oprogramowania dla drukarki.
Drukarka rozpoznaje 4 kody sterujce: ENQ ($05), BEL ($07), CAN ($18) i DLE ($10) oraz okoo
trzydziestu rozkazw (sekwencji) sterujcych. Wszystkie rozkazy maj jednolity format:
ESC P Ps ;...; Ps xx <string> cc ESC \
Po odebraniu prefiksu ESC P ($1B $50) drukarka wczytuje cig parametrw numerycznych (Ps ;... ; Ps)
oddzielonych rednikami. Dla niektrych sekwencji parametry te nie musz wystpowa. Kady z nich moe mie
maksymaln warto = 255. Nastpnie jest odbierany dwuznakowy identyfikator rozkazu xx, przy czym pierwszy
znak identyfikatora jest znakiem $ lub # , a drugi jest liter (spis rozkazw znajduje si na stronie 73).
Po odebraniu identyfikatora rozkazu drukarka wczytuje cig parametrw napisowych lub numerycznych <string>,
ktrego struktura zaley od konkretnego rozkazu. W obrbie cigu mog znale si napisy wwczas mog skada
si z dowolnych znakw ASCII z wyczeniem kodw kontrolnych (np. nazwa towaru). Dugo napisu jest dla
konkretnej sekwencji indywidualnie ograniczona (np. nazwa towaru do 40 znakw) a jego terminatorem jest zwykle
kod CR ($0D). Mog te wystpi parametry numeryczne skadajce si z maksymalnie 10 cyfr, zwykle bd to
rnego rodzaju kwoty i iloci . Format kwot dopuszcza maks. 6 cyfr w czci cakowitej i maksymalnie 2 cyfry
czci uamkowej. Cz cakowita jest oddzielona od uamkowej znakiem . Format iloci dopuszcza maks. 10 cyfr
z dowolnie ustawionym punktem dziesitnym por. opis sekwencji LBTRSLN zawarty na stronie 18)
Dopuszczalna i zalecana jest kompresja zer nieznaczcych w czci cakowitej i uamkowej, natomiast zerowa cz
uamkowa nie musi by w ogle wysyana (np. zamiast 5.00 mona wysa 5.0, 5. a najlepiej po prostu 5).
Terminatorem wartoci liczbowej jest z reguy / ($2F) (za wyjtkiem parametru <ilo>). Szersze moliwoci
reprezentacji liczb w tej wersji dla ceny i iloci towaru (parametry sekwencji LBTRSLN) omwiono w rozdziale
[LBTRSLN]: Linia paragonu opisujcym dokadnie sekwencje drukarki.
Wikszo sekwencji jest uzupeniona dwoma znakami (cc) cyframi HEX (znaki ze zbioru: 0..9, A..F),
ktre wyraaj w zapisie heksadecymalnym warto bajtu kontrolnego liczonego dla caej sekwencji w specjalny
sposb:
1. Na pocztku podstawiamy warto bajtu kontrolnego:
<byte> := 255;
2. Poczwszy od nastpnego znaku za ESC P obliczamy warto wyraenia:
<byte> := <byte> xor <kod danego znaku>;
a do ostatniego znaku sekwencji (nie liczc znakw cc i kocwki ESC \).
3. Tak uzyskany bajt kontrolny wyraamy postaci w cyfr heksadecymalnych i dopisujemy do sekwencji wraz
z kocwk ESC \.
UWAGA:
Oznaczenie xor uyte w procedurze oznacza funkcj logiczn Exclusive Or czyli: lub wykluczajce,
inaczej zwane albo. Funkcja ta dziaa na pojedynczych bitach bajtu. Dla bitw o rnych wartociach
wynosi 1, a dla takich samych 0. Jeli w uytkowanym przez Pastwa jzyku programowania brakuje
funkcji xor, to mona j zdefiniowa nastpujco:
xor (a,b) := (( not a) and b) or (( not b) and a).
Oczywicie uycie nawiasw nie jest tu konieczne ze wzgldu na przestrzegan chyba we wszystkich
jzykach si wizania poszczeglnych funkcji.
Cyfry kontrolne obliczane w ten sposb daj dobre zabezpieczenie przed przekamaniami transmisji. Po odczytaniu
i sprawdzeniu cyfr kontrolnych drukarka wczytuje kocwk sekwencji w postaci dwch znakw: ESC \ ($1B
$5C). Realizacja sekwencji z reguy rozpoczyna si dopiero po wczytaniu tych dwch ostatnich znakw. Jeeli
w trakcie analizy syntaktyki rozkazu wystpi bd, to drukarka ignoruje reszt sekwencji a do znakw ESC \.
Wystpienie w dowolnym miejscu sekwencji kodu ESC powoduje rwnie zignorowanie sekwencji do koca,
natomiast wystpienie cigu ESC P powoduje rozpoczcie analizy sekwencji od pocztku. Wystpienie kodu CAN
powoduje przerwanie interpretacji i analizy sekwencji, powrt do gwnej ptli analizy (w ktrej s interpretowane
kody ENQ i BEL oraz rozkazy rozpoczynajce si prefiksem ESC P ). Kod DLE jest rozpoznawany przez drukark
w kadym momencie.

www.posnet.com.pl

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


2.2 Obsuga sytuacji bdnych
W wyniku odebrania przez drukark rozkazu sterujcego mog wystpi nastpujce sytuacje bdne:
nierozpoznany rozkaz jeeli odebrano prefiks ESC P, ale identyfikator sekwencji xx by
niewaciwy,
bd syntaktyki rozkazu (np. bdna lista parametrw Ps ; ... ; Ps), w takiej sytuacji rozkaz jest
ignorowany od momentu, gdzie wystpi bd do koca sekwencji,
bd wykonania rozkazu (moe by np. obliczeniowy lub zwizany z bdnym dziaaniem sprztu drukarki
itd.).
Standardowa obsuga takich sytuacji (zakada si tak obsug po wczeniu zasilania) powoduje, e na wywietlaczu
ukazuje si komunikat:
Bd rozkazu:
Kod bdu :

xx
kk ,

gdzie: xx jest dwuznakowym identyfikatorem rozkazu a kk jest dwucyfrowym kodem bdu. W przypadku
rozkazu nierozpoznanego kod bdu wynosi 0 (zero). Po wywietleniu komunikatu drukarka zatrzymuje dalsze
przetwarzanie znakw z bufora wejciowego i czeka na nacinicie klawisza NIE (o ile nie wymuszono
programowego wyczenia bdw z wywietlacza LCD). Po naciniciu klawisza wywietlacz jest odwieany
i zostaje wznowione przetwarzanie. Zwrmy uwag, e w trakcie wywietlania komunikatu w buforze mogy
znale si kolejne rozkazy, ktre mog dawa nastpne komunikaty. Przykadowo, jeeli bd wystpi na pocztku
transakcji (w sekwencji LBTRSHDR) to kolejne sekwencje (LBTRSLN, LBDSPDEP oraz LBTREXIT lub
TBTRXEND) bd te powodowa komunikaty o bdach. Wystpi zatem seria komunikatw.
Ten sposb obsugi bdw jest wystarczajcy w prostych aplikacjach oraz podczas uruchamiania
oprogramowania. W bardziej zoonych przypadkach mona zrealizowa pen diagnostyk bdw przez aplikacj,
wykorzystujc rozkazy ENQ, DLE oraz LBFSTRQ i LBERNRQ. W tym celu naley najpierw wysa sekwencj
LBSERM:
ESC P 1 #e 88 ESC \
co powoduje zmian sposobu obsugi bdw przez drukark. Komunikaty o bdach zostaj w ten sposb
zablokowane. Po wystpieniu bdu dalsze przetwarzanie nie bdzie blokowane (chocia bdna sekwencja zostanie
zignorowana do koca). Daje to moliwo penej diagnostyki przez aplikacje wedug poniszych zasad.
1.

W odpowiedzi na kod sterujcy ENQ ($05) drukarka wysya jednobajtowy status, postaci:
7
0

6
1

5
1

4
0

3
FSK

2
CMD

1
PAR

0
TRF

w ktrym bit CMD jest ustawiony, jeeli ostatnio odebrany rozkaz by zrealizowany poprawnie.
W szczeglnoci bit ten jest kasowany, gdy drukarka odebraa prefiks ESC P (jeeli rozkaz nastpujcy po
ESC P nie jest daniem odesania statusu LBFSTRQ) oraz ustawiany po poprawnym wykonaniu rozkazu.
2.) W odpowiedzi na kod sterujcy DLE ($10) drukarka wysya jednobajtowy status postaci:
7
0

6
1

5
1

4
1

3
0

2
ONL

1
PE/AKK

0
ERR

gdzie:
ONL = 1: stan On-Line,
PE/AKK = 1: stan Brak Papieru lub rozadowana bateria akumulatorw,
ERR = 1: stan Bd mechanizmu/ sterownika.
Zwrmy uwag, e kod ten daje komunikaty z zakresu $70..$77, a wic inne ni pozostae odpowiedzi statusowe
(w tym odpowied na ENQ). Kod ten jest realizowany ZAWSZE nawet w trybie OFF-LINE !
3.) W odpowiedzi na rozkaz dania wysania statusu LBFSTRQ:
ESC P Ps #s ESC \
drukarka odsya cig LBFSTRS (jeeli zaprogramowano 4 stawki PTU):

www.posnet.com.pl

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


ESC P 1#X Pe; Pm; Pt; Px; Pf; Pz; Py; Pm; Pd / PTU_A/ PTU_B / PTU_C / PTU_D /
PAR_NUM / TOT_A / TOT_B / TOT_C / TOT_D / TOT_Z / CASH / ABC12345678 ESC \
w ktrym Pe jest kodem bdu wykonania ostatniego rozkazu (=0 jeeli sekwencja zostaa wykonana
poprawnie lub nie zostaa rozpoznana), przy czym po wysaniu cigu LBFSTRS kod bdu Pe jest zerowany.
4). W odpowiedzi na zapytanie LBERNRQ :
ESC P #n ESC \
wysyana jest odpowied :
ESC P 1#E Pe ESC \
gdzie Pe jest numerem bdu. Ten rozkaz (LBERNRQ) w odrnieniu od powyszego (LBFSTRQ) nie powoduje
zerowania numeru bdu Pe i moe by wykonywany wielokrotnie.
Zachodz zatem nastpujce przypadki:
1. CMD = 1, Pe = x - poprawne wykonanie sekwencji (Pe jest nieistotne),
1. CMD = 0, Pe = 0 - rozkaz nie zosta rozpoznany,
1. CMD = 0, Pe > 0 - rozkaz zosta rozpoznany ale w trakcie analizy lub wykonania
wystpi bd o kodzie Pe.
Na zakoczenie zwrmy uwag, e w trakcie wykonania rozkazu teoretycznie moe wystpi bd fatalny
wykonania (np. bd zapisu do pamici fiskalnej) wtedy dalsze dziaanie drukarki zostaje zawieszone wraz z
komunikatem np.:
Bd fatalny testu:
RAM FSK

(druga linia ma posta zalen od rodzaju bdu). W takiej sytuacji odpowied na danie statusu ENQ lub
LBFSTRQ nie zostanie odesana (ale drukarka odpowie na danie statusu DLE ktre dziaa take w trybie OFFLINE). Podobny przypadek zachodzi w momencie przeczenia drukarki w tryb OFF-LINE (wygaszona lampka
GOTOWA) w wyniku wystpienia bdu mechanizmu drukujcego np. braku papieru. Z tego wzgldu, w oglnym
przypadku nie mona zaoy w oprogramowaniu aplikacyjnym, e odpowied na danie odesania statusu przyjdzie
w cile okrelonym czasie. Naley zatem przewidzie inny ni przekroczenie limitu czasowego mechanizm wyjcia
przez aplikacj z powstajcej w ten sposb nieskoczonej ptli (np. przerwanie operacji z klawiatury) lub przy
pomocy kodu DLE. Dodatkowo trzeba zwrci uwag, e operacja drukowania raportu okresowego (inicjowana
przez wysanie sekwencji sterujcej) moe angaowa procesor gwny drukarki na bardzo dugi czas. W takiej
sytuacji, jeeli wystpi bd sekwencji, to status zostanie odesany prawie natychmiast, natomiast w przypadku
poprawnego wykonania sekwencji aplikacja moe oczekiwa na status przez dugi czas.

www.posnet.com.pl

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

3. SEKWENCJE STERUJCE
3.1 Oglne zasady syntaktyki komend
W drukarce rozpoznawane s 4 kody sterujce:
DLE ($10) danie wysania statusu (^P)
Daje to moliwo odczytu statusu np. brak papieru lub sytuacje bdne.
W odpowiedzi na kod DLE ($10) drukarka odsya jednobajtowy status w formacie:
7
0

6
1

5
1

4
1

3
0

2
ONL

1
PE/AKK

0
ERR

gdzie:
ONL = 1: stan On-Line,
PE/AKK = 1: stan Brak Papieru lub rozadowany akumulator (24V),
ERR = 1: stan Bd mechanizmu/ sterownika.
Zwrmy uwag, e kod ten daje komunikaty z zakresu $70..$77, a wic inne ni pozostae odpowiedzi statusowe (w
tym odpowied na ENQ).
BEL ($07) sygna dwikowy (^G),
CAN ($18) przerwanie interpretacji rozkazu (^X).
ENQ ($05) danie wysania statusu (^E),
W odpowiedzi na danie wysania statusu (ENQ) drukarka wysya 1 bajt o nastpujcym formacie:
7
0
gdzie:
FSK
CMD
PAR
TRF

6
1

5
1

4
0

3
FSK

2
CMD

1
PAR

0
TRF

= 0: drukarka jest w trybie szkoleniowym,


= 1: drukarka jest w trybie fiskalnym,
= 1: ostatni rozkaz zosta wykonany poprawnie (bit jest kasowany po odebraniu ESC P, jeeli rozkaz
nastpujcy po ESC P nie jest daniem wysania statusu LBFSTRQ i ustawiony po jego poprawnym
wykonaniu),
= 1: drukarka jest w trybie transakcji (po wykonaniu sekwencji LBTRSHDR, przed wykonaniem sekwencji
LBTREXIT lub LBTRXEND, LBTRXEND1),
= 1: ostatnia transakcja zostaa sfinalizowana poprawnie (bit ustawiony po poprawnej realizacji sekwencji
LBTREXIT lub LBTRXEND, a kasowany po poprawnej realizacji LBTRSHDR).

UWAGA:
1. Bit TRF jest przechowywany w pamici nieulotnej, std nawet jeeli wystpi awaria zasilania midzy
momentem zakoczenia transakcji a testowaniem statusu warto tego bitu przetestowana przez
aplikacj bdzie poprawna (program pracy drukarki gwarantuje ponadto, e niezalenie od awarii zasilania
operacje wydrukowania paragonu, aktualizacji totalizerw i ustawienia TRF s NIEROZCZNE !).
2. Zwrmy uwag, e w przypadku anulowania paragonu oba bity zostan w stanie 0.
3. Moliwe odpowiedzi statusowe (ENQ) s z zakresu $60..$6F (zakres maych liter), co pozwala zawsze na
ich identyfikacj (mae litery nie mog wystpowa w odpowiedzi statusowej LBFSTRS).
Wszystkie pozostae sekwencje maj jednolity format:
ESC P Ps ; ... ; Ps xx <string> cc ESC \
gdzie:
Ps opcjonalna lista parametrw numerycznych w zakresie 0..255,
xx 1 lub 2 znaki (z kolumn $2x,$4x..$7x) identyfikator rozkazu,
<string> - parametr napisowy, cig parametrw napisowych, lub cig parametrw numerycznych (w zakresie
10-cyfrowym, ewentualnie z punktem dziesitnym ),

www.posnet.com.pl

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


cc bajt kontrolny, zakodowany jako 2 cyfry HEX (EXOR wszystkich znakw za ESC P do tego bajtu
z wartoci pocztkow = #255), dokadnie wedug nastpujcego algorytmu w jzyku PASCAL:
begin
check := 255;
for i:= 3 to length(sekwencja)-4 do
check := check xor byte(sekwencja[i]);
end;
Z powyszego wynika, e do kontroli sekwencji nie bierzemy 2 pierwszych znakw (ESC P) oraz 4-ch
ostatnich (2 znaki kodujce bajt kontrolny oraz terminator sekwencji ESC \),
UWAGA :
1. Obliczon w powyszej ptli liczb check stanowic warto bajtu kontrolnego naley przekodowa na 2
znaki HEX (znaki ASCII ze zbioru: 0..9,A..F,a..f), np. korzystajc z poniszej funkcji
byte_to_hex:
{ *** konwersja liczby na string hex *** }
function word_to_hex (w: word) : string;
var
i : integer;
s : string;
b : byte;
c : char;
begin
s := ;
for i:= 0 to 3 do
begin
b := (hi(w) shr 4) and 15;
case b of
0..9 : c := char(b+$30);
10..15 : c := char(b+$41-10);
end;
s := s + c;
w := w shl 4;
end;
word_ to_hex := s;
end;
{*** konwersja bajtu na 2 znaki ***}
function byte_to_hex (b:byte) : string;
begin
byte_to_hex := copy(word_to_hex(word(b)),3,2);
end;
2. Sekwencje: LBDSP, LBFSTRQ , LBSENDCK, LBERNRQ, LBIDRQ nie wymagaj wysania cyfr
kontrolnych cc.
3. Po odebraniu sekwencji moe si pojawi komunikat o bdzie:
Bd rozkazu:
xx
Kod bdu
:
yy ,
gdzie:
xx = 2 litery identyfikujce rozkaz,
yy = 2 cyfry identyfikujce kod bdu, przy czym jeeli yy = 00, to urzdzenie odebrao
niezidentyfikowany rozkaz. Naley zwrci uwag, e rozkaz moe by nie rozpoznany rwnie ze
wzgldu na niewaciwy tryb pracy drukarki np. podczas drukowania raportu bazy danych
drukarka nie rozpoznaje innych rozkazw ni zwizane z tym raportem.
4. Nastpujce kody bdw mog dotyczy rnych sekwencji sterujcych:
1 : nie zainicjalizowany zegar RTC (blokada wszystkich sekwencji oprcz ustawiania zegara,
odsyania statusu i programowania trybu obsugi bdw),
2 : bd bajtu kontrolnego,
3 : za ilo parametrw,
4 : bd parametru (parametrw),
5 : bd operacji z zegarem czasu rzeczywistego (RTC),

www.posnet.com.pl

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


6 : bd operacji z moduem fiskalnym,
7 : bd daty aktualnie ustawiona data jest wczeniejsza od daty ostatniego zapisu w pamici
fiskalnej,
8 : bd operacji: niezerowe totalizery (np. dla zmiany stawek PTU lub korekcji zegara !),
9 : bd operacji I/O (np. z mechanizmem drukujcym).
5. Numery bdw poczwszy od 10 s specyficzne dla poszczeglnych rozkazw. Moliwe litery
identyfikujce bdy podano na stronie 72 .
6. Odebranie przez drukark nagwka rozkazu: ESC P powoduje zawsze zawieszenie interpretacji
poprzedniego rozkazu (jeeli nie uleg on jeszcze wykonaniu). Powrt do interpretacji znakw sterujcych
ENQ, DLE i BEL wymaga odebrania przez drukark terminatora rozkazu: ESC \ . Przykadowo
interpretacja rozkazu LBDSP koczy si (niezalenie od jego wariantu) dopiero w momencie odebrania
terminatora, chocia w niektrych wariantach tej komendy znaki pomidzy jej identyfikatorem ( $d ) a
terminatorem ESC \ bd po prostu ignorowane. Wystpienie bdu syntaktyki lub wykonania rozkazu
powoduje zawsze przerwanie interpretacji i wykonania oraz powrt do gwnej ptli analizy syntaktyki (w
ktrej wykrywamy kody ENQ i BEL).
7. Ze wzgldu na zapewnienie jednoznacznoci interpretacji i moliwo synchronizacji blokowej (np. przy
pomocy nagwka ESC P), zwaszcza wobec moliwych przekama przy transmisji danych, wszelkie
moliwe dane przesyane do drukarki maj posta znakw ASCII drukowalnych (z wyjtkiem np. kodw
ESC, ENQ, DLE, CR itp. majcych specjalne znaczenie), dotyczy to rwnie wszelkich danych
numerycznych, ktre naley przed wysaniem podda konwersji na ASCII (moliwa jest kompresja zer
nieznaczcych).
8. Jeeli parametr Ps jest ignorowany w kodach sterujcych, to znaczy e moe mie dowoln warto
lub te moe nie wystpowa, co jednak odpowiednio wpywa na warto bajtu kontrolnego <check>.

www.posnet.com.pl

10

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

3.2 Programowanie parametrw / sterowanie ukadem elektronicznym.


[LBSETCK]: Ustawienie zegara
ESC P Py ; Pm ; Pd ; Ph ; Pmn ; Ps $c [<nr_kasy> CR <kasjer> CR] <check> ESC \
Gdzie:
Py; Pm; Pd : data w nastpujcym formacie:
Py : numer roku = 0...99, (dwie najmodsze cyfry, 1950...2049),
Pm : numer miesica = 1...12,
Pd : dzie = 1...31,
Ph; Pmn; Ps : czas w nastpujcym formacie:
Ph : godzina = 0...23,
Pmn : minuta = 0...59,
Ps : sekunda = 0...59 (parametr ignorowany),
<nr_kasy> : (opcjonalny) nazwa kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<kasjer> : (opcjonalny) nazwa kasjera, wydrukowanych zostanie max. 9 dowolnych znakw,
<check> : 2 znaki HEX, bajt kontrolny.
Kody bdw:
= 2 : bd bajtu kontrolnego,
= 3 : za ilo parametrw,
= 4 : bd danych,
= 5 : bd wykonania (zapisu) do zegara RTC,
= 6 : bd odczytu totalizerw,
= 7 : data wczeniejsza od daty ostatniego zapisu w pamici fiskalnej (wykonanie niemoliwe !),
= 8 : bd operacji niezerowe totalizery.
Uwagi:
1.

W trybie fiskalnym ignorowane s pola dotyczce DATY. W przypadku przekamania DATY konieczna
jest interwencja serwisu.
2. Sekwencja LBSETCK dziaa zawsze w penym zakresie (DATA i CZAS) w trybie niefiskalnym nie
obowizuj ograniczenia dla trybu fiskalnego:
zmiany czasu tylko 1 raz po raporcie dobowym,
zmiany czasu o nie wicej ni 1godzin.
3. W trybie fiskalnym, jeeli zegar RTC wymaga inicjalizacji (przy pierwszym wczeniu i po jego
ewentualnym rozprogramowaniu w wyniku rozadowania baterii), to jest to sygnalizowane przez
odpowiedni komunikat na wywietlaczu:
Bd zegara RTC,
wezwij SERWIS !
i nastpuje blokada dalszego dziaania drukarki! Serwis moe ustawi poprawn dat za pomoc funkcji
serwisowych.
4. W trybie fiskalnym, w przypadku prawidowego dziaania zegara moliwa jest korekta nie wicej ni o 1
godzin, ale pod warunkiem, e totalizery s zerowe (stan po wykonaniu raportu dobowego) i tylko jeden
raz po raporcie dobowym
W powyszej sytuacji (zegar zainicjalizowany) data jest ignorowana, ale powinna by wysyana (dla
zapewnienia jednolitej postaci syntaktyki).
Dodatkowe uwagi:
5. Wystpienie sytuacji, kiedy data bieca roni si od daty poprzedniego zapisu o wicej ni 2 lata w
przd lub gdy jest ona wczeniejsza od daty poprzedniego zapisu powoduje wymuszenie stanu braku
inicjalizacji zegara jak w p.3.
6. W przypadku stanu braku inicjalizacji zegara zablokowana jest realizacja sekwencji sterujcych oprcz
ENQ, DLE, BEL, CAN, LBFSTRQ i LBSERM (bez LBSETCK !!), jest rwnie zablokowane wykonywanie
raportw.
7. W trybie fiskalnym sekwencja LBSETCK moe suy tylko do korekcji zegara o +/- 1 godzin
jednorazowo po raporcie dobowym, natomiast ustawienie daty musi odbywa si rcznie przez serwis
(zmiana daty moliwa jest take przez wykorzystanie funkcji serwisowych dostpnych w drukarce po
zwarciu i rozwarciu zwory serwisowej).

www.posnet.com.pl

11

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


8.

W trybie fiskalnym ustawiana data nie moe by wczeniejsza od ostatniego wpisu do moduu
fiskalnego,(takim zapisem jest raport dobowy, zmiana stawek PTU, zerowanie RAM, rozpoczcie
sprzeday po zerowaniu RAM ). Oznacza to, e tu po raporcie dobowym nie mona przestawi zegara w
ty. W tym przypadku przed wysaniem sekwencji ustawienia zegara naley odczeka tyle minut, o ile
chcemy przestawi zegar w ty. Jest to wane przy zmianie czasu z letniego na zimowy( przy przestawieniu
zegara o jedn godzin w ty ). W tym przypadku trzeba odczeka ca godzin.

[LBDSP]: Sterowanie wywietlaczem / szuflad


ESC P Ps $d <string> ESC \
Gdzie:
Ps = 1 :
=2:
= 3:

otwarcie szuflady,
wysanie napisu do wywietlacza, napis <string> nie moe zawiera sekwencji ESC....
przeczenie wywietlacza LCD operatora w tryb wywietlania zegara i daty (dopuszczalne po
upywie 45 sekund od zakoczenia paragonu !),
= 4 : przeczenie wywietlacza LCD operatora z powrotem w tryb kasowy (dopuszczalne po upywie 45
sekund od zakoczenia paragonu!),
= 5 : wysanie napisu tylko do wywietlacza operatora (TYLKO),
= 8 : przeczenie wywietlacza w tryb wywietlania ceny towaru oraz nazwy i podsumy,
na wywietlaczu VFD wywietlany jest w 1 linii
Towar
KWOTA
Forma patnoci
KWOTA
= 9 : przywrcenie standardowego wygldu wywietlacza tj. nazwa i podsuma,
Towar
KWOTA
Podsuma
KWOTA
= 12 : o wywietlaniu KWOTA decyduje parametr 8 lub 9
Forma patnoci
KWOTA
Nazwa rabatu
KWOTA
Kaucja
KWOTA
= 13 : podczas realizowania form patnoci na wywietlaczu VFD w 1 linii wywietlane jest
Do dopl.
KWOTA
Do zwr.
KWOTA

Uwagi:
Drukarka interpretuje rozkaz o ile spenione s warunki:
- od zakoczenia ostatniej transakcji upyno 45 sekund. Niespenienie tego warunku oznacza
zignorowanie rozkazu bez sygnalizacji bdu,
- przesany po raz pierwszy po raporcie dobowym <string> jest przez drukark zapamitywany i bdzie
wydrukowany na najbliszym raporcie dobowym po linii zawierajcej numer unikatowy i logo
fiskalne,
- jeeli jest wysyany kolejny <string> to na wywietlaczu pojawi si zapamitany wczeniej napis,
Kody bdw:
= 2 : bd bajtu kontrolnego,
= 3 : za ilo parametrw,
= 4 : bd danych,
Uwagi:
1.
2.

Poza trybem transakcji parametr Ps moe przybiera wartoci 1..5, 8 i 9,


W trybie transakcji parametr Ps moe przyjmowa wartoci 1,5.

www.posnet.com.pl

12

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBSETPTU] : Zmiana stawek PTU
ESC P Ps [; Py; Pm; Pd ] $p [ PTU_A / ... PTU_i / ] [<nr_kasy> CR <kasjer> CR] <check> ESC \
Gdzie:
Ps : parametr okrelajcy liczb definiowanych stawek PTU_A/.../PTU_G (1..7).
Jeeli:
1. Ps = 0 lub brak to programowane s 4 stawki i stawka G domylnie programowana jest jako stawka
zwolniona,
2. Ps = 1..6 to stawka G domylnie programowana jest jako stawka zwolniona. Pozostae stawki
programowane s zgodnie z parametrami,
3. Ps = 7 to wszystkie stawki programowane s zgodnie z podanymi parametrami.
Dla takiego zaprogramowania stawek PTU programici powinni korzysta z sekwencji LBFSTRQ Odelij
informacje kasowe (z parametrem 23 ). W takim przypadku w odpowiedzi na LBFSTRQ zawsze zwracana
jest informacja o wszystkich stawkach PTU (7).
przykady formatu sekwencji dla rnych wartoci parametru Ps:
Ps=1:
Ps=4:

ESC P Ps $p [<nr_kasy> CR <kasjer> CR] PTU_A / <check> ESC \


ESC P Ps $p [<nr_kasy> CR <kasjer> CR] PTU_A / PTU_B / PTU_C / PTU_D / <check> ESC \
Py; Pm; Pd : data w nastpujcym formacie:
Py : numer roku = 0...99, (dwie najmodsze cyfry, 1950...2049),
Pm : numer miesica = 1...12,
Pd : dzie = 1...31,
podanie tych opcjonalnych parametrw i ich zgodno z dat w drukarce spowoduje brak potrzeby
potwierdzenia z klawiatury zmiany stawek,
<nr_kasy> : string[8], (opcjonalny) nazwa kasy, max 8 dowolnych znakw,
<kasjer> : string[17], (opcjonalny) nazwa kasjera, max 17 dowolnych znakw,
<check> : bajt kontrolny,
PTU_A ... PTU_G: wartoci stawek PTU:
xx.yy - liczba z zakresu 0,00..99,99 (przypisanie wartoci oznacza, e stawka jest AKTYWNA),
100 - oznaczenie stawki zwolnionej ,
101 oznaczenie stawki nieaktywnej,
Przykadowa zmiana stawek (dla Ps=7): A=22%, B=7%, C=0%, D=ZW, E=nakt, F=nakt, G=nakt
ESC P 7 $p [<nr_kasy> CR <kasjer>] 22,00 / 7,00 / 0 / 100 / 101 / 101 / 101 / <check> ESC

Uwagi:
1. Po podaniu Py, Pm, Pd - zgodnych z biec dat drukarka nie wymaga potwierdzenia z klawiatury.
2. Prba zaprogramowania stawek takich jakie s zaprogramowane traktowana jest jako sukces - nie ma
zapisu do pamici fiskalnej.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 5 : bd operacji z RTC,
= 6 : bd operacji z pamici fiskaln,
= 7 : bd daty (aktualnie ustawiona jest wczeniejsza od daty ostatniego zapisu) lub nie ma zgodnoci daty
w drukarce z dat przesan,
= 8 : wykonanie niemoliwe niezerowe TOTALIZERY,
= 11 : za ilo wartoci PTU.

www.posnet.com.pl

13

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Uwagi:
1. W trybie niefiskalnym sekwencja powoduje zapis stawek PTU do pamici RAM drukarki,
2. W urzdzeniu fabrycznie nowym wszystkie stawki s nieaktywne,
3. Gdy wszystkie stawki s nieaktywne:
- drukarka interpretuje tylko sekwencje: LBSETCK, LBSETPTU, LBFSKREP, LBSENDCK, LBFSTRQ1,
LBERNRQ, LBIDRQ,,
Przy pozostaych sekwencjach urzdzenie zgasza bd nr 18.
- Prba FISKALIZACJI (LBSETHDR take programowanie nagwka) powoduje wywietlenie
komunikatu:
Nie zdefiniowane

stawki PTU

4. W przypadku bdu wykonania (bd zapisu do EPROM) dalsza praca drukarki zostanie zawieszona, tzn.
drukarka zezwoli jedynie na wykonanie raportw okresowych (przechodzi w stan tylko do odczytu),
5. Ta operacja (jak wszystkie wykonujce trway zapis w pamici fiskalnej) wymaga potwierdzenia
z klawiatury po uprzednim sprawdzeniu i zatwierdzeniu poprawnoci daty zegara drukarki,
6. Sprzeda w stawce nieaktywnej jest zablokowana (por. sekwencj LBTRSLN). Na raporcie dobowym
uwzgldniane s tylko kwoty sprzeday w stawkach aktywnych.
[LBSETHDR]: Programowanie nagwka
ESC P 0 $f <string> #255 [<kasjer> CR <nr_kasyr> CR] <check> ESC \
Gdzie:
<string> : maksymalnie 200 znakw ASCII (nie wliczajc znakw sterujcych), dozwolone s polskie litery
(zgodne ze standardem MAZOWIA) kody CR, LF oraz SO, DC4 (podwjna szeroko druku); poniewa w
obrbie nagwka mog wystpowa dowolne znaki ASCII z obszaru $20..$7F, wybrane znaki sterujce oraz
polskie litery, terminatorem stringu jest w tym przypadku wyjtkowo kod #255 ( $FF ),
<nr_kasy> : (opcjonalny) nazwa kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<kasjer> : (opcjonalny) nazwa kasjera, wydrukowanych zostanie max. 17 dowolnych znakw,
<check> : bajt kontrolny,
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru,
= 8 : prba zaprogramowania nagwka przy niezerowych totalizerach,
= 12 : bdny nagwek (np. za dugi lub zawierajcy niedozwolone znaki),
= 18 : brak zdefiniowanych stawek PTU w drukarce (wszystkie nieaktywne!) - bd sygnalizowany tylko na
czu szeregowym na wywietlaczu operatora wywietlany jest komunikat Brak stawek PTU !!!.
Uwagi:
1.
2.

Znakiem pocztku linii dla drukarki jest w obrbie nagwka LF lub CR. Jeeli poszczeglne linie
nagwka bd rozdzielone przez CR_LF, to wystpi wwczas sytuacja bdna pojawi si puste linie.
Sekwencje sterujce drukarki ESC.. s w obrbie nagwka zabronione.

[LBSETRAB] : Wybr metody rozliczania rabatu


Drukarka Thermal 1.02 jest przystosowana do rozliczania rabatu wedug dwch algorytmw szczegowy opis na
stronie 69. Za pomoc sekwencji LBSETRAB mona okreli, ktra z metoda bdzie wykorzystywana. Domylnym
ustawieniem jest warto Pr=1
ESC P Pr $r <check> ESC\
Gdzie:
Pr : parametr okrelajcy metod obliczania rabatu: Pr=1 metoda 1, Pr=0 metoda 2
<check> : bajt kontrolny,
Kody bdw:
= 1: nie zainicjalizowany zegar RTC,

www.posnet.com.pl

14

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


= 4: bd parametru,
[LBSRVINFO] : Programowanie daty przegldu okresowego
ESC P 0$o <liczba_dni>/ [<telefon>CR] <check> ESC\
Gdzie:
liczba_dni: liczba dni do wydrukowania ostrzeenia,
telefon: string[30] numer telefoniczny punktu serwisowego, nadmiarowe znaki s ucinane. Jeli brak parametru
-pozostaje dotychczasowy. Jeli parametr pusty opcja zostaje wyczona, drukowane jest tylko przypomnienie o
wezwaniu serwisu..
Kody bdw:
= 1: nie zainicjalizowany zegar RTC,
= 4: bd parametru,
= 255: komenda nierozpoznana.
[LBAUTH] : Wprowadzanie kodu autoryzacyjnego
ESC P 1$o <code> CR <check> ESC\
Gdzie:
code: kod autoryzacyjny przeduajcy czas dziaania urzdzenia (o 10, 30 lub 60 dni) lub zdejmujcy ograniczenia
czasowe.
Kody bdw:
= 1: nie zainicjalizowany zegar RTC,
= 4: bd parametru,
=82: przekroczona liczba programowania przez RS
= 255: komenda nierozpoznana.
Uwagi:
1. Kady kod terminowy moe by przesany tylko raz. Ponowne uycie tego samego kodu powoduje
zwrcenie bdu 4.
2. Pomyka w programowaniu kodu terminowego moe wystpi 5 razy z rzdu. Nastpne nieudane prby
powoduj zwrcenie bdu 82.
3. Jeeli dokonana zostaa pena autoryzacja dalsze wprowadzanie kodu powoduje zwrcenie bdu 0
[LBFEED] : Wysuw papieru
ESC P Ps #l <check> ESC \
Gdzie:
Ps : wysuw papieru o 0..20 linii. Sekwencja jest blokowana w trakcie transakcji i w trybie
oszczdnociowym.
Kody bdw:
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru Ps.

[LBSERM]: Obsuga bdw


ESC P Ps #e <check> ESC \
Gdzie:
Ps : wybr trybu obsugi sytuacji bdnych zalenie od wartoci parametru:
= 0 : wystpienie bdu w trakcie realizacji sekwencji powoduje wywietlenie komunikatu
i zatrzymanie przetwarzania, a do nacinicia klawisza NIE,

www.posnet.com.pl

15

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


= 1 : wystpienie bdu nie daje komunikatu i nie zawiesza przetwarzania. Rodzaj bdu moe by
testowany przy uyciu sekwencji LBFSTRQ (pole Pe odpowiedzi LBFSTRS), lub sekwencj
LBERNRQ,
= 2 : wystpienie bdu w trakcie realizacji sekwencji powoduje wywietlenie komunikatu
i zatrzymanie przetwarzania a do nacinicia klawisza NIE. Kod bdu po wykonaniu
rozkazu jest automatycznie wysyany do interfejsu,
= 3 : wystpienie bdu nie daje komunikatu i nie zawiesza przetwarzania. Kod bdu po
wykonaniu rozkazu jest automatycznie wysyany do interfejsu.
Automatycznie wysyana odpowied ma format:
[LBERSTS] :
ESC P Pe #Z <c1><c2> ESC \
Gdzie:
Pe : kod bdu (0 = OK),
<c1><c2> = dwuznakowy identyfikator sekwencji.
Kody bdw:
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru.
Uwagi:
1.
2.
3.

Po wczeniu zasilania (nie po obudzeniu drukarki) wybierany jest standardowo tryb pracy z
wywietlaniem komunikatw o bdach (Ps=0).
Przy wsppracy z bardziej zaawansowanymi aplikacjami ktre wykorzystuj dialog z drukark dla
uzyskania potwierdzenia poprawnoci wykonania poszczeglnych operacji, sensowne jest wysanie
sekwencji LBSERM dla zablokowania komunikatw o bdach.
Niektre sekwencje, niezalenie od wyczenia komunikatw o bdach, mog wymaga rcznego
potwierdzenia z klawiatury (przy pomocy klawisza TAK). Dotyczy to przewanie operacji
prowadzcych do trwaego zapisu danych do pamici fiskalnej (np. zmiana stawek PTU, raport dobowy).

www.posnet.com.pl

16

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

3.3 Transakcja
W drukarkach fiskalnych w trybie fiskalnym moemy mie do czynienia z dwoma rodzajami paragonw:
1. paragonem fiskalnym zawsze, gdy pierwsza zadeklarowana i wydrukowana pozycja na paragonie to
sprzeda towaru
2. paragonem niefiskalnym - zawsze, gdy pierwsza zadeklarowana i wydrukowana pozycja na paragonie to
obsuga opakowania (pobranie lub zwrot)
[LBTRSHDR]: Pocztek transakcji
ESC P Pl $h <check> ESC \
Gdzie:
Pl : ilo pozycji sprzeday = 0..80 (tryb blokowy), jeeli Pl=0: paragon ON-LINE (otrzymywane linie s
drukowane na bieco),
<check> : bajt kontrolny.
W sekwencji rozpoczcia transakcji moliwe jest take przesyanie numeru systemowego. Warunkiem tego jest
poprzedzenie cigu znakw z linii 1 znakiem #, ktry nie jest drukowany. Linie 2 i 3 nie s uywane i wystpuj tu
w celu zachowania kompatybilnoci z poprzednimi wersjami. Jeeli po pierwszym znaku # zostanie wykryty cig
znakw #XXXX...XXX# gdzie X jest cyfr, cig ten nie jest drukowany w linii lecz pod spodem w postaci kodu
kreskowego.
W przypadku braku # w linii 1, wszystkie linie s ignorowane. Jeeli nr systemowy jest przesyany jednoczenie w
rozpoczciu i w zakoczeniu transakcji, to uwzgldniana jest warto przesyana w zakoczeniu transakcji.
Sekwencja ma nastpujc posta:
ESC P Pl; Pn $h <linia1> CR <linia2> CR <linia3> CR <check> <ESC>\
Pl: liczba pozycji sprzeday = 0..80, jeeli Pl=0: paragon ON-LINE (otrzymywane linie s drukowane na bieco),
Pn: liczba dodatkowych linii tekstu, moe przyjmowa wartoci z zakresu 0-3
<linia1>...<linia3> - dodatkowe linie tekstu (pod uwag brana jest jedynie linia1, kiedy pierwszym znakiem w linii
jest # -tre tego parametru jest traktowana jako numer systemowy). W linii 1 moe wystpowa do 10 znakw
alfabetycznych. Znaki specjalne: !@#$%^&*()~_+=|\-{}[];:<>?,./ oraz cyfry s drukowane bez ogranicze.
Maksymalna dugo dla numeru systemowego to 30 znakw.
Jeeli po pierwszym znaku # zostanie wykryty cig znakw #XXXX...XXX# gdzie X jest znakiem
alfanumerycznym, cig ten nie jest drukowany w linii lecz pod spodem w postaci kodu kreskowego. Dugo
przesyanego w ten sposb stringu wynosi od 3 do 15 liter lub znakw specjalnych lub 30 cyfr (liczba cyfr nie moe
by =29). W przypadku uywania kombinacji obu typw znakw, maksymalna ilo cyfr i liter okrelona jest w
specyfikacji kodu EAN 128.
<check> : bajt kontrolny.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru (za liczba pozycji),
= 5 : bd odczytu zegara RTC,
= 6 : bd operacji z pamici fiskaln,
= 40 : brak w pamici RAM nagwka (tylko w trybie fiskalnym),
= 98 : blokada sprzeday z powodu zaoenia zwory serwisowej.
Uwagi:
1.

Odebranie tej sekwencji przez drukark, w przeciwiestwie do poprzednich urzdze, nie powoduje
wydruku nagwka. Ustawione zostan jedynie bity PAR i CMD (o ile rozkaz zosta wykonany
poprawnie).

www.posnet.com.pl

17

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


2.
3.
4.

Limit iloci linii do 80 obowizuje tylko, gdy paragon jest drukowany w trybie blokowym Off
Line ze wzgldu na ograniczon (do 2 KB) dugo bufora dla caego paragonu.
Jeeli zachodzi konieczno wydrukowania paragonu duszego ni 80 linii naley uy trybu On-Line
(sekwencja LBTRSHDR z parametrem Pl=0).
Jeeli w cigu 20 minut od momentu odebrania LBTRSHDR drukarka nie odebraa adnej innej sekwencji
to oprogramowanie zeruje bit PAR (anulowanie trybu transakcji bez drukowania informacji).

[LBTRSLN] : Linia paragonu


ESC P Pi $l <nazwa> CR <ilo> CR <ptu> / CENA / BRUTTO / <check> ESC \
lub
ESC P Pi ; Pr [;Po] $l <nazwa> CR <ilo> CR <ptu> / CENA / BRUTTO / RABAT / <check> ESC \
Lub
ESC P Pi ; Pr [;Po] $l <nazwa> CR <ilo>CR <ptu> / CENA / BRUTTO / RABAT / <OPIS RABATU> CR <check> ESC \

Gdzie:
Pi : numer linijki = 0 lub 1...255 , jeeli = 0 to operacja STORNO,
Pr : rodzaj rabatu:
= 0 : brak, gdy Pr=0 i Po>0 nie wystpuje jawnie rabat w linii paragonu (warto rabatu), tylko
informacja o jego uwzgldnieniu. W tym przypadku parametr RABAT nie jest brany pod uwag i moe
by dowolny.
= 1 : rabat kwotowy,
= 2 : rabat procentowy,
= 3 : narzut kwotowy,
= 4 : narzut procentowy,
Po : opis rabatu: (w trybie blokowym opis rabatu nie jest drukowany)
= 1 "specjalny",
= 2 "okolicznociowy",
= 3 "okazja",
= 4 "witeczny",
= 5 "stay klient",
= 6 "jubileuszowy,
= 7 "urodzinowy",
= 8 "dla pracownika",
= 9 "promocja",
= 10 "nagroda",
= 11 "wyprzeda",
= 12 "przecena",
= 13 "sezonowy",
= 14 "nocny",
= 15 "obsuga",
= 16 definiowany przez uytkownika
<nazwa> : string[40],
Oprogramowanie drukarki:
- zamienia dosyane litery na due pod ktem kontroli bazy towarowej (due i mae litery nie s
rozrnialne),
- drukuje due i mae litery razem z niedozwolonymi znakami,
<ilo> : string[16], w ktrym liczba ilo spenia te same warunki co CENA, z tym, e dla
kompatybilnoci dopuszczamy w obrbie iloci dowolne inne znaki ni cyfry i wyodrbniamy z tego
napisu cig bdcy max. 10-cyfrow liczb z dowolnie ustawionym punktem dziesitnym, jakkolwiek
drukarka wydrukuje jedynie liczb okrelajc ilo.
<ptu> : kod stawki PTU = A...G . Dopuszcza si uywania (spacja) lub Z dla oznaczenia towarw
zwolnionych w przypadku, gdy w drukarce zdefiniowano jedn stawk zwolnion. O ile zdefiniowano
wicej ni jedn stawk zwolnion drukarka zgosi bd nr 18,
BRUTTO : kwota sprzeday brutto 10 cyfr max, > 0,
CENA : cena jednostkowa brutto podawana z dokadnoci do 1 grosza; format zawierajcy max. 10 cyfr z
precyzj do dwch miejsc po przecinku. Format ten jest kontrolowany i drukowany z kompresj zer

www.posnet.com.pl

18

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


nieznaczcych przed przecinkiem, natomiast po przecinku kompresja zer nieznaczcych nie jest
realizowana,
RABAT : kwota lub procent rabatu / dopaty. Obowizuj nastpujce ograniczenia:
- procent musi by z zakresu 0,01...99.99 %,
- przy rabacie kwotowym uwzgldnienie rabatu nie moe prowadzi do ujemnego wyniku.
Niespenienie powyszego daje bd #20,
OPIS RABATU: jeli parametr Po=16,okrela nazw rabatu/narzutu drukowan na paragonie.
<check> : bajt kontrolny, jw.

Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : zy numer linii (bd parametru Pl),
= 16: bdna nazwa (pusta lub za duga),
= 17: bdne oznaczenie iloci (puste lub za dugie),
= 18: bd spowodowany:
bdnym oznaczeniem stawki PTU (lub brakiem),
bdnym oznaczenia stawki zwolnionej ( lub Z) dla przypadku gdy w drukarce >1 stawek
zwolnionych lub stawka zwolniona nie zostaa zdefiniowana,
prb sprzeday w stawce nieaktywnej,
zadziaaniem mechanizmu kontroli bazy towarowej,
= 19: bd wartoci CENA (syntaktyka, zakres lub brak),
= 20: 1.bd wartoci BRUTTO lub RABAT (syntaktyka, zakres lub brak),
2.bd niespenienia warunku ilo x cena = warto - drukarka sprawdza poprawno przesanych
informacji wg algorytmu :
mnoy cen przez wyowion z iloci liczb,
zaokrgla wynik mnoenia do dwch miejsc po przecinku,
wynik zaokrglenia porwnuje z wartoci (BRUTTO),
przy rabacie kwotowym uwzgldnienie rabatu nie moe prowadzi do ujemnego wyniku
(niespenienie powyszego daje bd #20),
= 21: sekwencja odebrana przez drukark przy wyczonym trybie transakcji,
= 22: bd operacji STORNO (np. prba wykonania w trybie blokowym OFF-LINE, lub gdy w wyniku jej
wykonania suma w danej grupie podatkowej wychodzi ujemna), lub bd operacji z rabatem np.
warto towaru po uwzgldnieniu rabatu wychodzi ujemna,
= 90: operacja tylko z kaucjami, nie mona wysya towarw $l,
= 91: bya wysana forma patnoci, nie mona wysya towarw $l,
= 94: przepenienie kwoty sprzeday (maksymalna kwota sprzeday wynosi 999999.99).
Uwagi:
1.
2.
3.
4.
5.

Numeracja linijek musi by ciga, rwnie jeeli jest wykonywana operacja STORNO, np. poprawna jest
sekwencja numerw 1,2,3,4 ale musi by: 1,2,0,4 jeeli wykonuje si operacj STORNO.
Jeeli jest drukowany paragon w trybie blokowym (parametr Pl w sekwencji LBTRSHDR jest <>0) to
odebrana musi by zadeklarowana wczeniej liczba linijek.
Uwzgldnienie rabatu dla pozycji polega na odjciu od kwoty BRUTTO kwoty rabatu, ktra jest przesana
bezporednio lub wynika z okrelonej stopy procentowej.
Operacja STORNO musi by kontrolowana przez aplikacj, tak aby zgadzaa si cena i ilo usuwanego z
listy towaru. Ponadto naley uwzgldni ew. rabat przy anulowaniu linii paragonu (storno).
Wprowadzono pojcie TIMEOUT dla paragonu, ktre oznacza, e w przypadku nie zakoczenia
drukowania paragonu w cigu 20 minut od momentu jego rozpoczcia drukarka anuluje transakcj
wypisujc na kocu komunikat:
ANULOWANY
#nr_kasy kasjer
HH:MM
NNNNNNNN

www.posnet.com.pl

19

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


BD: BD INTERFEJSU NR ???
Format wydruku (tre paragonu) przykad dla trybu niefiskalnego i fiskalnego
NAGWEK
NIP xxx-xxx-xx-xx
YYYY-MM-DD

NIEFISKALNY
Towar o dugiej nazwie
1.000 x 10,56
Towar1
1.000 x 10,56

NAGWEK
NIP xxx-xxx-xx-xx
DDDDDD

YYYY-MM-DD

PARAGON FISKALNY
Towar o dugiej nazwie
1.000 x 10,56
Towar1
1.000 x 10,56

10,56A
10,56A

DDDDDD
10,56A
10,56A

3.4 Obsuga kaucji


[LBTRSDEP]: Obsuga kaucji w linii paragonu
Sekwencja $l umoliwia take obsug kaucji. Rozkaz rejestrujcy zwrot lub przyjcie opaty za opakowanie ma tu
nastpujc posta:
ESC P Pi $l <nazwa_op> CR <ilo> CR <P>/ CENA/ WARTO/ <check> ESC\
Gdzie:
Pi : 6 kaucja pobrana, 7 storno kaucji pobranej, 10 kaucja wydana, 11 storno kaucji wydanej
(parametr Pi odpowiada parametrowi staemu w sekwencjach LBDEP+, LBDEPSTR+, LBDEP-,
LBDEPSTR-)
Nazwa_op: string[4] numer opakowania z zakresu 0...9999, (opcjonalne)
-drukarka drukuje zawsze tekst Opakowanie zwr. nr,
- jeeli parametr <nr> nie zosta uwzgldniony to drukowany jest jedynie napis Opakowanie zwr..
ilo: string[16], (opcjonalne) ilo opakowania; drukarka wyodrbnia z przesanego stringu warto
numeryczn, ktra jest pniej drukowana.
P: parametr stay o wartoci P, wystpujcy w sekwencji dla odrnienia jej od normalnej linii paragonu.
Cena: cena opakowania
Wartosc: parametr ignorowany, moe przyjmowa dowoln warto
Kod bdu:
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru,
= 18: bd parametru P
Oprcz sekwencji LBTRSDEP do obsugi kaucji w drukarce przewidziano jeszcze 4 sekwencje. Praktycznie
sekwencje [LBDEP+] i [LBDEPSTR+] zwizane z pobieraniem kaucji s identyczne z sekwencjami wystpujcymi
w drukarkach POSNET THERMAL i POSNET 3001 (wersje 39.x). Uzupenione zostay one o dwie sekwencje
[LBDEP-] i [LBDEPSTR-] zapewniajce obsug zwrotu kaucji. Programista wykorzystujcy te 4 sekwencje
powinien mie na uwadze, e na wydrukach otrzyma zawsze ilo=1 i cen jednostkow rwn dosyanej w
sekwencji kwocie, o ile nie wykorzysta pola <ilo> precyzujcego ilo opakowania.

[LBDEP+]: Kaucja pobrana (za sprzeda opakowania)


ESC P 6 $d <kwota> / [<nr> CR <ilo> CR ] <check> ESC \
Gdzie:
<kwota> : kwota kaucji (za pobrane opakowania),
<nr> : string[4], (opcjonalne) numer opakowania uyte mog by tylko cyfry.
- drukarka drukuje zawsze tekst Opakowanie zwr. nr,

www.posnet.com.pl

20

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


- jeeli parametr <nr> nie zosta uwzgldniony to drukowany jest jedynie napis Opakowanie zwr..
<ilo> : string[16], (opcjonalne) ilo opakowania; drukarka wyodrbnia z przesanego stringu warto
numeryczn, ktra jest pniej drukowana,
- jeli wystpuje to na paragonie umieszczana jest informacja o iloci i cenie jednostkowej za
opakowanie obliczonej jako CENA = <kwota> / <ilo>,
- jeeli pole <ilo> nie wystpuje to drukarka przyjmuje, e ilo=1 i CENA=<kwota>.
<check> : bajt kontrolny,
Kod bdu:
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru,
= 9 : bd operacji I/O,
= 17 : bdne oznaczenie <iloci> (za dugie) lub, przekroczona liczba opakowa, przekroczony zakres dla
<nr> = 0.. 9999,
= 19 : bd wartoci KWOTA (syntaktyka, zakres lub brak),
= 21 : sekwencja odebrana przez drukark przy wyczonym trybie transakcji.
czna suma kaucji pobranej jest akumulowana i porwnywana z wartoci PRZYJCIE przesan w sekwencji
LBTRXEND.

[LBDEPSTR+]: Storno kaucji pobranej


ESC P 7 $d <kwota> / [<nr> CR <ilo> CR] <check> ESC \
Gdzie:
<kwota> : kwota kaucji (za pobranie opakowania),
<nr> : string[4], (opcjonalne) numer opakowania uyte mog by tylko cyfry.
- drukarka drukuje zawsze tekst Opakowanie zwr. nr,
- jeeli parametr <nr> nie zosta uwzgldniony to drukowany jest jedynie napis Opakowanie zwr..
<ilo> : string[16], (opcjonalne) ilo opakowania, drukarka wyodrbnia z przesanego stringu warto
numeryczn, ktra jest pniej drukowana,
- jeli wystpuje to na paragonie umieszczana jest informacja o iloci i cenie jednostkowej za
opakowanie, obliczonej jako CENA := <kwota> / <ilo>,
- jeeli pole <ilo> nie wystpuje to drukarka przyjmuje, e ilo=1 i CENA=<kwota>,
<check> : bajt kontrolny,
Kody bdw:
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru,
= 9 : bd operacji I/O,
= 17 : bdne oznaczenie <iloci> (za dugie) lub,
przekroczona liczba opakowa ,
przekroczony zakres dla <nr> = 0...9999,
= 19 : bd wartoci KWOTA (syntaktyka, zakres lub brak),
= 21 : sekwencja odebrana przez drukark przy wyczonym trybie transakcji,
= 22 : bd operacji STORNO (np. prba wykonania w trybie blokowym OFF-LINE, lub w wyniku jej
wykonania suma PRZYJ za opakowania kaucjonowane wychodzi ujemna).
[LBDEP-]: Kaucja wydana (za zwrot opakowania)
ESC P 10 $d <kwota> / [<nr> CR <ilo> CR ] <check> ESC \
Gdzie:
<kwota> : kwota kaucji (za wydanie opakowania),
<nr> : string[4], (opcjonalne) numer opakowania uyte mog by tylko cyfry.
- drukarka drukuje zawsze tekst Opakowanie zwr. nr,
- jeeli parametr <nr> nie zosta uwzgldniony to drukowany jest jedynie napis Opakowanie zwr..

www.posnet.com.pl

21

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


<ilo> : string[16], (opcjonalne) ilo opakowania, drukarka wyodrbnia z przesanego stringu warto
numeryczn, ktra jest pniej drukowana,
- jeli wystpuje to na paragonie umieszczana jest informacja o iloci i cenie jednostkowej za opakowanie
obliczonej jako CENA = <kwota> / <ilo>,
- jeeli pole <ilo> nie wystpuje to drukarka przyjmuje, e ilo=1 i CENA=<kwota>.
<check> : bajt kontrolny,
Kod bdu:
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru,
= 9 : bd operacji I/O,
= 17 : bdne oznaczenie <iloci> (za dugie) lub,
przekroczony zakres dla <nr> = 0... 9999,
= 19 : bd wartoci KWOTA (syntaktyka, zakres lub brak),
= 21 : sekwencja odebrana przez drukark przy wyczonym trybie transakcji.
czna suma kaucji zwrconej jest akumulowana i porwnywana z wartoci WYDANIE przesan w sekwencji
LBTRXEND.

[LBDEPSTR-]: Storno kaucji wydanej


ESC P 11 $d <kwota> / [<nr> CR <ilo> CR ] <check> ESC \
Gdzie:
<kwota> : kwota kaucji (za wydanie opakowania),
<nr> : string[4], (opcjonalne) numer opakowania uyte mog by tylko cyfry.
- drukarka drukuje zawsze tekst Opakowanie zwr. nr,
- jeeli parametr <nr> nie zosta uwzgldniony to drukowany jest jedynie napis Opakowanie zwr..
<ilo> : string[16], (opcjonalne) ilo opakowania, drukarka wyodrbnia z przesanego stringu warto
numeryczn, ktra jest pniej drukowana,
- jeli wystpuje to na paragonie umieszczana jest informacja o iloci i cenie jednostkowej za opakowanie
obliczonej jako CENA = <kwota> / <ilo>,
- jeeli pole <ilo> nie wystpuje to drukarka przyjmuje, e ilo=1 i CENA= <kwota>.
<check> : bajt kontrolny,
Kody bdw:
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru,
= 9 : bd operacji I/O,
= 17 : bdne oznaczenie <iloci> (za dugie) lub,
przekroczona liczba opakowa ,
przekroczony zakres dla <nr> =0.. 9999,
= 19 : bd wartoci KWOTA (syntaktyka, zakres lub brak),
= 21 : sekwencja odebrana przez drukark przy wyczonym trybie transakcji,
= 22 : bd operacji STORNO (np. prba wykonania w trybie blokowym OFF-LINE, lub w wyniku jej
wykonania suma PRZYJ za opakowania kaucjonowane wychodzi ujemna).

www.posnet.com.pl

22

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


3.5 Zakoczenie transakcji
[LBTREXITCAN] : Anulowanie transakcji
ESC P 0 [ ; Pc ; Pns ] $e [ <nr_kasy> CR <kasjer> CR ] [ <nr systemowy> CR ] <check> ESC \
Negatywne zatwierdzenie transakcji przez komputer.
Gdzie:
Pc : (opcjonalny)
= 0 : zachowanie dotychczasowe tzn. zakoczenie drukowania, wysunicie papieru i zakoczenie trybu
transakcyjnego,
= 1 : j.w.,
= 2 : wydrukowanie nagwka nowego paragonu i wczenie 'blokowego' trybu transakcyjnego
w specjalny sposb, tzn. od tego momentu urzdzenie realizuje tylko nastpujce sekwencje:
LBTRSHDR, LBTREXIT (tylko anulowanie paragonu), LBDSP oraz LBFSTRQ,
Pns : (opcjonalny) parametr okrelajcy czy bdzie drukowany numer systemowy,
<nr_kasy> : string[8], (opcjonalny) nazwa kasy, max 8 dowolnych znakw,
<kasjer> : string[17], (opcjonalny) nazwa kasjera, drukuje max 17 dowolnych znakw,
w przypadku nie umieszczenia opcjonalnych parametrw nr_kasy i kasjer, wartoci te pobierane s
z sekwencji LBLOGIN lub przyjmowane s wartoci domylne #0001 i Kierownik,
<nr systemowy> : string[30] (opcjonalny) moe wystpowa do 10 znakw alfabetycznych. Znaki specjalne:
!@#$%^&*()~_+=|\-{}[];:<>?,./ oraz cyfry s drukowane bez ogranicze
<check> : bajt kontrolny,
Uwagi:
1. Jeeli sekwencj poprzedzajc LBTREXITCAN bya sekwencja rozpoczcia transakcji LBTRSHDR to
jedynym skutkiem jest wyzerowanie bitu PAR.
[LBTREXIT] : Standardowe zatwierdzenie transakcji
ESC P 1 ; Pr $e <kod> CR WPLATA / TOTAL / <check> ESC \
lub :
ESC P 1 ; Pr ; Pn ; Pc $e <kod> CR <linia1> CR <linia2> CR <linia3> CR
WPATA / TOTAL / <check> ESC \
lub:
ESC P 1 ; Pr ; Pn ; Pc ; Px ; Py $e <kod> CR <linia1> CR <linia2> CR <linia3> CR
WPLATA / TOTAL / RABAT / <check> ESC \
3 warianty pozytywnego zatwierdzenia transakcji.
Gdzie:
Pr = 0...99 : opcjonalny rabat procentowy dla caej transakcji,
Pn = ilo dodatkowych linii umieszczanych w stopce paragonu, za logo fiskalnym, do ktrych ma
dostp aplikacja = 0..3,
Pc = 0 : zachowanie dotychczasowe tzn. zakoczenie drukowania, wysunicie papieru i zakoczenie trybu
transakcyjnego,
= 1 : j.w.,
= 2 : wydrukowanie nagwka nowego paragonu i wczenie 'blokowego' trybu transakcyjnego w
specjalny sposb, tzn. od tego momentu urzdzenie realizuje tylko nastpujce sekwencje:
LBTRSHDR, LBTREXIT (tylko anulowanie paragonu), LBDSP oraz LBFSTRQ,
Px : rodzaj rabatu (niezaleny od parametru Pr) =
0 : brak,
1 : rabat procentowy,
2 : narzut procentowy,
3 : rabat kwotowy,
4 : narzut kwotowy,
Py = 1 : parametr ignorowany,

www.posnet.com.pl

23

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


<linia1>...<linia3> : string[40] zawarto linii dodatkowych, - informacje o przesyaniu nr systemowego i
kodu kreskowego w linii dodatkowej znajduj si na stronie 30.
<kod> : string[3], kod kasy (1 znak) + kod kasjera (2 znaki), pole jest ignorowane, jeeli wczeniej byo
logowanie kasjera (opis sekwencji logowania - str 44),
WPATA : kwota wpacona przez klienta, jeeli = 0 to napisy wpata / reszta nie bd drukowane,
TOTAL : czna naleno dla klienta, dla kontroli poprzednich transferw,
RABAT : rabat/narzut procentowy/kwotowy dla caej transakcji, stopa jest zadana z dokadnoci do 0.01
jeeli parametr Px<>0,
<check> : bajt kontrolny, jw.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru (Pr,Pn ,Pc, Px lub Py),
= 5 : bd operacji z zegarem RTC,
= 6 : bd operacji z pamici fiskaln,
= 23 : bdna liczba rekordw (linii) paragonu,
= 24 : przepenienie bufora drukarki paragonowej,
= 25 : bdny kod terminala/ kasjera (za dugo lub format), lub bdna tre dodatkowych linii,
= 26 : bd kwoty WPLATA (syntaktyka; jeeli rnica WPLATA-TOTAL <=0 to napisy gotwka,
reszta nie bd drukowane),
= 27 : bdna suma cakowita TOTAL lub bdna kwota RABAT,
= 28 : przepenienie totalizera (max 99 999 999,99 dla jednej grupy podatkowej),
= 29 : danie zakoczenia (pozytywnego) trybu transakcji, w momencie kiedy nie zosta on jeszcze
wczony,
Uwagi:
1.

Jeeli parametr Px0 to warto parametru Pr jest ignorowana.

Przykad wydruku paragonu standardowego


NAGWEK
NIP XXX-XXX-XX-XX

NAGWEK
NIP XXX-XXX-XX-XX

YYYY-MM-DD

DDDDDD
NIEFISKALNY
TOWAR O DUGIEJ NAZWIE
1,000 x 1,00
1,- A
TOWAR1
1,000 x 1,00
1,- B
TOWAR2
1,000 x 1,00
1,- C
TOWAR3
1,000 x 1,00
1,- G
---------------------------------------SPRZEDA OP. A
0,95
PTU A 22 %
0,17
SPRZEDA OP. B
0,95
PTU B 7 %
0,06
SPRZEDA OP. C
0,95
PTU C 5 %
0,05
SUMA PTU
0,28
SPRZEDA ZW. G
0,95
---------------------------------------RAZEM:
4,00
RABAT:
05 %

YYYY-MM-DD

SUMA

SUMA

3,80

WPATA:
RESZTA:
0002

DDDDDD
PARAGON FISKALNY
TOWAR O DUGIEJ NAZWIE
1,000 x 1,00
1,- A
TOWAR1
1,000 x 1,00
1,- B
TOWAR2
1,000 x 1,00
1,- C
TOWAR3
1,000 x 1,00
1,- G
---------------------------------------SPRZEDA OP. A
0,95
PTU A 22 %
0,17
SPRZEDA OP. B
0,95
PTU B 7 %
0,06
SPRZEDA OP. C
0,95
PTU C 5 %
0,05
SUMA PTU
0,28
SPRZEDA ZW. G
0,95
---------------------------------------RAZEM:
4,00
RABAT:
05 %

NIEFISKALNY
#<nr_kasy> <kasjer>

0002

14:34

4,0,20
#<nr_kasy>

<kasjer>

14:34

PL ABC 00123456

00123456

www.posnet.com.pl

3,80

WPATA:
RESZTA:

4,0,20

24

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

[LBTRXEND] : Zatwierdzenie transakcji z formami patnoci


ESC P Pn ; Pc ; Py ; Px ; Pg ; Pk ; Pz ; Pb ; Po1 ; Po2 ; Pr $x <kod> CR <linia1> CR <linia2> CR <linia3> CR
<linia4> CR <linia5> CR <nazwa_karty> CR <nazwa_czeku> CR <nazwa_bonu> CR TOTAL / RABAT /
WPATA / KARTA / CZEK/ BON / PRZYJCIE/ WYDANIE / RESZTA / <check> ESC \
Sekwencja powysza umoliwia aplikacji:
- zdefiniowanie rabatu dla caej transakcji (z dokadnoci do 0.01 %),
- tryb pracy obcinacza (bez obcinania, ew. z wydrukowaniem nagwka),
- umieszczenie w stopce paragonu informacji o gotwce i innych formach patnoci, moliwo przesania
przez aplikacj kwoty reszty,
- umieszczenie w stopce paragonu pobranej kwoty za opakowanie (-a) majcej cisy zwizek z
sekwencjami [LBDEP+] i [LBDEPSTR+] opisanych wczeniej (str. 20 i 21) w postaci:
Rozliczenie opakowa zwrotnych
Przyjcia opakowa
Opakowanie zwr.1
1 x <PRZYJCIE>
<PRZYJCIE>

umieszczenie w stopce paragonu wydanej kwoty za zwrot opakowania majcej cisy zwizek z
sekwencjami [LBDEP-] i [LBDEPSTR-] opisanych wczeniej (str. 21 i 22) w postaci:
Rozliczenie opakowa zwrotnych
Zwroty opakowa
Opakowanie zwr.1
1 x <WYDANIE>
-<WYDANIE>

Gdzie:
Pn : ilo dodatkowych linii umieszczanych w stopce paragonu, za logo fiskalnym, do ktrych ma
dostp aplikacja = 0...5, dodatkowe informacje na stronie 29.
Pc = 0 : zachowanie dotychczasowe tzn. zakoczenie drukowania i zakoczenie trybu transakcyjnego,
= 1 : j.w.,
= 2 : wydrukowanie nagwka nowego paragonu i wczenie 'blokowego' trybu transakcyjnego w
specjalny sposb, tzn. od tego momentu urzdzenie realizuje tylko nastpujce sekwencje:
LBTRSHDR, LBTREXIT (tylko anulowanie paragonu), LBDSP oraz LBFSTRQ,
Py : parametr ignorowany,
Px : rodzaj rabatu = 0 : brak,
1 : rabat procentowy,
2 : narzut procentowy,
3 : rabat kwotowy,
4 : narzut kwotowy,
Pg = 0 : kwota WPATA jest ignorowana (zapata w gotwce nie wystpuje),
= 1 : wystpuje zapata w gotwce,
Pk = 0 : kwota KARTA jest ignorowana,
= 1 : kwota KARTA jest drukowana,
Pz = 0 : kwota CZEK jest ignorowana,
= 1 : kwota CZEK jest drukowana,
Pb = 0 : kwota BON jest ignorowana,
= 1 : kwota BON jest drukowana,
Po1 = 0 : kwota PRZYJCIE jest ignorowana,
= 1 : kwota PRZYJCIE jest drukowana
Po2 = 0 : kwota WYDANIE jest ignorowana,
= 1 : kwota WYDANIE jest drukowana
Pr = 0 : kwota RESZTA jest ignorowana,
= 1 : kwota RESZTA jest drukowana,
oraz:
TOTAL : czna naleno dla klienta, dla kontroli poprzednich transferw (ta warto jest kontrolowana
przez drukark),
RABAT : rabat/narzut kwotowy/procentowy dla caej transakcji, kwota lub stopa jest zadana z
dokadnoci do 0.01 jeeli parametr Px<>0,

www.posnet.com.pl

25

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


WPATA : kwota wpacona przez klienta,
KARTA, CZEK, BON, : kwoty dla odpowiednich form patnoci,
WYDANIE ,PRZYJCIE : kwota kaucji za opakowania zwrotne,
<linia1>...<linia5> : string[40], zawarto linii dodatkowych,(ilo linii musi odpowiada parametrowi Pn,
ale w zwizku ze zmian przepisw, drukowane s tylko trzy linie w stopce paragonu). Iinformacje o
sposobie przesyania nr systemowego i kodu kreskowego w dod. liniach na str. 30.
<nazwa_karty>, <nazwa_czeku>, <nazwa_bonu> : string[16], dodatkowe okrelenia form patnoci,
<kod> : string[3], kod kasy (1 znak) + kod kasjera (2 znaki), pole jest ignorowane, jeeli wczeniej byo
logowanie kasjera (opis sekwencji logowania - str 44),
<check> : bajt kontrolny, jw.
Kody bdw:
= 4 : bd parametru (Pr,Pn lub Ps),
= 5 : bd operacji zwizany z zegarem RTC,
= 6 : bd operacji zwizany z pamici fiskalna,
= 23 : bdna liczba rekordw (linii) paragonu,
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 24 : przepenienie bufora drukarki,
= 25 : bdny kod terminala/ kasjera (za dugo lub format), lub
bdna tre dodatkowych linii,
= 26 : bd jednej z kwot WPATA..RESZTA, pozycja PRZYJCIE lub WYDANIE przesana w
LBTRXEND nie jest zgodna z sum wartoci otrzymanych w sekwencjach LBDEP i LBDEPTAK
(bd dotyczcy pola WYDANIE jest zgaszany tylko w przypadku wykorzystywania w trakcie
transakcji sekwencji [LBDEP-]),
= 27 : bdna suma cakowita TOTAL lub bdna kwota RABAT,
= 28 : przepenienie totalizera,
= 29 : zadanie zakoczenia (pozytywnego) trybu transakcji, w momencie kiedy nie zosta on jeszcze
wczony,
[LBRABAT] : Rabat/narzut w trakcie transakcji
ESC P Px $n <nazwa_rab_narz> CR <warto> / <check> ESC \
Rozkaz ma by wysyany w transakcji, przed rozkazem $b i przed rozkazem $y.
Gdzie:
Px : rodzaj rabatu
= 0: brak, anulacja naoonego rabatu narzutu i wszystkich form patnoci
1: rabat procentowy,
2: narzut procentowy.
3: rabat kwotowy,
4: narzut kwotowy.
Kody bdw:
=1 : bd zegara RTC,
=4 : bd liczby parametrw,
=21 : wyczony tryb transakcji lub obrt samymi kaucjami,
=26 : bd wartoci rabatu,
=82 : poprzednio ju by wysany rabat/narzut.
Uwaga:
1.

Rozkaz wywietla na wywietlaczu klienta w zalenoci od konfiguracji wywietlacza :


nazw rabatu / narzutu
nazw rabatu / narzutu
kwot
kwot do zapaty / zwrotu

www.posnet.com.pl

26

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBGRPRAB] : Rabat/narzut do grupy towarw w danej stawce PTU
ESC P Ps;Px [;Po] $L <total_w_danej_stawce>/<wartosc_rabatu>/[<nazwa_rab_narz>CR]<check>ESC\
Gdzie:
Ps: numer stawki (0-A...6-G)
Px: rodzaj rabatu 1-rabat procentowy, 2-narzut procentowy, 3-rabat kwotowy, 4-narzut kwotowy
Po: nr opisu rabatu - tak jak w sekwencji LBTRSLN (Po=0 brak opisu, Po=16 definiowany przez
uytkownika)
Total_w danej_stawce: warto sprzeday w danej stawce PTU przed rabatem/narzutem
Wartosc_rabatu: warto procentowa lub kwotowa rabatu/narzutu
check: suma kontrolna
Kody bdw:
=1 : bd zegara RTC,
=4 : bd liczby parametrw,
=21 : wyczony tryb transakcji lub obrt samymi kaucjami,
=26 : bd wartoci rabatu,
=82 : poprzednio ju by wysany rabat/narzut.
Sekwencja powoduje wydrukowanie informacji o udzieleniu rabatu/narzutu do grupy towarw w okrelonej stawce
PTU oraz pomniejszenie/powikszenie totalizera w danej stawce. Po tej operacji blokowane jest stornowanie pozycji
paragonu powyej operacji. O stanie totalizerw w poszczeglnych stawkach mona dowiedzie si uywajc
sekwencji [LBFSTRQ] z parametrem 22. Rabat nie moe spowodowa wyzerowania totalizerw.

[LBPODSUM] : Rabat/narzut do paragonu od podsumy


ESC P Px [;Po] $Y <podsuma>/<wartosc_rabatu>/ [<nazwa_rab_narz>CR] <check> ESC\
Sekwencja drukuje napis Podsuma i kwot biec paragonu. Nastpnie typ, nazw oraz kwot operacji oraz w
trzeciej linii warto paragonu total po operacji. Wykonanie rozkazu z rabatem/narzutem powoduje korekcj sumy na
wywietlaczu klienta. O stanie totalizerw w poszczeglnych stawkach mona dowiedzie si uywajc sekwencji
[LBFSTRQ] z parametrem 22. Rabat nie moe spowodowa wyzerowania totalizerw.
Gdzie:
Px: rodzaj rabatu 0 - brak, 1-rabat procentowy, 2-narzut procentowy, 3-rabat kwotowy, 4-narzut kwotowy
Po: nr opisu drukowanego rabatu tak jak w sekwencji LBTRSLN str. 18 (Po=0 brak opisu, Po=16
definiowany przez uytkownika)
podsuma: suma sprzeday bez kaucji przed udzieleniem rabatu/narzutu
wartosc_rabatu: warto procentowa lub kwota rabatu/narzutu
check: suma kontrolna
Kody bdw:
=1 : bd zegara RTC,
=4 : bd liczby parametrw,
=21 : wyczony tryb transakcji lub obrt samymi kaucjami,
=26 : bd wartoci rabatu,
=82 : poprzednio ju by wysany rabat/narzut.
Przykad wydruku z narzutem do paragonu od podsumy i z narzutem do grupy towarw w stawce B

YYYY-MM-DD

NAGWEK
NIP XXX-XXX-XX-XX

DDDDDD

PARAGON FISKALNY
TOWAR 1
TOWAR 2

www.posnet.com.pl

1x30,00 30,00B
1x15,00 15,00B

27

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Podsuma:
Narzut:obsuga
Podsuma:
Narzut:specjany
TOWAR 3

45,00
5,00
50,00
1,00B
1x5,00 5,00A

----------------------------------------------

Sprzed. opodatk. A
Kwota PTU A 22%
Sprzed. opodatk. B
Kwota PTU B 7%
ZNA KWOTA PTU
SUMA
0001 #Kasa: 1
Kasjer:c 2C
PL ABC 12345678
Nr sys.:23a

5,00
0,90
51,00
3,34
4,24
56,00
gg:mm

[LBTRFORMPLAT]: Obsuga form patnoci


ESC P Ps ; Pfx $b <kwota> / <nazwa_form_platn> CR <check> ESC \
Jest to dodatkowa sekwencja majca cisy zwizek z sekwencj [LBTRXEND1], pozwalajca na zadeklarowanie
form patnoci dla danej transakcji powizana z jednoczesn obsug wywietlaczy drukarki.
Gdzie:
Ps : parametr
= 1 : zgoszenie formy patnoci,
= 2 : anulowanie formy patnoci, rodzaj i kwota formy patnoci musz si zgadza z jedn z
poprzednio zgoszonych form patnoci wysanych z parametrem Ps=1,
Pfx : parametr okrelajcy typ formy patnoci wg poniszej zalenoci:
= 0 : GOTWKA,
= 1 : KARTA,
= 2 : CZEK,
= 3 : BON,
= 4 : INNA,
= 5 : KREDYT,
= 6 : kwota FORM_PLAT jest drukowana jako konto klienta,
nazwa_form_platn : string[15],
<kwota> : kwota formy patnoci.
Kwoty form patnoci oraz ich typ wysyane w sekwencji [LBTRFORMPLAT] musz by zgodne z kwotami form
patnoci zadeklarowanych w sekwencji [LBTRXEND1]
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru (Ps lub Pfx),
= 5 : bd operacji z zegarem RTC,
= 6 : bd operacji z pamici fiskalna,
= 19 : bd wartoci KWOTA (syntaktyka, zakres lub brak),
= 22 : bd anulowania (Ps=2) formy patnoci (zadeklarowana kwota anulowania wiksza od
dotychczasowych kwot wysanych z Ps=1),
= 26 : przekroczono liczb maksymalnej iloci form patnoci (5).
Uwagi:
1.
2.

W przypadku uycia sekwencji [LBTRFORMPLAT] transakcj trzeba koczy sekwencj


[LBTRXEND1].
Po wysaniu sekwencji z deklaracj formy patnoci nie jest moliwe dosanie linii towaru, czy deklaracji
opakowania. Jeeli jednak form patnoci bdzie anulowana wysyajc j jeszcze raz z parametrem Ps =
2, to bdzie mona kontynuowa sprzeda i obrt opakowaniami.

www.posnet.com.pl

28

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBTRXEND1] : Zatwierdzenie transakcji z formami patnoci (2)
ESC P Pn ; Pc ; Py ; Pdsp ; Px ; Pkb ; Pkz ; Pns ; Pfn ; Pr ; Pg ; Pfx ; ...; Pxs $y
<nr_kasy> CR <kasjer> CR
<numer_systemowy> CR
<linia1> CR <linia2> CR <linia3> CR
<nazwa_form_plat_1> CR ... do <nazwa_form_plat_Pfn> CR
<numer_kaucji_pobr_1> CR ... do < numer_kaucji_pobr_Pkb> CR
<ilo_kaucji_pobr_1> CR ... do <ilo_kaucji_pobr_Pkb> CR
<numer_kaucji_zwr_1> CR ... do < numer_kaucji_zwr_Pkz> CR
<ilo_kaucji_zwr_1> CR ... do <ilo_kaucji_zwr_Pkz> CR
<opis_rabatu> CR
TOTAL / DSP / RABAT / WPLATA /
FORM_PLAT_1 / ... do FORM_PLAT_Pfn /
RESZTA /
KAUCJA_POBR1 / ... do KAUCJA_POBR_Pkb /
KAUCJA_ZWR1 / ... do KAUCJA_ZWR_Pkz /
<check> ESC \
Gdzie:
Pn : ilo dodatkowych linii umieszczanych w stopce paragonu, za logo fiskalnym, do ktrych ma dostp
aplikacja = 0...3, linie te s drukowane na najbliszym raporcie dobowym, pomidzy raportami dobowymi
moe by wysany jeden zestaw dodatkowych linii, ktry bdzie drukowany, natomiast wszystkie inne zestawy
linii bd ignorowane,
Pc = 0 : zachowanie 'dotychczasowe' tzn. zakoczenie drukowania i zakoczenie trybu transakcyjnego,
= 1 : parametr ignorowany,
= 2 : wydrukowanie nagwka nowego paragonu i wczenie 'blokowego' trybu transakcyjnego w specjalny
sposb, tzn. od tego momentu urzdzenie realizuje tylko nastpujce sekwencje: LBTRSHDR,
LBTREXIT (tylko anulowanie paragonu), LBDSP oraz LBFSTRQ,
= 3 : nowe zachowanie si rozkazu $y
parametry:
- jeli w trakcie transakcji wysyane byy pobrania kaucji,
naley wysa
1 kaucj pobran
nazwa i ilo stringi puste (tj tylko CR)
jako kwot kaucji naley wysa total wysanych w transakcji kaucji pobranych
- jeli w trakcie transakcji wysyane byy zwroty kaucji,
naley wysa
1 kaucj zwrcon
nazwa i ilo stringi puste (tj tylko CR)
jako kwot kaucji naley wysa total wysanych w transakcji kaucji zwrconych
- jeli w trakcie transakcji wysyane byy formy patnoci,
naley wysa kwot WPATA
jako kwot WPATY naley wysa total wysanych w transakcji form patnoci
- jeli w trakcie transakcji wysyany by rabat/narzut,
przysany w $y rabat/narzut musi si zgadza z rabatem/narzutem wysanym
w rozkazie $n
- nie wysya linii linia1, linia2, linia3
- nie wysya form patnoci
po takiej modyfikacji rozkaz $y moe wyglda nastpujco i powinien mie maks dugo poniej 200
bajtw :
ESC P 0; 3 ; 0; Pdsp; Px; 1; 1; Pns ;0; 0; 1; Pxs $y
<nr_kasy> CR <kasjer> CR
<numer_systemowy> CR

www.posnet.com.pl

29

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

CR
CR
CR
CR
<opis_rabatu> CR
TOTAL / DSP / RABAT / WPLATA /
RESZTA /
KAUCJA_POBR /
KAUCJA_ZWR /
<check> ESC \
Py = 1 : jeeli tylko moliwe w jednej grupie to drukuj skrcone podsumowanie,
Pdsp = 1 : kwota DSP ujemna,
Px : rodzaj rabatu
= 0 : brak,
= 1 : rabat procentowy,
= 2 : dopata procentowa,
= 3 : rabat kwotowy,
= 4 : dopata kwotowa,
Pkb = 0 : nie wystpuje blok KAUCJA_POBRANA,
= 1..n : blok KAUCJA_POBRANA jest drukowany i zawiera 1.. linii + tytu,
Pkz = 0: nie wystpuje blok KAUCJA_ZWROCONA,
= 1..n : blok KAUCJA_ZWROCONA jest drukowany i zawiera 1.. + tytu,
Pns = 1 : wystpuje string <numer_systemowy>,
= 0 : string <numer_systemowy> jest ignorowany,
Pfn = 0: nie ma form patnoci, nie wystpuje blok nazw form patnoci,
= 1..n : po parametrze Pfn wystpuj parametry Pfx okrelajce rodzaj formy patnoci, wystpuje blok
Pfn nazwy form patnoci,
Pr = 0 : kwota RESZTA jest ignorowana,
= 1 : kwota RESZTA jest drukowana,
Pg = 0 : kwota WPLATY jest ignorowana (wplata gotwki nie wystpuje),
= 1 : wystpuje wplata gotwki,
Pfx : parametr
= 0 : parametry w dalszej czci sekw. odnoszce si do tej formy patnoci s ignorowane
= 1 : kwota FORM_PLAT jest drukowana, jest to karta patnicza,
= 2 : kwota FORM_PLAT jest drukowana, jest to czek,
= 3 : kwota FORM_PLAT jest drukowana, jest to bon,
= 4 : kwota FORM_PLAT jest drukowana, jest to inna forma patnoci,
= 5 : kwota FORM_PLAT jest drukowana , jest to kredyt,
Psx = 0 nie wystpuje pole opis rabatu, Psx>0 wystpuje pole opis rabatu
oraz:
<nr_kasy> : string[8], nazwa kasy, max 8 dowolnych znakw,
<kasjer> : string[17], nazwa kasjera, max 17 dowolnych znakw,
<linia1>, <linia2>, <linia3> : string[40], zawarto linii dodatkowych. Istnieje moliwo przesania numeru
systemowego za pomoc dodatkowych linii w stopce paragonu . Jeeli Pns=0 i parametr napisowy w linii 1
zaczyna si od #, to jest on traktowany jako nr systemowy. Jeeli po pierwszym znaku # zostanie wykryty
cig znakw #XXXX...XXX# gdzie X jest znakiem alfanumerycznym, cig ten nie jest drukowany w linii,
lecz pod spodem w postaci kodu kreskowego. Dugo przesyanego w ten sposb stringu wynosi od 3 do
maksymalnie 15 liter, znakw specjalnych lub 30 cyfr (liczba cyfr nie moe by =29). W przypadku uywania
kombinacji obu typw znakw, maksymalna ilo cyfr i liter okrelona jest w specyfikacji kodu EAN 128.
Pozostae linie drukowane s jako dodatkowe linie w stopce paragonu. W sekwencji $x w przypadku
zdeklarowania linii 1 jako nr sys. w stopce wydrukuje si rwnie linia 4, o ile zostaa przesana.
<opis_rabatu> : srting[16] umoliwiam wydrukowanie nazwy rabatu/narzutu.
<numer_systemowy> : string[30] numer systemowy transakcji. Moe zawiera: do 10 znakw
alfabetycznych. Znaki specjalne `~#$@%^&*()_-+=[{]}\|;:' ",<.>/?! i cyfry s drukowane bez ogranicze
<nazwa_form_plat_> : string[16], dodatkowe okrelenia form patnoci,
<numer_kaucji_pobr_>, <numer_kaucji_zwr_> : string[4], numer opakowania kaucjonowanego,
TOTAL : czna naleno dla klienta, dla kontroli poprzednich transferw - ta warto jest kontrolowana
przez drukark. Kwota TOTAL jest suma wszystkich linii paragonu, skorygowanych o kwot lub warto

www.posnet.com.pl

30

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


rabatu / narzutu (warto / kwota rabatu / narzutu zadeklarowana w zakoczeniu nie ma wpywu na adna z
wartoci przesyanych w tej sekwencji i zostanie wyliczona przez drukark - podobnie jest w sekwencji linii
paragonu).
DSP : stan wywietlacza klienta. Kwota DSP jest wynikiem nastpujcego dziaania:
DSP = TOTAL + KAUCJE - FORMY PLATNOSCI.
Kwota DSP jest zawsze przesyana jako warto dodatnia. W przypadku kiedy jest wartoci ujemna, naley
parametr Pdsp ustawi na 1, a warto DSP wysa jako warto bezwzgldn.
RABAT : rabat kwotowy lub procentowy dla caej transakcji, kwota lub stopa jest zadana z dokadnoci do
0.01 jeeli parametr Px<>0,
WPLATA : wpata w gotwce,
FORM_PLAT_1,...,FORM_PLAT_Pfn : kwoty dla odpowiednich form patnoci (obecne w przypadku gdy
Pfn <> 0),
RESZTA : wypata w gotwce. Pole RESZTA bdzie si rwnao DSP w przypadku, gdy warto DSP jest
ujemna, jednak pole to zawsze moe by automatycznie wyliczone przez drukark (Pr=0) i nie jest wymagana
jego obsuga, chyba ze w celach kontrolnych.
KAUCJA_POBR1 ... KAUCJA_POBR_Pkb : kwota kaucji za opakowania zwrotne pobrane przez klienta
(obecne w przypadku gdy Pkb <> 0),
KAUCJA_ZWR1..KAUCJA_ZWR_Pkz : kwota kaucji za opakowania zwrotne zwrcone przez klienta
(obecne w przypadku gdy Pkz <> 0),
<check> : bajt kontrolny, j.w.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
=4 : bd parametru(wystpuje zwykle w przypadku niezgodnoci liczby parametrw napisowych lub
numerycznych z zadeklarowan ich iloci w parametrach bajtowych) ,
= 5 : bd operacji zwizany z zegarem RTC,
= 6 : bd operacji zwizany z pamici fiskaln,
= 23 : bdna liczba rekordw (linii) paragonu,
= 24 : przepenienie bufora drukarki,
= 25 : bdny kod terminala / kasjera (za dugo lub format), lub bdna tre dodatkowych linii,
= 26 : bd jednej z kwot GOTOWKA..RESZTA,
= 27 : bdna suma cakowita TOTAL lub bdna kwota RABAT,
= 28 : przepenienie totalizera,
= 29 : zadanie zakoczenia (pozytywnego) trybu transakcji, w momencie kiedy nie zosta on jeszcze wczony,
Uwagi:
1. Kaucje pobrane, kaucje zwrcone, formy patnoci mona uywa dwoma sposobami:
W powizaniu z sekwencjami obsugi opakowa, form patnoci wysyanymi w trakcie realizowania
transakcji, dziki czemu wartoci i teksty na wywietlaczu zmieniaj si na bieco, wraz z
rzeczywistym obrotem opakowaniami, czy finalizowaniem transakcji za pomoc ronych form patnoci.
Wartoci powinny si zgadza z wartociami przekazanymi w sekwencji zakoczenia paragonu.
Kaucje pobrane, zwrcone, formy patnoci deklarowane s jedynie w sekwencji zakoczenia paragonu.
Zastosowanie sekwencji obsugi opakowa, lub form patnoci podczas transakcji wymaga konsekwentnego
zadeklarowania wysanych wczeniej opakowa lub form patnoci w sekwencji zakoczenia. Przykadowo,
wysanie sekwencji pobrania opakowania wymaga umieszczenia tej informacji w sekwencji zakoczenia ale
rwnoczenie zezwala na dowolne deklarowanie kolejnych pobranych opakowa tylko w zakoczeniu i nie
przeszkadza w tej samej transakcji zadeklarowania opakowa zwrotnych i form patnoci tylko w
zakoczeniu transakcji.
Innymi sowy, nie musimy si decydowa, czy opakowania lub formy patnoci bdziemy wysya w trakcie
transakcji i potwierdza je w zakoczeniu, czy informacje o nich umiecimy tylko w zakoczeniu.
2. Moliwe jest wysyanie w sekwencjach i deklarowanie w zakoczeniu transakcji LBTRXEND1 kaucji
pobranych, zwrconych, form patnoci z kwota 0. Dziki temu skasowane (storno) opakowanie lub forma
patnoci nie musi by usuwane z sekwencji zakoczenia, ale moe w niej zosta z zerow kwot. Moe to
by w wielu przypadkach istotnym uatwieniem.
4
5

www.posnet.com.pl

31

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


6

3. Nastpujce pola :
linie1..3,
nazwy form patnoci,
numery kaucji pobranych,
iloci kaucji pobranych,
numery kaucji zwrconych,
iloci kaucji zwrconych,
kwoty form patnoci,
kwoty kaucji pobranych,
kwoty kaucji zwrconych,
nie mog wystpi w sekwencji (nie mog take wystpi ich terminatory) jeeli odpowiadajcy im
parametr bajtowy ma warto zero.
Pozostae pola :
numer systemowy,
rabat,
wpata,
reszta,
musz wystpi, nawet jeli odpowiadajcy im parametr bajtowy wynosi 0. Wartoci zawarte w tych polach
zostan przez drukark zignorowane.

www.posnet.com.pl

32

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Format wydruku (przykad z formami patnoci i obsug opakowa)

YYYY-MM-DD

NAGWEK
NIP XXX-XXX-XX-XX

DDDDDD
NIEFISKALNY
TOWAR O DUGIEJ NAZWIE
1,000 x 1,00
1,- A
TOWAR1
1,000 x 1,00
1,- B
TOWAR2
1,000 x 1,00
1,- C
TOWAR3
1,000 x 1,00
1,- G
---------------------------------------SPRZEDA OP. A
0,95
PTU A 22 %
0,17
SPRZEDA OP. B
0,95
PTU B 7 %
0,06
SPRZEDA OP. C
0,95
PTU C 5 %
0,05
SUMA PTU
0,28
SPRZEDA ZW. G
0,95
---------------------------------------RAZEM:
4,00
RABAT:
05 %
SUMA
3,80
0002
#1 WD
14:34

YYYY-MM-DD

NAGWEK
NIP XXX-XXX-XX-XX

DDDDDD
PARAGON FISKALNY
TOWAR O DUGIEJ NAZWIE
1,000 x 1,00
1,- A
TOWAR1
1,000 x 1,00
1,- B
TOWAR2
1,000 x 1,00
1,- C
TOWAR3
1,000 x 1,00
1,- G
---------------------------------------SPRZEDA OP. A
0,95
PTU A 22 %
0,17
SPRZEDA OP. B
0,95
PTU B 7 %
0,06
SPRZEDA OP. C
0,95
PTU C 5 %
0,05
SUMA PTU
0,28
SPRZEDA ZW. G
0,95
---------------------------------------RAZEM:
4,00
RABAT:
05 %
SUMA
3,80
0002
#1 WD
14:34

NIEFISKALNY
00123456

PL ABC 00123456

NIEFISKALNY
Rozliczenie opakowa zwrotnych
Przyjcia opakowa
Opakowanie zwr.1
ilo x CENA
warto
...
Opakowanie zwr.5
ilo x CENA
warto
Zwroty opakowa
Opakowanie zwr.1
ilo x CENA
-warto
...
Opakowanie zwr.5
ilo x CENA
-warto
[Do zapaty:
kwota]
[DO ZWROTU:
kwota]
[GOTWKA:
kwota]
[KARTA <nazwa_karty>
kwota]
[BON <nazwa_bonu>
kwota]
[CZEK <nazwa_czeku>
kwota]
[INNA <nazwa_innej>
kwota]
[KREDYT <nazwa_kredytu>
kwota]
[WPATA:
kwota]
[RESZTA:
kwota]
[NUMER SYSTEMOWY: <nr systemowy>]
[LINIA 1]
[LINIA 2]
[LINIA 3]

NIEFISKALNY
Rozliczenie opakowa zwrotnych
Przyjcia opakowa
Opakowanie zwr.1
ilo x CENA
warto
...
Opakowanie zwr.5
ilo x CENA
warto
Zwroty opakowa
Opakowanie zwr.1
ilo x CENA
-warto
...
Opakowanie zwr.5
ilo x CENA
-warto
[Do zapaty:]
[kwota]
[DO ZWROTU:]
[kwota]
[GOTWKA:]
[kwota]
[KARTA <nazwa_karty>]
[kwota]
[BON <nazwa_bonu>]
[kwota]
[CZEK <nazwa_czeku>]
[kwota]
[INNA <nazwa_innej>]
[kwota]
[KREDYT <nazwa_kredytu>]
[kwota]
[WPATA:]
[kwota]
[RESZTA:]
[kwota]
[NUMER SYSTEMOWY: <nr systemowy>]
[LINIA 1]
[LINIA 2]
[LINIA 3]

www.posnet.com.pl

33

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


3.6 Rozkaz $z - dodatkowe linie na paragonie po logo fiskalnym
Linie zwrotw opakowa
ESC P 4 $z [<nazwa opakowania zwrconego> CR <ilo>] CR
KWOTA_ZA_OPAKOWANIE_ZWRCONE/ <check> ESC \
Gdzie:
<nazwa opakowania zwrconego> - numer opakowania (liczba z zakresu 0...65535)
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
=4 : bd parametru
=82: niedozwolony rozkaz w transakcji z $z
=83: nie zgadza si wysoko kwoty za opakowanie
Uwaga:
1.
2.
3.

Drukowana jest linia :


zwrot opakowania <nazwa opakowania zwrconego> KWOTA_ZA_OPAKOWANIE
Rozkaz wielokrotnie powtarzany.
Kwota musi si zgodzi z kwot dosanych w transakcji opakowa; w przypadku prby przekroczenia
kwoty zostanie zgoszony bd w przypadku niedomiaru kwoty zostanie dodrukowana lina :
opakowanie zwr.
1xpozostaa kwota
pozostaa kwota

Linie przyj opakowa


ESC P 8 $z [<nazwa opakowania przyjtego> CR <ilo>] CR
<check> ESC \

KWOTA_ZA_OPAKOWANIE_PRZYJTE/

Gdzie:
<nazwa opakowania przyjtego> - numer opakowania (liczba z zakresu 0...65535)
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
=4 : bd parametru
=82: niedozwolony rozkaz w transakcji z $z
=83: nie zgadza si wysoko kwoty za opakowanie
Uwaga:
1.
2.
3.

Drukowana jest linia :


przyjcie opakowania <nazwa opakowania przyjtego> KWOTA_ZA_OPAKOWANIE
Rozkaz wielokrotnie powtarzany.
Kwota musi si zgodzi z kwot dosanych w transakcji opakowa; w przypadku prby przekroczenia
kwoty zostanie zgoszony bd w przypadku niedomiaru kwoty zostanie dodrukowana lina :
opakowanie zwr.
1xpozostaa kwota
- pozostaa kwota

Rozliczenie form patnoci


ESC P 12 $z <check> ESC \
Drukowane s formy patnoci z danych zgromadzonych podczas transakcji, jak rwnie kwota reszty .

www.posnet.com.pl

34

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

Linia dodatkowych stopek paragonu


ESC P 20; Psx $z <tekst> CR <check> ESC \
Gdzie:
Psx 0 - Nr transakcji
numeryczny
1 - Punkty
numeryczny
2 - Suma punktw
numeryczny
3 - Nr rejestracyjny
numeryczny
4 - Nazwisko
literowy
5 - Karta
literowy
6 - Numer karty
numeryczny
7 - Wana do
numeryczny
8 - Kasjer
numeryczny
9 - Nazw. kasjera
literowy
10 - Zaliczka
numeryczny
11 - Waluta
literowy
12 - Przelicznik
numeryczny
13 - Nr zamwienia
numeryczny
14 - Nr pracownika
numeryczny
15 - Nazw. pracownika literowy
<tekst> -- tekst przesyany z aplikacji string[25].
Uwagi: Na jednym paragonie mona wydrukowa tylko 10 dodatkowych linii.
Parametry numeryczne mog zawiera max. 3 litery (nadmiarowe zostaj zamieniane na spacje)
Parametry literowe mog zawiera max. 3 cyfry (nadmiarowe zostaj zamieniane na spacje)
Linie informacyjne - definicja
ESC P 24; Pn $z <linia 1> CR ... <linia Pn> CR <check> ESC \
Uwagi:
1.
2.
3.

Drukuje linie informacyjne typu Zapraszamy do naszych sklepw.


W drukarce Thermal 1.02 moliwy jest tylko 1 tekst informacyjny w trakcie pomidzy raportami
dobowymi.
Zdefiniowane tu linie informacyjne s drukowane po odebraniu rozkazu 28; Pc $z.

Koniec wydruku
ESC P 28; Pc $z <check> ESC \
Gdzie:
Pc : rodzaj zakoczenia (jak w $e)
= 0: zachowanie 'dotychczasowe' tzn. zakoczenie drukowania i zakoczenie trybu transakcyjnego,
= 1 : j.w.,
= 2 : wydrukowanie nagwka nowego paragonu i wczenie 'blokowego' trybu transakcyjnego w specjalny
sposb, tzn. od tego momentu urzdzenie realizuje tylko nastpujce sekwencje: LBTRSHDR,
LBTREXIT (tylko anulowanie paragonu), LBDSP oraz LBFSTRQ,
Uwagi:
1.
2.

Po rozkazie $y mona od razu wysa rozkaz 28;Pc $z , ktry spowoduje dodatkowo wydrukowanie
brakujcych elementw czyli kaucje i/lub formy patnoci.
Kwota wysyanych kaucji w 4$z i 8$z nie moe przekroczy kwot wysanych podczas transakcji, ale
moe by mniejsza.

www.posnet.com.pl

35

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


3.7 Drukowanie raportw / kontrola bazy danych
[LBCSHREP1]: Raport kasy / zmiany uwzgldniajcy formy patnoci
ESC P Pk;Pc;Pb #f <zmiana> CR <kasjer> CR <nazwa_karty1> CR ..<nazwa_karty8> CR
<nazwa_czeku1> CR..<nazwa_czeku4> CR
<nazwa_bonu1> CR..<nazwa_bonu4> CR
<poczatek> CR <koniec > CR
PRZYCHOD /
SPRZED_GOTOWKA / KARTA1 / .. / KARTA8 / CZEK1 /..../ CZEK4 / BON1 /.. ../ BON4 / WPLATY /
PRZYJCIA/
WYPLATY / WYDANIA / STAN_KASY /
<il_parag> CR <il_anul> CR <il_storno> CR [<nr_kasy> CR] <check> ESC \
Gdzie:
Pk : ilo ronych kart kredytowych = 0..8,
Pc : ilo ronych czekw = 0..4,
Pb : ilo ronych bonw = 0..4,
<zmiana> : string[8], zawierajcy dowolne znaki drukowalne, odpowiadajcy numerycznemu lub
alfanumerycznemu oznaczeniu zmiany,
<kasjer> : string[32], jw., napis zarezerwowany na nazwisko i imi kasjera,
<nazwa_karty1>...<nazwa_karty8>, <nazwa_czeku1>...<nazwa_czeku4>,
<nazwa_bonu1>...<nazwa_bonu4> : string[16], parametry napisowe przesane przez aplikacje
okrelajce poszczeglne formy patnoci,
<poczatek>,<koniec> : string[15], parametry NAPISOWE okrelajce pocztek i koniec zmiany,
zwykle w formacie rr-mm-dd gg:mm
PRZYCHOD : kwota, czna sprzeda w trakcie zmiany,
SPRZED_GOTOWKA : kwota, warto sprzeday gotwkowej,
KARTA1..KARTA8 : kwota, warto sprzeday dla poszczeglnych kart patnoci,
CZEK1..CZEK4 : kwota, wart. sprzed. dla rnych rodzajw czekw,
BON1..BON4 : kwota, wart. sprzed. dla rnych rodzajw bonw,
WPLATY : kwota, suma wpat do kasy w trakcie zmiany,
PRZYJCIA : kwota, suma kaucji pobranej w trakcie zmiany,
WYPLATY : kwota, suma wypat z kasy w trakcie zmiany,
WYDANIA : kwota, suma kaucji zwrconej w trakcie zmiany,
STAN_KASY : kwota, ilo gotwki w kasie po zakoczeniu zmiany,
<il_parag> : num[5], ilo paragonw wydruk. podczas zmiany,
<il_anul> : num[5], ilo anulowanych paragonw,
<il_storno> : num[5], ilo stornowanych pozycji,
<nr_kasy> : string[8] (opcjonalny), numer kasy.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametrw,
= 5 : bd odczytu zegara RTC,
= 33 : bd napisu <zmiana> lub <kasjer>,
= 34 : bd jednej z kwot lub pozostaych napisw.
Uwagi:
1. Informacje przesyane za pomoc tej sekwencji nie s w aden sposb kontrolowane przez drukark.

www.posnet.com.pl

36

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Format wydruku raportu zmianowego z aplikacji

YYYY-MM-DD

NAGWEK
NIP XXX-XXX-XX-XX

DDDDDD
NIEFISKALNY
RAPORT ZMANOWY
ZMIANA: <zmiana>
KASJER: <kasjer>
PRZYCHODY:
<PRZYCHOD>
SPRZEDA GOTWKOWA:
<SPRZED_GOTOWKA>
KARTA <nazwa_karty1>
<KARTA1>
KARTA <nazwa_karty2>
<KARTA2>
KARTA <nazwa_karty3>
<KARTA3>
KARTA <nazwa_karty4>
<KARTA4>
KARTA <nazwa_karty5>
<KARTA5>
KARTA <nazwa_karty6>
<KARTA6>
KARTA <nazwa_karty7>
<KARTA7>
KARTA <nazwa_karty8>
<KARTA8>
CZEK
<CZEK1>
<nazwa_czeku1>
CZEK
<CZEK2>
<nazwa_czeku2>
CZEK
<CZEK3>
<nazwa_czeku3>
CZEK
<CZEK4>
<nazwa_czeku4>
BON
<BON1>
<nazwa_bonu1>
BON
<BON2>
<nazwa_bonu2>
BON
<BON3>
<nazwa_bonu3>
BON
<BON4>
<nazwa_bonu4>
WPATY DO KASY:
<WPLATY>
PRZYJCIA:
<PRZYJCIA>
WYPATY Z KASY:
<WYPLATY>
WYDANIA:
<WYDANIA>
STAN KASY:
<STAN_KASY>
ILO PARAGONW FISKALNYCH:
<il_parag>
ILO PARAGONW ANULOWANYCH:
<il_anul>
ILO STORNOWANYCH POZYCJI:
<il_storno>
POCZTEK ZMIANY:
<poczatek>
KONIEC ZMIANY:
<koniec>
NIEFISKALNY
[#<nr_kasy>] <kasjer>
HH:MM
00123456

www.posnet.com.pl

37

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBCSHREP2] : Raport zmianowy/ kasy z formami patnoci (2)
ESC P Pkb; Pkz; Pfn; Pg; [Pfx; ...] #m
<zmiana> CR <nr_kasy> CR <kasjer> CR
<poczatek> CR <koniec> CR
<nazwa_form_plat_1> CR ... do <nazwa_form_plat_Pfn> CR
<nazwa_kaucji_pobr_1> CR ... do <nazwa_kaucji_pobr_Pkb> CR
<nazwa_kaucji_zwr_1> CR ... do <nazwa_kaucji_zwr_Pkz> CR
PRZYCHOD / GOTOWKA / WPLATY /
ROZCHOD/ WYPLATY /
FORM_PLAT_1 / ... do FORM_PLAT_Pfn /
KAUCJA_POBRANA/
KAUCJA_POBR1 / ... do KAUCJA_POBR_Pkb /
KAUCJA_ZWRCONA/
KAUCJA_ZWR1 / ... do KAUCJA_ZWR_Pkz /
STAN_KASY /
<il_parag> CR <il_anul> CR <il_storno> CR
<check> ESC \
Gdzie:
Pkb = 0: nie wystpuje blok KAUCJA_POBRANA,
= 1..n : blok KAUCJA_POBRANA jest drukowany i zawiera 1.. linii + tytu,
Pkz = 0: nie wystpuje blok KAUCJA_ZWROCONA
= 1..n : blok KAUCJA_ZWROCONA jest drukowany i zawiera 1..linii + tytu,
Pg = 0: kwota GOTOWKA jest ignorowana,
= 1: wystpuje zapata w gotwce,
Pfn = 0 : nie ma form patnoci, nie wystpuje blok nazw form patnoci,
= 1...n : po parametrze Pfn wystpuje parametry Pfx okrelajce rodzaj formy patnoci, wystpuje blok
Pfn nazw form patnoci,
Pfx = 1 : kwota FORM_PLAT jest drukowana, jest to karta patnicza,
= 2 : kwota FORM_PLAT jest drukowana, jest to czek,
= 3 : kwota FORM_PLAT jest drukowana, jest to bon,
= 4 : kwota FORM_PLAT jest drukowana, jest to inna forma patnoci,
= 5 : kwota FORM_PLAT jest drukowana, jest to kredyt;
<zmiana> : string[8], zawierajcy dowolne znaki drukowalne, odpowiadajcy numerycznemu lub
alfanumerycznemu oznaczeniu zmiany,
<nr_kasy> : string[8], numer kasy,
<kasjer> : string[32], jw., napis zarezerwowany na nazwisko i imi kasjera,
<poczatek>, <koniec> : string[15], parametry NAPISOWE okrelajce pocztek i koniec zmiany, zwykle w
formacie 'rr-mm-dd gg:mm',
PRZYCHOD : kwota czna sprzeday w trakcie zmiany,
GOTOWKA : kwota, warto sprzeday gotwkowej,
FORM_PLAT_1...FORM_PLAT_Pfn : kwoty w poszczeglnych formach patnoci,
KAUCJA_ZWRCONA : zakumulowana kwota za zwrot kaucji za opakowania zwrotne,
KAUCJA_ZWR1..KAUCJA_ZWR5 : kwoty zwrcone za konkretne opakowania,
KAUCJA_POBRANA : zakumulowana kwota pobrana kaucji za opakowania zwrotne,
KAUCJA_POBR1 ... KAUCJA_POBR_Pkb : kwoty pobrane za konkretne opakowania,
<nazwa_kaucji_pobr1>...<nazwa_kaucji_zwr5> : string[24],
<nazwa_kaucji_zwr1>...<nazwa_kaucji_zwr5> : string[24],
WPLATY : kwota, suma wpat do kasy w trakcie zmiany,
ROZCHD : gotwka wydawana podczas transakcji,
WYPLATY : kwota, suma wypat z kasy w trakcie zmiany,
STAN_KASY : kwota, ilo gotwki w kasie po zakoczeniu zmiany,
<il_parag> : num[5], ilo paragonw wydruk. podczas zmiany,
<il_anul> : num[5], ilo anulowanych paragonw,
<il_storno> : num[5], ilo stornowanych pozycji.

www.posnet.com.pl

38

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametrw (Pkr..Pkb),
= 5 : bd odczytu zegara RTC,
= 33 : bd napisu <zmiana> lub <kasjer>,
= 34 : bd jednej z kwot lub pozostaych napisw.
Uwagi:
1. czna dugo wszystkich przesanych stringw (do kadego trzeba doliczy 1 bajt koczcy) ma by
300.
2. czna liczba wszystkich stringw ma by 30.
3. czna liczba wszystkich kwot i iloci ma by 30.
4. W przypadku, gdy brak jest jednego lub wicej parametrw zakadamy warto domyln = 0.
5. Maksymalna warto parametrw Pkz, Pkb i Pfn ma cisy zwizek z ograniczeniami podanymi w pkt.
1-3. Musi by speniony warunek:
Pkz + Pkb + Pfn) 22 (w sekwencji wystpuje 8 staych stringw).
6. W przypadku koniecznoci uzyskania obszernych raportw mona je podzieli na raporty czstkowe
zawierajce tylko informacje dotyczce:
- tylko form patnoci (wtedy Pkb=0 i Pkz=0) max 22 pozycje,
- tylko obsugi opakowa kaucjonowanych sprzedanych (wtedy Pfn=0 i Pkz=0) max 22 pozycje,
- tylko obsugi opakowa kaucjonowanych zwrconych (wtedy Pfn=0 i Pkb=0) max 22 pozycje.
7. Informacje przesyane za pomoc tej sekwencji nie s w aden sposb kontrolowane przez drukark.
Format wydruku raportu zmianowego z aplikacji (2)
NAGWEK
NIP XXX-XXX-XX-XX
YYYY-MM-DD

DDDDDD
NIEFISKALNY
RAPORT ZMANOWY
ZMIANA: <zmiana>
KASA:
<nr_kasy>
KASJER: <kasjer>
----------------------------------------<PRZYCHOD>
PRZYCHODY:
<GOTOWKA>
SPRZEDA GOTWKOWA:
<WPLATY>
WPATY DO KASY:
<FORM_PLAT_1>
<nazwa_form_plat_1>
...
<FORM_PLAT_1>
<nazwa_form_plat_Pfn>
<KAUCJA_POBRANA>
KAUCJA POBRANA:
<KAUCJA_POBR1>
<nazwa_kaucji_pobr_1>
...
<KAUCJA_POBR_Pkb>
<nazwa_kaucji_pobr_Pkb>
----------------------------------------<ROZCHOD>
ROZCHODY:
<WYPLATY>
WYPATY Z KASY:
<KAUCJA_ZWRCONA>
KAUCJA ZWRCONA:
<KAUCJA_ZWR1>
<nazwa_kaucji_zwr_1>
...
<KAUCJA_zwr_Pkz>
<nazwa_kaucji_zwr_Pkz>
<STAN_KASY>
STAN KASY:
----------------------------------------<il_parag>
ILO PARAGONW:
<il_anul>
ILO ANULACJI:
<il_storno>
ILO STORNO:
POCZTEK ZMIANY:
<poczatek>
KONIEC ZMIANY:
<koniec>
NIEFISKALNY
#<Nr_kasy> <kasjer>
HH:MM
00123456

www.posnet.com.pl

39

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBTRSCARD] : Pokwitowanie sprzeday
ESC P Ps;Pn #g <numer_kasy> CR <numer_kasjera> CR <numer_par> CR<kontrahent> CR <terminal> CR
<nazwa_karty> CR <numer_karty> CR <data_m> CR <data_r> CR <kod_autoryz> CR <kwota> / <check>
ESC \
Gdzie:
Ps = 0 : linia zawierajca numer kasy / numer kasjera jest drukowana,
Ps = 1 : linia jw. nie jest drukowana,
Pn : wybiera opcje drukowania dokumentu
Pn = 0 : drukuj 2 kopie, miedzy jedn a drug trzeba nacisn klawisz,
Pn = 1 : drukuj 2 kopie jedna po drugiej (uyteczne w wersji z obcinaczem nie docinajcym),
Pn = 2 : drukuj jedn kopie,
<numer_kasy> : string[2],
<numer_kasjera> : string[5],
<numer_par> : num[12],
<kontrahent> : string[15],
<terminal> : num[8],
<nazwa_karty> : string[16],
<numer_karty> : num[20],
<data_m> : num[2],
<data_r> : num[2],
<kod_autoryz> : string[9],
oraz:
<kwota> : warto transakcji w formacie jak dla wszystkich innych kwot,
<check> : bajt kontrolny.
Uwagi:
1.
2.
3.
4.

Wprowadzamy tu nowy typ parametru: num[n] oznaczajcy n- znakowy cig cyfr i/lub ew. spacji.
Tak jak w innych sekwencjach sterujcych parametry typu string mog zawiera dowolne znaki
drukowalne.
Jeeli parametr Pn = 0 lub 1, to na pierwszym dokumencie drukowany jest, opis Orygina dla sprzedawcy
a na drugim opis Kopia dla kupujcego. Opis jest drukowany bezporednio przed kocowym napisem
niefiskalny.
Informacje przesyane za pomoc tej sekwencji nie s w aden sposb kontrolowane przez drukark.

Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 4 : bd parametru Ps,
= 2 : bd bajtu kontrolnego,
= 5 : bd odczytu zegara RTC,
(pozostae kody bdw)
= 41 : bd napisu <numer_kasy> (za dugi lub zawierajcy bdne znaki),
= 42 : bd napisu <numer_kasjera>,
= 43 : bd napisu <numer_par>,
= 44 : bd napisu <kontrahent>,
= 45 : bd napisu <terminal>,
= 46 : bd napisu <nazwa_karty>,
= 47 : bd napisu <numer_karty>,
= 48 : bd napisu <data_m>,
= 49 : bd napisu <data_r>,
= 50 : bd napisu <kod_autoryz>,
= 51 : bd wartoci <kwota>.

www.posnet.com.pl

40

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Format wydruku (pokwitowanie sprzeday)
NAGWEK
NIP XXX-XXX-XX-XX
YYYY-MM-DD WW

DDDDDD
NIEFISKALNY
KASA:
<nr_kasy>
KASJER: <nr_kasjera>
NUMER DOWODY SPRZEDAY:
<numer_par>
TID: <terminal>
UID: <kontrahent>
NUMER DOWODU SPRZEDAY:
KARTA: <nazwa_karty>
<numer_karty> WANA DO:
<data_r>/<d_m>
NUMER AUTORYZACJI:
<kod_autoryz>
SPRZEDA:

PLN

<kwota>

PROSZ OBCIY MOJE KONTO


..........................
Podpis posiadacza karty
ORYGINA DLA SPRZEDAWCY
NIEFISKALNY
#numer_kasy <numer_kasjera>

HH:MM

00123456

[LBSTOCARD]: Transakcja uznania (zwrot towaru)


ESC P Ps;Pn #h <numer_kasy> CR <numer_kasjera> CR <numer_par> CR <kontrahent> CR <terminal> CR
<nazwa_karty> CR <numer_karty> CR <data_m> CR <data_r> CR <kod_autoryz> CR <kwota> / <check>
ESC \
Gdzie:
Ps = 0: linia zawierajca numer kasy / numer kasjera jest drukowana,
= 1: linia jw. nie jest drukowana,
Pn : wybiera opcje drukowania dokumentu
= 0 : drukuj 2 kopie, miedzy jedn a drug trzeba nacisn klawisz,
= 1 : drukuj 2 kopie jedna po drugiej (uyteczne w wersji z obcinaczem nie docinajcym),
= 2 : drukuj jedn kopi,
<numer_kasy> : string[2],
<numer_kasjera> : string[5],
<numer_par> : num[12],
<kontrahent> : string[15],
<terminal> : num[8],
<nazwa_karty> : string[16],
<numer_karty> : num[20],
<data_m> : num[2],
<data_r> : num[2],
<kod_autoryz> : string[9],
oraz:
<kwota> : warto transakcji (zwrotu) w formacie jak dla wszystkich innych kwot,
<check> : bajt kontrolny.
Uwagi:
1. Informacje przesyane za pomoc tej sekwencji nie s w aden sposb kontrolowane przez drukark.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 4 : bd parametru,
= 2 : bd bajtu kontrolnego,
= 5 : bd odczytu zegara RTC,
(pozostae kody bdw)

www.posnet.com.pl

41

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


= 41: bd napisu <numer_kasy> (za dugi lub zawierajcy bdne znaki),
= 42: bd napisu <numer_kasjera>,
= 43: bd napisu <numer_par>,
= 44: bd napisu <kontrahent>,
= 45: bd napisu <terminal>,
= 46: bd napisu <nazwa_karty>,
= 47: bd napisu <numer_karty>,
= 48: bd napisu <data_m>,
= 49: bd napisu <data_r>,
= 50: bd napisu <kod_autoryz>,
= 51: bd wartoci <kwota>.
Uwagi:
1.

Tak jak w innych sekwencjach sterujcych parametry typu string mog zawiera dowolne znaki
drukowalne.
2. Jeeli parametr Pn = 0 lub 1, to na pierwszym dokumencie drukowany jest, opis Orygina dla sprzedawcy
a na drugim opis Kopia dla kupujcego. Opis jest drukowany bezporednio przed kocowym napisem
niefiskalny.

Format wydruku (transakcja uznania)

YYYY-MM-DD WW

NAGWEK
NIP XXX-XXX-XX-XX

DDDDDD
NIEFISKALNY
KASA:
<nr_kasy>
KASJER:
<nr_kasjera>
NUMER DOWODY SPRZEDAY:
<numer_par>
TID: <terminal>
UID: <kontrahent>
NUMER DOWODU SPRZEDAY:
KARTA: <nazwa_karty>
<numer_karty> WANA DO:
<data_r>/<d_m>
NUMER AUTORYZACJI:
<kod_autoryz>
UZNANIE:

PLN

<kwota>

PROSZ OBCIY MOJE KONTO


..........................
Podpis posiadacza karty
ORYGINA DLA SPRZEDAWCY
NIEFISKALNY
#numer_kasy <numer_kasjera>
00123456

HH:MM

[LBSTOCSH]: Zwrot towaru


ESC P Ps #z WYPLATA / [ <nr_kasy> CR <kasjer> CR ] <check> ESC \
drukowanie niefiskalnego paragonu 'Zwrot towaru' i pomniejszenie stanu kasy.
Gdzie:
Ps : parametr ignorowany
WYPLATA : kwota wypacona z kasy (warto towaru),
<nr_kasy> : (opcjonalny) nazwa kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<kasjer> : (opcjonalny) nazwa kasjera, wydrukowanych zostanie max. 9 dowolnych znakw,
<check> : bajt kontrolny.
Kod bdu:
= 1 nie zainicjalizowany zegar RTC,
= 2 bd bajtu kontrolnego,
= 4 bd parametru Ps,

www.posnet.com.pl

42

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


= 30 bd kwoty WYPLATA (syntaktyka),
= 32 warto po odjciu staje si ujemna (przyjmuje si wwczas stan zerowy kasy !)
[LBINCCSH]: Wpata do kasy
ESC P Ps #i WPATA / [<nr_kasy> CR <kasjer> CR] <check> ESC \
Zwikszenie stanu kasy i drukowanie niefiskalnego paragonu wpaty.
Gdzie:
Ps : parametr ignorowany,
WPATA : kwota wpacona do kasy,
<nr_kasy> : (opcjonalny) nazwa kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<kasjer> : (opcjonalny) nazwa kasjera, wydrukowanych zostanie max. 9 dowolnych znakw,
<check> : bajt kontrolny.
Kod bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 30 : bd kwoty WPATA (syntaktyka),
= 31 : nadmiar dodawania (przekroczenie zakresu gotwki w kasie).
[LBDECCSH]: Wypata z kasy
ESC P Ps #d WYPATA / [<nr_kasy> CR <kasjer> CR ] <check> ESC \
Zmniejszenie stanu kasy i drukowanie niefiskalnego paragonu wypaty.
Gdzie:
Ps : parametr ignorowany,
WYPATA : kwota wypacana z kasy,
<nr_kasy> : (opcjonalny) nazwa kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<kasjer> : (opcjonalny) nazwa kasjera, wydrukowanych zostanie max. 9 dowolnych znakw,
<check> : bajt kontrolny.
Kod bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 30 : bd kwoty WYPATA (syntaktyka),
= 32 : warto po odjciu staje si ujemna (przyjmuje si wwczas stan zerowy kasy).
[LBCSHSTS]: Stan kasy
ESC P Ps #t [<nr_kasy> CR <kasjer> CR ] <check> ESC \
Drukowanie niefiskalnego raportu o iloci gotwki w kasie.
Gdzie:
Ps : parametr ignorowany,
<nr_kasy> : (opcjonalny) nazwa kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<kasjer> : (opcjonalny), nazwa kasjera, wydrukowanych zostanie max. 9 dowolnych znakw,
<check> : bajt kontrolny.
Kod bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego.

www.posnet.com.pl

43

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBCSHREP]: Raport kasy / zmiany
ESC P Ps #k <zmiana> CR <kasjer> CR [<nr_kasy> CR ] <check> ESC \
Gdzie:
Ps = 0 (lub brak) : raport zmianowy zerujcy,
= 23 : raport zmianowy czytajcy,
<zmiana> : string[8], zawierajcy dowolne znaki drukowalne, odpowiadajce numerycznemu lub
alfanumerycznemu oznaczeniu zmiany,
<kasjer> : string[32], jak wyej, napis zarezerwowany na nazwisko i imi kasjera,
<check> : bajt kontrolny,
<nr_kasy> : string[8], (opcjonalny) nazwa kasy, max 8 dowolnych znakw.
Kod bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 5 : bd odczytu zegara RTC,
= 33 : bd napisu <zmiana> (np. za dugi lub zawierajcy bdne znaki),
= 34 : bd napisu <kasjer>.
Format wydruku (raport zmiany wewntrzny)

YYYY-MM-DD

NAGWEK
NIP XXX-XXX-XX-XX

DDDDDD

NIEFISKALNY
RAPORT ZMANOWY
ZMIANA:
<zmiana>
KASJER:
<kasjer>
SPRZEDA:
Kwota
ILO PARAGONW FISKALNYCH:
Liczba
ILO PARAGONW ANULOWANYCH:
Liczba
ILO STORNOWANYCH POZYCJI:
Liczba
WPATY DO KASY:
Kwota
WYPATY Z KASY:
Kwota
STAN KASY:
Kwota
POCZTEK ZMIANY:
yy-mm-dd HH:MM
KONIEC ZMIANY:
yy-mm-dd HH:MM
NIEFISKALNY
[#<nr_kasy>] <kasjer>
00123456

HH:MM

[LBLOGIN] : Logowanie kasjera


ESC P Ps #p <kasjer> CR <nr_kasy> CR <check> ESC \
Drukowanie dokumentu niefiskalnego.
Gdzie:
Ps : parametr ignorowany,
<kasjer> : string[32], zawierajcy dowolne znaki drukowalne, nazwisko i imi kasjera. Na niektrych
wydrukach nazwa nie jest drukowana w caoci, drukowanych jest pierwszych 17 znakw. Ograniczenie to
zwizane jest z szerokoci paragonu.
<nr_kasy> : string[8], jw., napis zarezerwowany na numer kasy.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 5 : bd odczytu zegara RTC,

www.posnet.com.pl

44

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


= 33: bd napisu <numer> (np. za dugi lub zawierajcy bdne znaki),
= 34: bd napisu <kasjer>.
Uwaga:
Opcjonalne parametry dotyczce kasy i kasjera, podawane przy niektrych sekwencjach maj wyszy priorytet od
sekwencji logowania. Umoliwia to autoryzacje paragonw.
Przykad: Kasjer jest zalogowany i generuje paragony sprzeday, ale raport dobowy moe wykona kierownik bez
potrzeby wylogowywania si kasjera. Na paragonach zostaje lad identyfikujcy osob odpowiedzialn za
wygenerowany przez drukark dokument.
[LBLOGOUT]: Wylogowanie kasjera
ESC P Ps #q <kasjer> CR <nr_kasy> CR <check> ESC \
Drukowanie dokumentu niefiskalnego.
Gdzie:
Ps : parametr ignorowany,
<kasjer> : string[32], zawierajcy dowolne znaki drukowalne, nazwisko i imi kasjera,
<nr_kasy> : string[8], jw., napis zarezerwowany na numer kasy.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 5 : bd odczytu zegara RTC,
= 33 : bd napisu <numer> (np. za dugi lub zawierajcy bdne znaki),
= 34 : bd napisu <kasjer>.

www.posnet.com.pl

45

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBFSKREP]: Drukowanie raportu okresowego
Wygenerowanie raportu okresowego moliwe jest za pomoc dwch sekwencji, rnicych si sposobem okrelania
zakresu raportu. Pierwszy sposb polega na okreleniu daty pocztkowej i kocowej, drugi na okreleniu numeru
pocztkowego i kocowego rekordu zapisanego w pamici fiskalnej.
Raport okresowy z zakresem okrelonym za pomoc dat:
ESC P Py1 ; Pm1 ; Pd1 ; Py2 ; Pm2 ; Pd2 ; Pt #o [<nr_kasy> CR <kasjer> CR] <check> ESC \
Gdzie:
Py1, Pm1, Pd1 : data pocztkowa,
Py2, Pm2, Pd2 : data kocowa,
Pt = 0 (lub brak) : raport peny (dokument fiskalny) z zakresu podanych dat,
= 1 : podsumowanie sprzeday (dokument niefiskalny) z zakresu podanych dat,
= 6 : raport miesiczny peny (dokument fiskalny),
= 7 : miesiczne podsumowanie sprzeday (dokument niefiskalny),
<kasjer> : (opcjonalny) nazwa kasjera, wydrukowanych zostanie max. 8 dowolnych znakw,
<nr_kasy> : nr kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<check> : bajt kontrolny.
Raport okresowy z zakresem okrelonym za pomoc numerw:
ESC P Pt #o Od / Do / [<nr_kasy> CR <kasjer> CR] <check> ESC \
Gdzie:
Pt : data pocztkowa,
= 16 : raport peny (dokument fiskalny) z zakresu podanych numerw,
= 17 : podsumowanie sprzeday (dokument niefiskalny) z zakresu podanych numerw,
<kasjer> : string[8], (opcjonalny) nazwa kasjera, max 32 dowolne znaki,
<nr_kasy> : string[17], (opcjonalny) nazwa kasy, max 8 dowolnych znakw,
<check> : bajt kontrolny.

Kod bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 3 : za ilo parametrw,
= 4 : bd parametrw (wartoci dat, obejmuje rwnie sytuacje, gdy data kocowa jest wczeniejsza od
pocztkowej, brak zapisu w module fiskalnym dla podanego zakresu dat),
= 6 : bd operacji z pamici fiskaln (fatalny).

www.posnet.com.pl

46

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBDAYREP]: Drukowanie raportu dobowego
ESC P #r [<nr_kasy> CR <kasjer> CR] <check> ESC \
lub
ESC P 0 #r [<nr_kasy> CR <kasjer> CR] <check> ESC \
lub
ESC P 1 ; Py; Pm ; Pd #r [<nr_kasy> CR <kasjer> CR] <check> ESC \
Gdzie:
Py; Pm; Pd : data w nastpujcym formacie:
Py = numer roku = 0..99, (dwie najmodsze cyfry, 2000..2099),
Pm = numer miesica = 1..12,
Pd = dzie = 1..31,
<nr_kasy> (opcjonalny) nazwa kasy, wydrukowanych zostanie max. 8 dowolnych znakw,
<kasjer> : (opcjonalny) nazwa kasjera, wydrukowanych zostanie max. 17 dowolnych znakw.
Kody bdw:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 6 : bd operacji zwizany z pamici fiskaln (fatalny),
= 7 : bd daty (aktualnie ustawiona jest wczeniejsza od daty
ostatniego zapisu) lub w formacie drugim nie ma zgodnoci
daty w drukarce z dat przesan,
= 35 : zerowy stan totalizerw,
= 36 : ju istnieje zapis o tej dacie (gdy totalizery s zerowe),
= 37 : operacja przerwana z klawiatury (przed rozpoczciem drukowania).
Uwagi:
1. Operacja wymaga potwierdzenia z klawiatury jeeli nie podano daty (1-sza sekwencja).
2. W wariancie z parametrem =1 raport zostanie zapisany bez adnego komunikatu / potwierdzenia.
3. W przypadku gdy raport dobowy w danym dniu jest powtarzany a totalizery nie s zerowe, przy uyciu
obu sekwencji zgaszana jest proba o potwierdzenie wykonania raportu.
4. Gdy totalizery s zerowe i w danym dniu zosta ju zapisany raport dobowy, drukarka zgasza bd 36.

www.posnet.com.pl

47

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBDBREP]: Kontrola bazy danych
ESC P Ps #b [ <nazwa> CR <ptu> / ] <check> ESC \
Sprawdzenie, czy towar o nazwie <nazwa> wystpuje w wewntrznej bazie danych i jak ma tam stawk PTU.
W wyniku dziaania sekwencji na wydruku w polu PTU:drukarka drukowana jest waga ustawienia stawki PTU
(priorytet) w bazie towarowej lub odsyana jest informacja, czy towar jest zablokowany (RS232). Waga ta okrelana
jest na wydruku w postaci maej litery alfabetu (a najwikszy priorytet; g najniszy priorytet ). Przez cze
RS232 zwracana jest liczba informujca czy dany towar jest zablokowany (1), czy nie (0).
Sekwencja wystpuje w 4 postaciach:
Ps = 0 : pocztek testu - pola <nazwa> i <ptu> nie wystpuj, (bajt kontrolny jest sprawdzany), drukowany
jest nagwek testu z napisem 'niefiskalny', tytu oraz data przeprowadzenia testu,
Ps = 4 : pocztek testu (j.w.), ale drukowane bd tylko i wycznie TOWARY ZABLOKOWANE !
Definicja towaru zablokowanego:
Towarem zablokowanym jest towar, dla ktrego zmieniono stawk PTU z wyszej na nisz oraz wykonano
prb sprzeday tego towaru w stawce wyszej ni ostatnio ustawiona.
Dla Ps = 0 lub Ps = 4 sekwencja ma format:
ESC P Ps #b

<check> ESC \

Ps = 1 : waciwy rekord danych. Format sekwencji jest nastpujcy:


ESC P 1 #b <nazwa> CR <ptu> / <check> ESC \
Gdzie:
<nazwa> : nazwa artykuu w bazie - maksymalnie 40 znakw,
<ptu>
: oznaczenie stawki PTU: A, B, C, D, E, F, G (Z dla 1-ej stawki zwolnionej}
<check> : bajt kontrolny,
Ps = 2 : zakoczenie testu (pole danych te nie wystpuje), drukowany jest komunikat o wyniku testu (ilo
towarw i ilo niezgodnoci) oraz napis 'niefiskalny'
Dla Ps = 2 sekwencja ma posta:
ESC P Ps #b [ <nr_kasy> CR <kasjer> CR] <check> ESC \
<nr_kasy> : string[8], (opcjonalny) nazwa kasy, max 8 dowolnych znakw,
<kasjer> : string[32], (opcjonalny) nazwa kasjera, max 32 dowolne znaki.
Kod bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd parametru / kolejnoci sekwencji (np. najpierw koniec: Ps=2, a potem dana: Ps=1),
= 38 : bd nazwy,
= 39 : bd oznaczenia PTU, PTU z poza zakresu A-G,

www.posnet.com.pl

48

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBDBREPRS] : Pytanie o moliwo sprzeday towaru
ESC P $g <nazwa> CR <ptu> / <check> ESC \
Gdzie:
<nazwa> : nazwa artykuu w bazie - maksymalnie 40 znakw,
<ptu> : parametr ignorowany przyjmujcy warto : A,B,C,D,E,F,G lub Z.
<check> : bajt kontrolny.
Odpowied drukarki odsyana jest po interfejsie RS. Format odpowiedzi drukarki jest nastpujcy:
ESC P 1$G Pe / Ptu / ESC \
Gdzie:
Pe = 0 : gdy towar nie jest zablokowany,
= 1 : towar zablokowany (nie mona sprzeda towaru w wyszej stawce ni ostatnio do niego przypisanej).
Ptu - ostatnia warto stawki w ktrej sprzedawany by towar (Ptu=101 gdy pytanie dotyczyo nie
sprzedawanego jeszcze towaru)
[LBSENDCK]: Odelij czas RTC
ESC P Ps #c ESC \
danie odesania do systemu informacji o dacie i godzinie zegara RTC drukarki.
Gdzie:
Ps : parametr ignorowany.
Drukarka odsya informacj:
[LBCLKRS]
ESC P 1#C Py ; Pm ; Pd ; Ph ; Pm ; 0 ESC \
ODESANY CZAS RTC - odesany czas zegara RTC drukarki, gdzie poszczeglne parametry oznaczaj:
Py, Pm, Pd : data w formacie: 1 cyfra roku (dla lat 2000-2009); 2 ostatnie cyfry roku
(dla lat 2010-2049), miesic, dzie,
Ph, Pm, 0 : godzina w formacie: godzina, minuta (1 lub 2 cyfry), sekunda = 0.
Kody bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 5 : bd odczytu zegara RTC.

www.posnet.com.pl

49

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBFSTRQ]: Odelij informacje kasowe
ESC P Ps #s ESC \
danie odesania informacji istotnych z punktu widzenia zewntrznej aplikacji sterujcej drukark.
Format odpowiedzi drukarki zaley od wartoci parametrem Ps.
Dla Ps: < 22 (take gdy Ps nie wystpuje) format odpowiedzi drukarki jest zgodny z wersjami drukarek POSNET
Thermal i POSNET 3001, na ktre firma POSNET otrzymaa homologacje przed 1.01.2000
Przyjto jako zasad, e stawka zwolniona jest zdefiniowana w stawce G (ostatniej), dziki czemu nie zmienia si
format odpowiedzi na LBFSTRQ (za wyjtkiem numeru unikatowego ktry ma dugo o 1 znak wiksz).
Dla takiego przypadku (gdy w drukarce jedna stawka zwolniona przypisana do litery G) i zdefiniowanych 1...6
stawek PTU mamy:
[LBFSTRS]:
ESC P 1#X Pe ; Pm ; Pt ; Px ; Pf ; Pz ; Py ; Pm ; Pd / PTU_A / PTU_B / PTU_C /PTU_D / PTU_E /
PTU_F / PAR_NUM / TOT_A / TOT_B / TOT_C / TOT_D / TOT_E / TOT_F /
TOT_G / CASH / AAANNNNNNNN ESC \
Przykad: A=22%, B=7%, C=0%, G=ZW (4 aktywne stawki PTU w tym jedna zwolniona)
Odpowied drukarki:
ESC P 1#X Pe; Pm; Pt; Px; 1; Pz; Py; Pm; Pd / 22,00 / 7 / 0/ PAR_NUM / TOT_A / TOT_B / TOT_C / TOT_G /
CASH / ABC12345678 ESC \
Dla przypadku, gdy w drukarce zdefiniowano stawki PTU wykorzystujc sekwencj LBSETPTU z parametrem Ps=7
programici powinni korzysta z sekwencji LBFSTRQ z parametrem Ps=23. W takim przypadku format odpowiedzi
jest sztywny i jest nastpujcy:
ESC P 2#X Pe; Pm; Pt; Px; Ps; Pz; Py; Pm; Pd / PTU_A/ PTU_B / PTU_C / PTU_D / PTU_E/ PTU_F/
PTU_G/ PAR_NUM / TOT_A / TOT_B / TOT_C / TOT_D / TOT_E/ TOT_F/ TOT_G / CASH /
AAANNNNNNNN <check> ESC \
Formaty sekwencji i formaty odpowiedzi przy wartoci parametrw Ps = 24, 25, 26, 27 opisane s w rozdziale 3.8 na
str.[LBFSTRQ]: Odelij informacje kasowe [LBFSTRQ]: Odelij informacje kasowe 52 .
Gdzie:
PTU_A ... PTU_G = xx,yy% gdy stawka jest aktywna ( 0 xx,yy < 100% ),
= 100 dla stawki zwolnionej,
= 101 dla stawki nieaktywnej.
Przykad:
A=22%, B=7%, C=0%, D=ZW., E=NAKT, F=NAKT, G=NAKT
Odpowied drukarki:
ESC P 2#X Pe; Pp; Pt; Px; 1; Pz; Py; Pm; Pd / 22,00 / 7 / 0,0 / 100 / 101 / 101 / 101 / PAR_NUM / TOT_A /
TOT_B / TOT_C / TOT_D / 0 / 0 / 0 / CASH / ABC12345678 <check> ESC \
W przypadku gdy Ps=22 drukarka zwraca odpowied w takiej samej formie z t jednak rnic, e wartoci
totalizerw s wartociami w obrbie paragonu. Zadaniem tej sekwencji jest uatwienie obsugi takich sekwencji jak
[LBGRPRAB] czy [LBPODSUM] w ktrych wymagana jest znajomo wysokoci sprzeday w poszczeglnych
stawkach.
Poszczeglne parametry w odesanej informacji z drukarki oznaczaj:
Pe : kod bdu wykonania poprzedniej sekwencji:
= 0 jeeli sekwencja zostaa wykonana poprawnie lub nie zostaa rozpoznana,
Pm : tryb pracy:
= 0 : niefiskalny,
= 1 : fiskalny,

www.posnet.com.pl

50

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Pt : tryb pracy
= 1 : transakcyjny,
Px : stan znacznika TRF (Transaction Flag =1 po ostatniej poprawnej transakcji, zerowany po poprawnym
rozpoczciu nastpnej tj. wykonaniu sekwencji LBTRSHDR),
Pz : ilo zerowa RAM zapisanych w pamici fiskalnej,
Pf : 1,
Py, Pm, Pd : data ostatniego zapisu (Py = 2 ostatnie cyfry roku),
PTU_A...PTU_G : stawki podatkowe PTU, w formacie:
= xx,yy% gdy stawka jest aktywna ( 0 xx,yy < 100% ),
= 100 dla stawki zwolnionej,
= 101 dla stawki nieaktywnej,
PAR_NUM : ilo wydrukowanych paragonw fiskalnych (= <numer nastpnego> - 1, licznik paragonw
fiskalnych jest zerowany w trakcie fiskalizacji, po raporcie dobowym i zerowaniu RAM),
TOT_A...TOT_G : stan totalizera kasy (kwoty BRUTTO),
CASH : warto kaucji w transakcji,
AAANNNNNNNN : numer unikatowy,
check : bajt kontrolny (tylko w przypadku gdy Ps=23).
Uwaga:
1.

Bdy nie wystpuj.

[LBERNRQ]: danie wysania kodu bdu ostatniego rozkazu


ESC P Ps #n ESC \
Gdzie:
Ps : parametr jest nieistotny.
odpowiedz:
[LBERNRS]:
ESC P 1#E Pe ESC \
Uwaga:
1.
2.
3.

Podczas wykonania tego rozkazu nie wystpuj bdy.


Kod bdu Pe nie jest po wykonaniu tego rozkazu modyfikowany w odrnieniu od rozkazu
LBFSTRQ, ktrego wykonanie powoduje zerowanie tego kodu.
Kod bdu jest kasowany w momencie wykonania kadego rozkazu oprcz LBERNRQ rwnie
rozkazu "nie rozpoznanego", std absolutnie niezawodna procedura testowania poprawnoci
wykonania rozkazu powinna testowa rwnie bit CMD odpowiedzi na kod ENQ.

[LBIDRQ] : Sekwencja odsyajca typ i wersj oprogramowania


ESC P #v ESC \
Odpowiedz:
[LBIDRS]:
ESC P 1#R <typ>/ <wersja> ESC \
Gdzie:
<typ> = napis okrelajcy typ urzdzenia np. 'POSNET Thermal,
<wersja> = numer wersji oprogramowania np. '1.02'.
Kody bdu:
= 1 : nie zainicjalizowany zegar RTC.

www.posnet.com.pl

51

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


[LBSNDMD]: Wczenie/ wyczenie drukowania dokumentw niefiskalnych na oryginale
ESC P Ps #a <check> ESC \
Gdzie:
Ps = 0 : wydruk tylko na kopii ,
= 1 : wydruk na oryginale i kopii,
check : bajt kontrolny.
Kody bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego,
= 4 : bd danych (parametru Ps).
[LBCASREP]: Drukowanie raportu kasy
ESC P #j <check> ESC \
Po odebraniu tego rozkazu drukarka drukuje raport kasy.
Gdzie:
<check> : bajt kontrolny.
Kody bdu:
= 1 : nie zainicjalizowany zegar RTC,
= 2 : bd bajtu kontrolnego.

3.8 Zawarto pamici fiskalnej wysyana po RS oraz dodatkowe informacje kasowe.


[LBFSTRQ]: Odelij informacje kasowe.
ESC P Ps #s ESC \
- danie odesania informacji istotnych z punktu widzenia kasowego,
Gdzie:
Ps = 22 Drukarka odsya LBFSTRS ale wartoci totalizerw s wartociami w obrbie paragonu.
Ps = 23 Drukarka odsya informacj LBFSTRS
Ps = 24 Drukarka odsya informacj LBFSTRS1
Ps = 25 Odsyanie rekordw FM - Ustaw numer rekordu na Py;Pm;Pd
Ps = 26 Odsyanie rekordw FM - Ustaw numer rekordu na Nr/
Ps = 27 Odsyanie rekordw FM - Odelij rekord, ustaw si na nastpnym
ESC P 24 #s ESC \
Drukarka odsya informacj LBFSTRS1:
ESC P 3#X
Py;Pm; Pd;
liczba rek_dob;
liczba_rek_dob_do_konca;
liczba_tow_zabl;
PAR_A/ PAR_B/ PAR_C/ PAR_D/ PAR_E/ PAR_F/ PAR_G/
<check> ESC \
Gdzie:
Py; Pm; Pd - data fiskalizacji [ rok, miesic dzie ] w przypadku niefiskalnej 2000.01.01
PAR_A .. PAR_G - wartoci biecego paragonu (dla poszczeglnych stawek VAT) -wartoci zerowane po
rozpoczciu paragonu

www.posnet.com.pl

52

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


liczba_rek_dob - liczba zapisanych rekordw dobowych
liczba_rek_dob_do_konca - liczba wolnych rekordw w pamici fiskalnej
liczba_tow_zabl - liczba towarw zablokowanych.
ESC P 25; Py; Pm; Pd; Ph; Pmin; Psec #s ESC \
Odsyanie rekordw FM odsya wartoci rekordw zaczynajc od podanej daty.
Gdzie:
Py; Pm; Pd - ustawienie na pierwszym rekordzie o podanej dacie,
Py = numer roku = 0..99, (dwie najmodsze cyfry, 1950..2049),
Pm = numer miesica = 1..12,
Pd = dzie = 1..31,
Ph = godzina,
Pmin = minuta,
Psec = sekunda.
ESC P 26 #s Nr/ ESC \
Odsya zawarto rekordw zaczynajc od podanego numeru.
Gdzie:
Nr - numer rekordu zaczynajc od 0
ESC P 27 #s ESC \
Odsya zawarto biecego rekordu.
Rekord raportu dobowego:
ESC P 10#X
Year; Month; Day; Hour; Min; Sec;
Parag_cnt;
Anul_cnt;
Base_chng_cnt;
Anul_totalizer/
Totalizer_A/ Totalizer_B/ Totalizer_C/ Totalizer_D/ Totalizer_E/ Totalizer_F/ Totalizer_G/
<check> ESC \
gdzie: Parag_cnt liczba paragonw
Anul_cnt liczba anulowanych paragonw
Base_chng_cnt liczba zmian w bazie towarowej
Anul_totalizer kwota anulacji
Rekord zmian stawek VAT:
ESC P 11#X
Year; Month; Day; Hour; Min; Sec;
0;
0;
0;
0/
PTU_A/ PTU_B/ PTU_C/ PTU_D/ PTU_E/ PTU_F/ PTU_G/
<check> ESC \
Rekord zerowania pamici RAM:

www.posnet.com.pl

53

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

ESC P 12#X
Year; Month; Day; Hour; Min; Sec;
Reason;
Nr;
0;
0/
0/ 0/ 0/ 0/ 0/ 0/ 0/
<check> ESC \
gdzie: reason przyczyna zerowania: 0x10 zewntrzna, 0x01 wewntrzna.
Nr numer zerowania
Rekord rozpoczcia sprzeday po zerowaniu pamici RAM:
ESC P 13#X
Year; Month; Day; Hour; Min; Sec;
0;
0;
0;
0/
0/ 0/ 0/ 0/ 0/ 0/ 0/
<check> ESC \
Nie ma wicej rekordw do odczytania:
ESC P 25#X
2000; 1; 1; 0; 0; 0;
0;
0;
0;
0/
0/ 0/ 0/ 0/ 0/ 0/ 0/
<check> ESC \

www.posnet.com.pl

54

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

4. DODATKOWE SEKWENCJE DLA WYDRUKW


NIEFISKALNYCH

Rozpoczcie wydruku
ESC P 0; P2 [;P3] $w <check> ESC \
Gdzie:
P2 : numer raportu, ktrego nagwek ma by drukowany,
P3 : numer nagwka, ktry ma by wydrukowany (niektre raporty maj kilka zdefiniowanych nagwkw)
Jeli wydruk ma tylko jeden rodzaj nagwka, to P3 powinno mie warto 0.
Linia wydruku
ESC P P1; P2 $w [<arg1> CR ... <argn> CR ] <check> ESC \
Gdzie:
P1: nr raportu do wydrukowania
P2 : oznacza numer linii, ktra ma by wydrukowana (liczenie linii zaczynamy od
zera, pomijajc te, ktre s nagwkami). Jeli P2=255 - oznacza pust lini.
arg1..argn : dowolny cig znakw ze zbiorw: {'a'..'z'}, {'A'..'Z'},{'0'..'9'},{""},
"{"`~@#$%^&*()_-+=[{]}\|;:'",<.>/? "},
linie numeryczne akceptuj: cyfry, pierwsze 3 litery, znaki specjalne,
linie literowe akceptuj: litery, pierwsze 3 cyfry, znaki specjalne.
Zakoczenie wydruku
ESC P 1; P2; P3; P4 $w [ <nr_systemowy> CR ] [ <dod_linia_1> CR ][<dod_linia_2> CR]
[<dod_linia_3> CR] <check> ESC \
Gdzie:
P2 : oznacza numer raportu, ktrego stopka ma by drukowana,
jeli P2=255 to wysanie tej sekwencji przed dowolnym wydrukiem niefiskalnym (nie tylko $w)
spowoduje wydrukowanie na kocu wydruku numeru systemowego oraz dodatkowych linii.
P3 : 0-nie wystpuje nr systemowy, 1-wystpuje nr systemowy. Przykad znajduje si poniej - linia drukuje
si po numerze unikatowym
P4: 0-brak dodatkowych linii, n-liczba dodatkowych linii (maksymalnie 3)
Przykad:
# NIEFISKALNY #
#nn

kkkkkk

Nr
<linia nr
<linia nr
<linia nr

gg:mm

12345678
systemowy 001-00001-00012
1>
2>
3>

2 - Transakcje odoone

1234567890123456789012345678901234567890
# NIEFISKALNY #

www.posnet.com.pl

55

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

TRANSAKCJE ODOONE
POTWIERDZENIE DOKONANIA TRANSAKCJI

0
1

Kasa: ##################################
Numer transakcji: ######################
Numer kasjera: #########################

0
1
2

nag wek

# NIEFISKALNY #
Uwagi:
1. Parametry s parametrami alfanumerycznymi .

3 - Funkcje operatora

1234567890123456789012345678901234567890
# NIEFISKALNY #
nag wek

RAPORT FUNKCJI OPERATORA


Funkcja ####

##########################

# NIEFISKALNY #

Uwagi:
1. Pierwszy parametr jest parametrem numerycznym (moe zawiera: cyfry, znaki specjalne, max. 3 litery).
2. Drugi parametr jest parametrem literowym.
3. Linia Funkcja, moe wystpowa wielokrotnie.

4 - Raport kasjera

1234567890123456789012345678901234567890
# NIEFISKALNY #
RAPORT KASJERA X
RAPORT KASJERA Z
RAPORT KASY X
RAPORT KASY Z
OFFLINE KASJERA
ONLINE KASJERA

0
1
2
3
4
5

LICZBA RESETW: ###


NUMER KASY # ###########################

0
1

SUMY CZNE

www.posnet.com.pl

nag wek
nag wek
nag wek
nag wek
nag wek
nag wek

2
56

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

BIECA DODATNIA
BIECA UJEMNA
POPRZEDNIA DODATNIA
POPRZEDNIA UJEMNA

SUMA
SUMA
SUMA
SUMA

###############
###############
###############
###############

-----------SUMA CZNA DODATNIA


SUMA CZNA UJEMNA

###############
###############

SUMY SPRZEDAY

3
4
5
6
7
8
9
10

###############
###############
###############
###############
###############

11
12
13
14
15
16

##### KUPON SKLEPOWY

###############

17

PODSUMA TOWARW

###############

18

PODSUMA PODATKU

###############

19

#####
#####
#####
#####
#####

TOWARY:
POZYCJE DODATNIE
USUGI, INNE
POZYCJE UJEMNE
DODATNIE KOREKTY
UJEMNE KOREKTY

20

RABAT / NARZUT
###############
###############
###############
###############

21
22
23
24

PODSUMA RABATU/DOPATY

###############

SPRZEDA NETTO CZNIE

###############

25
26
27

RABAT
RABAT
RABAT
RABAT

HEJ HEM
/ DOPATA
/ DOPATA
DLA PRACOWNIKA

------------

SUMY RODKW PATNOCI

28

RODKI PATNOCI

29

RODEK P.##: ### ############ #######


##### KWOTA
###############
##### ZEBRANE
##########
##### W OBIEGU
##########
##### START W OB.
##########
##### TYP P. NR 2
###############

www.posnet.com.pl

57

30
31
32
33
34
35
drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


PODSUMA R. PATNOCI

###############

KOREKTA RODKW PATNOCI


#####
#####
#####
#####
#####
#####

37

DOD. FUNKCJI BANK. ###############


POMN. FUNKCJI BANK.###############
USTAW. ZAOKRGLE ###############
ZAPAM. CZ. PATN. ###############
PRZYW. CZ. PATN. ###############
OPATA PATNOCI
###############

PODSUMA KOREKTY PATN.

36

###############

------------RODKI PATNICZE CZNIE ###############

38
39
40
41
42
43
44
45
46

47

INNE SUMY

OBNIKI DODATNIE
OBNIKI UJEMNE
KOREKCJE BDW
SUMA ZWROTW
ZWROTY KOSZTW
RODKI UNIEWAN.
POZYCJE SPRZEDAY
RABAT ZBIORCZY
SPRZEDA ANULOWANA
SPRZEDA ZAPAMIT.
SPRZEDA UNIEWAN.
SPRZEDA PRZYWO.
ZAMIANA R. PATN.
BEZ PODATKU
KWOTA ZWOLNIONA
ZWROT NADPAC. VAT
ZNACZKI WYEMITOW.

###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############
###############

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

##### POZYCJE Z KLAWIAT.


##### POZYCJE SKANOWANE
##### POZYCJE WAONE
POZYCJE WAONE CZNIE

######%
######%
######%
###############

65
66
67
68

#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####
#####

#####
#####
#####
#####
#####
#####

69
70
71
72
73
74

TRANSAKCJE DODATNIE
ZWROT NADPACONEJ GOTWKI
INNE TRANSAKCJE
OTWARCIE SZUFLADY
SUMA BIECA
LICZBA KLIENTW

www.posnet.com.pl

58

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


##:##
##:##
##:##
##:##
##:##

75
76
77
78
79

CZAS PRACY KASJERA


CZASOWE WYCZENIE KASY
CZAS WPROWADZANIA TOWARW
CZAS PACENIA
CZAS OTWARCIA SZUFLADY
# NIEFISKALNY #

Uwagi:
1.
2.
3.

W linii 30 parametry 2 i 3 s literowe.


Wszystkie pozostae parametry s parametrami numerycznymi (mog zawiera: cyfry, znaki specjalne, max. 3
litery).
Blok rodki patnoci moe wielokrotnie wystpowa przy wikszej liczbie rodkw patnoci.

5 - Raport rodkw patnoci


1234567890123456789012345678901234567890
# NIEFISKALNY #
RAPORT RODKW PATNOCI
KASJER ########

RODEK P.##: ### ############ #######


##### KWOTA
###############
##### ZEBRANE
###############
##### W OBIEGU
###############
##### START W OB.
###############

1
2
3
4
5

PODSUMA R. PATNOCI

###############

# NIEFISKALNY #

Uwagi:
1.
2.
3.
4.

W linii 1 parametry 2 i 3 s literowe.


W linii 2 parametr 2 jest literowy.
Wszystkie pozostae parametry s parametrami numerycznymi (mog zawiera: cyfry, znaki specjalne, max. 3
litery).
Blok RODEK P STAR W OP. moe wielokrotnie wystpowa przy wikszej liczbie rodkw patnoci.

6 Sprzeda zarejestrowana w kasie

1234567890123456789012345678901234567890
# NIEFISKALNY #
SPRZEDA ZAREJ. W KASIE

NUMER KASY # ###

www.posnet.com.pl

59

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


PODSUMA SPRZEDAY
################
PODSUMA RACH. SPRZEDAY ################
PODSUMA RABATU / DOP. ################
---------------SPRZEDA CZNIE
################

1
2
3
4

# NIEFISKALNY #

Uwagi:
1.

Wszystkie parametry s parametrami numerycznymi (mog zawiera: cyfry, znaki specjalne, max. 3 litery).

7 Pokwitowanie

1234567890123456789012345678901234567890
# NIEFISKALNY #
POKWITOWANIE
ZWROT: #################################

RODEK P.: ############################


KWOTA: #################################
KONTO: #################################

1
2
3

PODPIS: ..............................

# NIEFISKALNY #

Uwagi:
1.
2.

Parametr w linii rodek p. jest parametrem literowym.


Pozostae parametry s parametrami numerycznymi (mog zawiera: cyfry, znaki specjalne, max. 3 litery).

8 Przedpata
1234567890123456789012345678901234567890
# NIEFISKALNY #
PRZEDPATA
NUMER ZAMWIENIA: ######################
RODEK P.: ############################
KWOTA: #################################
KONTO: #################################
PRZEDPATA: ############################
RESZTA:
############################

0
1
2
3
4
5

# NIEFISKALNY #

www.posnet.com.pl

60

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

Uwagi:
1.
2.
3.

Parametr w linii rodek p. jest parametrem literowym.


Pozostae parametry s parametrami numerycznymi (mog zawiera: cyfry, znaki specjalne, max. 3 litery).
Od przedpaty blok 1-5 moe by powtarzalny.

16 Rabat dla pracownika


1234567890123456789012345678901234567890
# NIEFISKALNY #
RABAT DLA PRACOWNIKA
Rabat dla pracownika: ##################
Numer pracownika: ######################
KWOTA: #################################

0
1
2

PODPIS: ..............................

# NIEFISKALNY #

Uwagi:
1.

Wszystkie parametry s parametrami numerycznymi (mog zawiera: cyfry, znaki specjalne, max. 3 litery).

17- Wymiana rodkw patnoci


1234567890123456789012345678901234567890
# NIEFISKALNY #
WYMIANA RODKW PATNOCI
Z:
NA:

##################################
##################################

0
1

# NIEFISKALNY #

Uwagi:
1.

Parametry alfanumeryczne.

www.posnet.com.pl

61

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

18- Operacje kasowe

1234567890123456789012345678901234567890
# NIEFISKALNY #
OPERACJE KASOWE
OPERACJA ###: ##########################

# NIEFISKALNY #

Uwagi:
1.
2.
3.

Pierwszy parametr jest parametrem numerycznym (moe zawiera: cyfry, znaki specjalne, max. 3 litery).
Drugi parametr jest parametrem swobodnym.
Linia Operacja moe wystpowa wielokrotnie.

19- Bdy kasy

1234567890123456789012345678901234567890
# NIEFISKALNY #
BDY KASY
BD KRYTYCZNY (FATAL ERROR)
Serwis : ###########################
Urzdzenie : ######################
Urzdzenie dod. : #####################
Funkcja : #########################
Podfunkcja : ###########################
Rejestr # : ###########################
Trans
# : ###########################
Kod b du : ###########################

0
1
2
3
4
5
6
7
8

# NIEFISKALNY #

Uwagi:
1.
2.

Wszystkie parametry s parametrami swobodnymi stay opis przed parametrem jest jednoznaczny.
aden z parametrw nie jest kontrolowany przez drukark.

www.posnet.com.pl

62

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


20 - Cennik
1234567890123456789012345678901234567890
# NIEFISKALNY #
CENNIK
ZMIANY CEN
STATYSTYKA SPRZEDAY
POTWIERDZENIE DOKONANIA TRANSAKCJI

0
1
2
3

SKLEP #########################
DATA ######## ########

0
1

Kod art: ############# Cena:


Kod art: ############# Data:
Cena1: ########,## Cena2:
Ilo:

2
3
4
5

########,##
###########
########,##
###########

# NIEFISKALNY #
UWAGI:
1.Nazwa sklepu jest parametrem swobodnym, natomiast pozostae parametry s parametrami numerycznymi (mog
zawiera: cyfry, znaki specjalne, max. 3 litery).

www.posnet.com.pl

63

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

5. Obliczenia realizowane przez drukark


Drukarka wykonuje rnego rodzaju obliczenia w trakcie:
realizacji transakcji (drukowania paragonu fiskalnego),
drukowania raportu dobowego,
drukowania raportu okresowego (rozliczeniowego).
Do obliczenia podatku PTU mona zastosowa rne metody : na podstawie kwoty NETTO lub kwoty BRUTTO.
Z uwagi na konieczno zaokrgle numerycznych wynikw czstkowych (i stanu totalizerw !) w kadym
przypadku uzyskamy nieco inny wynik kocowy. Dlatego przyjto sposb realizacji oblicze numerycznych
(wynikajcy z uzgodnie z Ministerstwem Finansw) oparty o zaoenie, e w systemie sprzeday detalicznej
podstawowe znaczenie maj kwoty BRUTTO.
Std wynikaj dwa fakty:
Podczas wykonywania transakcji drukarka otrzymuje z aplikacji kwoty BRUTTO dla poszczeglnych pozycji
paragonu. W TOTALIZERACH (licznikach) drukarki s akumulowane wartoci BRUTTO sprzeday w
poszczeglnych grupach podatkowych (A, B, C, D, E, F, G).
Punktem wyjcia dla wszystkich oblicze s aktualne wartoci stawek podatkowych. Stawki te s
wyznaczane przez procesor drukarki, na podstawie przeszukania pamici fiskalnej, wykonanego po wczeniu
zasilania. Znajdowany jest ostatni rekord (zapis) zmiany stawek PTU, odczytywane s z niego aktualne wartoci
stawek PTU i umieszczane w tablicy STAWKA[A..G]. Zmiana stawek PTU powoduje zapis nowych wartoci w
pamici fiskalnej oraz wpisanie ich do tablicy.
Rabat procentowy
W drukarce Thermal 1.02 rabat procentowy obliczany jest dwiema metodami w zalenoci od konfiguracji
urzdzenia:
Metoda 1
warto = ( (1- ( R/100 ) ) * warto )
Rabat = warto warto
-kwota rabatu
Metoda 2:
Rabat = (warto * R)/100
Warto = warto - Rabat

-kwota rabatu

warto warto przed rabatem


warto warto po rabacie
R warto procentowa rabatu

Obliczenia realizowane w trakcie transakcji


Podczas realizacji transakcji drukarka otrzymuje z aplikacji (od uytkownika) informacje
o kolejnych pozycjach paragonu (sprzedanych artykuach). Z punktu widzenia oblicze i rejestracji podatku,
w odniesieniu do kadego artykuu istotne s nastpujce informacje:
- nazwa artykuu,
- cena jednostkowa BRUTTO,
- ilo,
- kod stawki PTU,
- rabat/ narzut procentowy lub kwotowy,
- warto pozycji BRUTTO.
Na pocztku realizacji transakcji drukarka zeruje sumy sprzeday w grupach podatkowych dla
paragonu, umieszczane w tablicy BRUTTO[A..G], czyli wykonuje si:
BRUTTO[A]
BRUTTO[B]
BRUTTO[C]
BRUTTO[D]
BRUTTO[E]
BRUTTO[F]
BRUTTO[G]

:=
:=
:=
:=
:=
:=
:=

0;
0;
0;
0;
0;
0;
0.

Zerowana jest te kwota nalenoci dla klienta:


P_TOTAL := 0;

www.posnet.com.pl

64

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


(przyjto oznaczenie P_TOTAL aby odrni t warto od kwoty TOTAL otrzymanej z systemu w sekwencji
koczcej transakcj.)
Po otrzymaniu z kadej pozycji paragonu
gdzie PTU = A, B, C, D, E, F lub G , drukarka oblicza:

wartoci

BRUTTO

kodu

stawki

PTU,

BRUTTO[PTU] := BRUTTO[PTU] + BRUTTO { brak rabatu/ narzutu}


lub
{ rabat kwotowy}

BRUTTO[PTU] := BRUTTO[PTU] + BRUTTO RABAT


lub

BRUTTO[PTU] := BRUTTO[PTU] + BRUTTO po rabacie(warto


umieszczonego we wstpie ){ rabat %}

obliczna wg algorytmu

lub
BRUTTO[PTU] := BRUTTO[PTU] + BRUTTO + NARZUT

{narzut kwotowy}

lub
BRUTTO[PTU] := BRUTTO[PTU] + BRUTTO*(1 + NARZUT/100){narz. %}
oraz:
{ brak rabatu/narzutu}

P_TOTAL := P_TOTAL + BRUTTO


lub
lub

P_TOTAL := P_TOTAL + BRUTTO RABAT

{ rabat kwotowy }

P_TOTAL := P_TOTAL + BRUTTO po rabacie (warto


umieszczonego we wstpie ){ rabat procentowy}

obliczna wg algorytmu

lub
P_TOTAL := P_TOTAL + BRUTTO + NARZUT

{ narzut kwotowy}

lub
P_TOTAL := P_TOTAL + BRUTTO*(1 + NARZUT/100){ narzut procentowy }
gdzie: RABAT, NARZUT - umieszczana przez aplikacj w sekwencji linii paragonu warto
pola RABAT
(procentowa lub kwotowa) , powodujca zwikszenie lub zmniejszenie kwoty nalenoci dla klienta.
Wszystkie wyej wymienione obliczenia s prowadzone z precyzj 10-cyfrow. Wystpienie nadmiaru
obliczeniowego spowoduje zgoszenie bdu (w tym przypadku bdzie to zgoszone jako kod bdu 19 bd
wartoci CENA).
Warto chwilowa P_TOTAL w przypadku realizacji transakcji w trybie On-Line
jest te wysyana na wywietlacze klienta i operatora (wraz z nazw towaru).
UWAGA:
Naliczanie podatku PTU w grupach A..F jest prowadzone wg zasady:
sumowanie kwot sprzeday BRUTTO w grupach A..G i obliczanie kwot nalenego podatku w
grupach na podstawie sum obliczanych jak wyej.
Po zakoczeniu transakcji przez system (odebraniu poprawnej sekwencji koczcej paragon) otrzymujemy
wartoci:
BRUTTO[A]BRUTTO[G], P_TOTAL.
Wynik P_TOTAL porwnywany jest z wartoci TOTAL otrzyman z systemu w sekwencji koczcej paragon. Aby
poprawnie zakoczy transakcj obie te kwoty musz by jednakowe.
Jeeli w sekwencji koczcej paragon przesano niezerow warto rabatu i niezerowy parametr Px ( Px
rodzaj rabatu/narzutu ) to nastpuje korekcja sum BRUTTO[A]..BRUTTO[G] wedug wzorw:
BRUTTO[PTU]:= wg algorytmu opsanego we wstpie {rabat %}
lub
BRUTTO[PTU]:= BRUTTO[PTU] -

RABAT

{rabat kwotowy}

lub
RABAT/100 ) {narzut %}

BRUTTO[PTU]:= BRUTTO[PTU]*( 1 +
lub
BRUTTO[PTU]:= BRUTTO[PTU] +

RABAT

{narzut kwotowy}

gdzie: RABAT warto rabatu lub narzutu (procentowa lub kwotowa) przesana w sekwencji koca paragonu w
polu RABAT.
Przykad:

www.posnet.com.pl

65

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


W przypadku narzutu procentowego :
BRUTTO[A]
BRUTTO[B]
BRUTTO[C]
BRUTTO[D]
BRUTTO[E]
BRUTTO[F]
BRUTTO[G]

:=
:=
:=
:=
:=
:=
:=

BRUTTO[A]
BRUTTO[B]
BRUTTO[C]
BRUTTO[D]
BRUTTO[E]
BRUTTO[F]
BRUTTO[G]

*
*
*
*
*
*
*

(1
(1
(1
(1
(1
(1
(1

+
+
+
+
+
+
+

RABAT
RABAT
RABAT
RABAT
RABAT
RABAT
RABAT

/
/
/
/
/
/
/

100),
100),
100),
100),
100),
100),
100).

Tak uzyskane wyniki zaokrglane s do 0,01 z. Nastpnie obliczane s wielkoci pomocnicze:


NETTO[A]
NETTO[B]
NETTO[C]
NETTO[D]
NETTO[E]
NETTO[F]
NETTO[G]

:=
:=
:=
:=
:=
:=
:=

BRUTTO[A]
BRUTTO[B]
BRUTTO[C]
BRUTTO[D]
BRUTTO[E]
BRUTTO[F]
BRUTTO[G]

/
/
/
/
/
/
/

(1
(1
(1
(1
(1
(1
(1

+
+
+
+
+
+
+

STAWKA[A]
STAWKA[B]
STAWKA[C]
STAWKA[D]
STAWKA[E]
STAWKA[F]
STAWKA[G]

/
/
/
/
/
/
/

100),
100),
100),
100),
100),
100),
100).

(te wartoci te s zaokrglane do drugiej cyfry po przecinku).


Ostatecznie obliczane s wartoci podatku PTU w grupach podatkowych:
PTU[A]
:= BRUTTO[A] NETTO[A],
PTU[B]
:= BRUTTO[B] NETTO[B],
PTU[C]
:= BRUTTO[C] NETTO[C],
PTU[D]
:= BRUTTO[D] NETTO[D],
PTU[E}
:= BRUTTO[E] NETTO[E],
PTU[F]
:= BRUTTO[F] NETTO[F],
PTU[G]
:= BRUTTO[G] NETTO[G].
Na paragonie drukowane s te wartoci BRUTTO[A]...BRUTTO[G], oraz PTU[A]...PTU[G],
ktre s niezerowe. Jeeli nie wystpuje rabat/narzut, to kwota kocowa P_TOTAL (rwna TOTAL) pisana jest
drukiem o podwjnej szerokoci jako kwota do zapacenia przez klienta. Jeeli natomiast wystpuje rabat/narzut, to
kwota ta drukowana jest w linii o pojedynczej szerokoci (pod hasem PODSUMA:). W nastpnej linii jest
wielko rabatu/narzutu , natomiast sum nalenoci dla klienta wyliczamy jeszcze raz:
P_TOTAL := BRUTTO[A] +

.....

+ BRUTTO[G]

(poniewa kwoty po prawej stronie rwnania zostay przeliczone wczeniej przy uwzgldnieniu wielkoci
rabatu/narzutu).
Tak uzyskana suma drukowana jest w linii o podwjnej szerokoci (pod hasem SUMA z), jako ostateczna kwota
nalenoci dla klienta.
Jeeli paragon zakoczono sekwencj z uwzgldnieniem kaucji, to ostateczna kwota do zapaty przez klienta jest
liczona wg wzoru:
P_TOTAL :=
BRUTTO[A]+ + BRUTTO[G]+KAUCJA_POBRANA-KAUCJA_ZWROCONA
Jeeli w sekwencji koczcej transakcj aplikacja przesaa warto wpaty przez klienta (WPLATA), to:
RESZTA := WPLATA P_TOTAL;
Jeeli wynik jest dodatni to na paragonie drukowane s dwie dodatkowe linie zawierajce wielko wpaty oraz
reszty.
Ostatnim etapem realizacji transakcji jest aktualizacja totalizerw drukarki, ktre zawieraj nastpujce
lokacje:
kwoty sprzeday BRUTTO w grupach podatkowych:
TOT[A], TOT[B], TOT[C], TOT[D], TOT[E], TOT[F], TOT[G], oraz

licznik paragonw fiskalnych PAR_NUM.

www.posnet.com.pl

66

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Licznik paragonw fiskalnych ma zakres 0.. 9999 i jest zwikszany przed wydrukowaniem
jego wartoci w stopce paragonu oraz zerowany po wykonaniu raportu dobowego (licznik ten jest zerowany rwnie
po fiskalizacji i zerowaniu RAM).
Kwoty sprzeday s aktualizowane zgodnie z kwotami BRUTTO obliczonymi dla paragonu w grupach podatkowych:
TOT[A]
TOT[B]
TOT[C]
TOT[D]
TOT[E]
TOT[F]
TOT[G]

:=
:=
:=
:=
:=
:=
:=

TOT[A]
TOT[B]
TOT[C]
TOT[D]
TOT[E]
TOT[F]
TOT[G]

+
+
+
+
+
+
+

BRUTTO[A],
BRUTTO[B],
BRUTTO[C],
BRUTTO[D],
BRUTTO[E],
BRUTTO[F],
BRUTTO[G].

Zakres licznika paragonw na raporcie dobowym wynosi: 9999, zakresy sum sprzeday dobowej wynosz 99 999
999,99 .
Jeeli w wyniku wykonania sekwencji koczcej paragon wystpi bd nr 28 (przepenienie totalizerw), czyli
obrt dzienny w co najmniej jednej z grup podatkowych przekracza powyszy zakres naley wtedy wykona
raport dobowy i ponowi wykonanie transakcji.
Obliczenia realizowane w trakcie drukowania raportu dobowego
Wykonanie raportu dobowego jest zwizane z nastpujcymi operacjami:
- dzienna sprzeda BRUTTO w grupach podatkowych (wartoci TOT[A]...TOT[G] zostaje przepisana z
totalizerw do pamici fiskalnej (pamici trwaej PROM !),
- po dokonaniu tego zapisu lokacje totalizerw s zerowane,
- drukowany jest odpowiedni raport , zawierajcy kwoty NETTO sprzeday w grupach podatkowych,
kwoty nalenego podatku dla danych grup podatkowych, czn kwot nalenego podatku oraz czny
obrt.
Technika obliczania danych dla raportu dobowego ma due znaczenie, poniewa stanowi one podstaw do
rozliczenia podatku PTU w odrnieniu od danych o nalenym podatku zawartych na paragonach, ktre maj
charakter wycznie informacyjny.
Niezalenie od przyjtego sposobu obliczania PTU dla paragonw, z uwagi na zaokrglenia
numeryczne, podatek obliczany na podstawie dziennej sprzeday w grupach podatkowych
bdzie nieco si rni od uzyskanego ze zsumowania kwot PTU drukowanych na paragonach
w danym okresie.
Przyjty sposb naliczania podatku dla raportu dobowego zosta uzgodniony z Ministerstwem Finansw i jest
nastpujcy.
-

Kwoty sprzeday NETTO dla poszczeglnych grup podatkowych s wyliczane na podstawie kwot sprzeday
BRUTTO akumulowanych w TOTALIZERACH drukarki, zwikszanych z kad transakcj
(TOT[A]...TOT[G]) oraz tablicy aktualnych stawek PTU (STAWKA[A]..STAWKA[G]) :
R_NETTO[A] := TOT[A] / (1 + STAWKA[A] / 100),
............
R_NETTO[G] := TOT[G] / (1 + STAWKA[G] / 100).
(przyjto oznaczenia R_NETTO[A]...R_NETTO[G] dla odrnienia od analogicznych kwot wyliczanych dla
paragonu). Wyniki powyszych oblicze s zaokrglane do pozycji 0,01 z .

2.) Na raporcie s zawsze drukowane kwoty R_NETTO[A]..R_NETTO[G] dla aktywnych stawek PTU(nawet
jeeli odpowiednie kwoty s zerowe !).
S one opatrzone tytuem:
SPRZED. OPODATK. PTU x,
gdzie x = A..G identyfikuje grup podatkow.
Ponadto drukowana jest sprzeda w grupie zwolnionej od podatku, akumulowana w lokacji totalizera TOT[X] i
oznaczona tytuem:
SPRZED. ZWOLN. PTU x

www.posnet.com.pl

67

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


gdzie x oznaczenie literowe stawki zwolnionej.
3.) Obliczane s kwoty nalenego podatku PTU dla poszczeglnych grup A..G, wg wyrae:
R_PTU[A] := TOT[A] R_NETTO[A],
............
R_PTU[G] :=

TOT[G] R_NETTO[G].

(przyjto oznaczenia R_PTU[A]...R_PTU[G] dla odrnienia od analogicznych kwot wyliczanych dla


paragonu te kwoty ju nie wymagaj zaokrglenia).
4.) Na raporcie dobowym s drukowane zarwno niezerowe jak i zerowe kwoty
dotyczy
to
stawek
nieaktywnych,
zwolnionych
i

R_PTU[A]...R_PTU[G] (nie
rwnych
0,00%).

5.) Obliczana jest czna kwota nalenego podatku oraz czna sprzeda:
TOT_PTU := R_PTU[A] + .... + R_PTU[G],
R_TOTAL := TOT[A] + .... + TOT[G],
(te obliczenia s prowadzone z precyzj 14-cyfrow, std nadmiar arytmetyczny nie moe wystpi, nawet jeeli
wartoci lokacji totalizerw TOT[A]..TOT[G] s bliskie maksymalnym).
6.) Obie kwoty s drukowane na raporcie dobowym i opatrzone tytuami:
oraz

CZNA KWOTA PTU


CZNA NALENO.

Na raporcie dobowym jest rwnie drukowana liczba i kwota anulowanych paragonw a take liczba paragonw
fiskalnych wydrukowanych od ostatniego raportu dobowego. Licznik paragonw fiskalnych drukarki (lokacja
PAR_NUM
totalizerw)
zlicza
paragony
i jest zerowany w momencie drukowania raportu dobowego .
Uwaga !
Jeeli byo zerowanie RAM, to licznik paragonw zosta wyzerowany.
Aktualna liczba paragonw jest drukowana na raporcie pod tytuem:
ILO PARAGONW.
Uwaga !
Jeeli przed rozpoczciem sprzeday w danym dniu wykonywano zmiany w bazie towarowej drukarki to na
wydruku raportu dobowego pojawi si informacja o tych zmianach.
Obliczenia realizowane w trakcie drukowania raportu okresowego
Podstawowa cz raportu okresowego skada si z sekwencyjnego opisu poszczeglnych rekordw
(zapisw) w pamici fiskalnej. Zapisy te dotycz rnych sytuacji mog to by raporty dobowe, zmiany stawek
PTU, zerowania RAM i inne. Podstawowe znaczenie z punktu widzenia oblicze i rejestracji obrotu maj raporty
dobowe. Technika obliczeniowa dla poszczeglnych raportw dobowych drukowanych w obrbie raportu
okresowego jest identyczna jak opisana w poprzednim punkcie. Jest to oczywiste zwaywszy, e wykonanie raportu
dobowego polega midzy innymi na trwaym wpisaniu stanu totalizerw drukarki do pamici fiskalnej.
W trakcie raportu okresowego zapisy te s zatem odczytywane po kolei i wykonywane
s identyczne obliczenia jak dla raportu dobowego, z t rnic, e dane wejciowe (w powyszych wyraeniach
TOT[A]...TOT[G]) nie pochodz z totalizerw drukarki (jak w raporcie dobowym), lecz z pamici fiskalnej. Druga
istotna rnica dotyczy stawek PTU. Przed rozpoczciem drukowania raportu przeszukiwana jest pami fiskalna w
celu wyznaczenia pocztkowych stawek PTU (znajdowany jest ostatni zapis o zmianach stawek PTU przed dat
pocztkow raportu). Wyznaczone stawki s drukowane jako pierwsze, pod nagwkiem raportu okresowego .
Obliczenia danych dla pierwszego raportu dobowego, ujtego w raporcie okresowym zakadaj zapisane pocztkowo
wartoci stawek. Jeeli w trakcie drukowania raportu zostanie odkryty zapis o zmianie stawek , to zostan
wydrukowane nowe wartoci stawek PTU i w oparciu o nie bd prowadzone dalsze obliczenia dla raportw
dobowych .

www.posnet.com.pl

68

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Podczas drukowania raportu okresowego obliczane s na bieco sumy kwot BRUTTO
i kwot PTU dla caego raportu tj. po obliczeniu i wydrukowaniu danych dla kadego z odczytanych raportw
dobowych drukarka oblicza :
RO_BRUTTO[A] := RO_BRUTTO[A] + RD_BRUTTO[A],
.......
RO_BRUTTO[G] := RO_BRUTTO[G] + RD_BRUTTO[G],
oraz:
RO_PTU[A] := RO_PTU[A] + RD_PTU[A],
......
RO_PTU[G] := RO_PTU[G] + RD_PTU[G],
wreszcie:
RO_NETTO[A] : = RO_BRUTTO[A] RO_PTU[A],
...........

RO_NETTO[G] : = RO_BRUTTO[G] RO_PTU[G],


gdzie:
RD_BRUTTO[A]..RD_BRUTTO_[G],

RD_PTU[A]..RD_PTU[G]

s wartociami obliczonymi dla danego raportu dobowego zapisanego w pamici fiskalnej.


Ostatecznie obliczane s czne wartoci podatku i nalenoci:

RO_TOT_PTU := RO_PTU[A] + RO_PTU[B] + ....... + RO_PTU[G],


RO_TOTAL := RO_BRUTTO[A] + RO_BRUTTO[B] + ......+ RO_BRUTTO[G],
Wszystkie wyej wymienione obliczenia s prowadzone z precyzj 14-cyfrow, co daje maksymalny moliwy obrt
w okresie objtym raportem okresowym rwny: 999 999 999 999,99 z, nie naley zatem spodziewa si nadmiaru
arytmetycznego.
Uzyskane kwoty :
RO_NETTO[A]..RO_NETTO[G], RO_PTU[A]..RO_PTU[G], RD_TOT_PTU,RD_TOTAL
s zatem sumami odpowiednich pozycji z poszczeglnych raportw czstkowych. Zwrmy uwag, e nie moe by
inaczej, ze wzgldu na sygnalizowane wczeniej moliwe zmiany stawek PTU.
Z tego wzgldu (nawet jeeli stawki PTU w trakcie drukowania caego raportu s stae) kontrola obliczania kwot
nalenego podatku w oparciu o sumy RO_NETTO[A]..RO_NETTO[G]
moe wykaza nieznaczny bd obliczeniowy (zaokrglenia kwot czstkowych RO_NETTO[A]..RO_NETTO[G] !).
Kwoty:
RO_NETTO[A]..RO_NETTO[F], RO_PTU[A]..RO_PTU[G], RD_TOT_PTU, RD_TOTAL
s drukowane na kocu raportu, w jego podsumowaniu zatytuowanym:
CZNY RAPORT OKRESOWY.
Ponadto drukowana jest suma kwot sprzeday w grupach zwolnionych od podatku, akumulowanych w lokacji
totalizerw zaprogramowanych ze stawk zwolnion. Np.: jeli zaprogramowano stawki zwolnione F i G, to kwota
sumy sprzeday w tych stawkach oznaczona jest tytuem:
SPRZED. ZWOLN. PTU F, G
Jeeli w raportowanym okresie wystpia zmiana stawek PTU, to w cznym raporcie okresowym, przy
pozycjach KWOTA PTU x (gdzie x = A...G) zmienionej stawki pojawi si znak +.
UWAGA:
Powysze informacje dotycz wszystkich raportw okresowych (od ... do, miesicznego
i raportu rozliczeniowego).
Rozliczanie groszy

W przypadku gdy suma poszczeglnych totalizerw wynikajca z oblicze nie rwna si wysokoci paragonu po
udzieleniu rabatu/narzutu kwotowego, lub wysokoci rabatu/narzutu nie da si rozdzieli poszczeglnym totalizerom
przy wykorzystaniu arytmetyki, stosowany jest nastpujcy algorytm dystrybucji nadmiarowych groszy:
Rabat procentowy :

www.posnet.com.pl

69

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Algorytm opisany we wstpie.
Narzut procentowy:
Narzutx = (Xvatx * N)/100
Xvatx = Xvatx + Narzutx
Rabat kwotowy (jest konwertowany na rabat procentowy):
r = kwota rabatu
R = r / Xall rabat kwotowy skonwertowany na rabat procentowy
Xvatx = obliczany wg algorytmu opisanego we wstpie.
Narzut kwotowy (jest konwertowany na narzut procentowy):
n = kwota narzutu
N = n / Xall narzut kwotowy skonwertowany na narzut procentowy
Xvatx = (Xvatx + Xvatx * n / Xall) = (Xvatx + (Xvatx *N/100)
N = | Xall + n | | XvatA + XvatB + ... + XvatG |
lub
N = | Xall r | | XvatA + XvatB + ... + XvatG |

-ilo nadmiarowych groszy.


-ilo nadmiarowych groszy.

Gdzie:
Xall suma totalizerw przed udzieleniem rabatu/narzutu
Xvatx totalizer w danej stawce VAT przed rabatem/narzutem
Xvatx totalizer w danej stawce VAT po rabacie/narzucie
XvatA....XvatG stan poszczeglnych totalizerw po udzieleniu rabatu/narzutu
Rabatx kwota rabatu
n narzut
r rabat
N ilo nadmiarowych groszy

DLA N>0
(rabat/narzut wynikajcy z oblicze jest mniejszy ni faktyczny)
Rnica midzy rzeczywist wartoci rabatu/narzutu a sum rabatu w poszczeglnych totalizerach, rozdzielana jest
poczwszy od najwikszego totalizera, lub w przypadku gdy totalizery s rwne - w porzdku alfabetycznym
zaczynajc od A.
Zakadajc, e totalizery zostay odpowiednio posortowane, otrzymujemy siedem zmiennych o nastpujcych
priorytetach: Tot 1, Tot 2,....,Tot 7.
1) Udzielanie narzutu dla tego przypadku nadmiarowe grosze dodawane s do totalizerw:
Tot 1 + grosz
Tot 2 + grosz
..
Tot 7 + grosz
Ptla ta jest powtarzana do momentu gdy N=0 (wszystkie grosze zostan rozdzielone)
W przypadku gdy:
Tot [i] >= 2*Tot[i+1] to Tot [i] + 2 grosze
2) Udzielanie rabatu w tym przypadku nadmiarowe grosze s odejmowane od totalizerw
Tot 1 grosz
Tot 2 grosz
..
Tot 7 grosz
Ptla ta jest powtarzana do momentu gdy N=0 (wszystkie grosze zostan rozdzielone)
W przypadku gdy:
Tot [i] >= 2*Tot[i+1] to Tot [i] 2 grosze

www.posnet.com.pl

70

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


Dla N<0
(rabat/narzut wynikajcy z oblicze jest wikszy ni faktyczny)
Rnica midzy rzeczywistym rabatem/narzutem a wynikiem otrzymanym z oblicze korygowana jest w totalizerach,
poczwszy od tego ktry ma najmniejsz warto. W przypadku gdy totalizery s rwne, kolejno korekcji
totalizerw odbywa si w odwrconym porzdku alfabetycznym (zaczynajc od G).
Zakadajc, e totalizery zostay odpowiednio posortowane, otrzymujemy siedem zmiennych o nastpujcych
priorytetach: Tot 1, Tot 2,....,Tot 7.
1) Udzielanie narzutu w tym przypadku grosze odejmowane s od totalizerw:
Tot 1 grosz
Tot 2 grosz
..
Tot 7 grosz
Proces jest powtarzany dopki niedobr groszy nie zostanie zlikwidowany.
2) Udzielanie rabatu w tym przypadku grosze dodawane s do totalizerw:
Tot 1 + grosz
Tot 2 + grosz
..
Tot 7 + grosz
Proces jest powtarzany dopki niedobr groszy nie zostanie zlikwidowany.
UWAGI:
Korekcja totalizerw nie moe spowodowa zmniejszenia wartoci totalizera w przypadku kiedy udzielony by
narzut, ani powikszenia wartoci totalizera w przypadku kiedy udzielony zosta rabat.

www.posnet.com.pl

71

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

6. INFORMACJE DODATKOWE
6.1 Komunikaty zwizane z sekwencjami sterujcymi
W tej grupie s dwa rodzaje komunikatw: komunikat o bdzie sekwencji sterujcej (ktry moe by
zablokowany przy uyciu sekwencji LBSERM) oraz grupa komunikatw, ktre zatwierdzaj wykonanie operacji
inicjowanej przez sekwencje sterujce. Jako zasad przyjto konieczno potwierdzenia z klawiatury drukarki tych
operacji, ktre powoduj zapis do pamici fiskalnej tj. fiskalizacji, zmiany stawek PTU, a take raportu dobowego.
Pozytywne potwierdzenie operacji uzyskujemy przy uyciu klawisza TAK, natomiast nacinicie klawisza NIE
powoduje zignorowanie sekwencji sterujcej.
Komunikat:
'Bd rozkazu: "cc" '
'Kod bdu :
xx '
Przyczyna:
Podczas analizy i/ lub realizacji sekwencji sterujcej wykryto bd. Znaki 'cc' identyfikuj rozkaz (oglna
posta syntaktyki komendy jest ESC P P1;P2;...Pn cc <napis> ESC \ , identyfikator rozkazu 'cc' skada si z
dwch znakw, z ktrych drugi jest liter, np. $f, #k ...). Kod bdu jest wywietlany w postaci dwch cyfr
'xx'. Kody bdw moliwe dla poszczeglnych sekwencji wyszczeglniono w opisie jzyka programowania
urzdzenia. Bd moe pojawi si w wyniku bdw transmisji, bdu aplikacji, wyczenia/ wczenia
zasilania urzdzenia w trakcie dziaania aplikacji, niewaciwego stanu urzdzenia (np. brak inicjalizacji
zegara RTC) lub bdu wykonania rozkazu (np. bdu ukadu elektronicznego). Generalnie, czste
powtarzanie si bdw wykonania rozkazw w trakcie eksploatacji systemu moe wymaga konsultacji
problemu zarwno z serwisem jak i producentem/ dystrybutorem oprogramowania systemowego
i aplikacyjnego. Wykaz moliwych parametrw wywietlanych w komunikatach o bdach rozkazw zosta
podany w rozdziale na str. 72.
Sposb usunicia:
Przetwarzanie danych z interfejsu jest wstrzymane a do nacinicia klawisza NIE. Po naciniciu klawisza
drukarka wznawia pobieranie znakw z bufora interfejsu, co moe w pewnych przypadkach powodowa
nastpne komunikaty o bdach (np. bd w trakcie realizacji sekwencji LBTRSHDR - nagwek transakcji
powoduje, e drukarka nie wejdzie do trybu transakcji i bdzie zgasza kolejne bdy odbierajc sekwencj
LBTRSLN - pozycje transakcji, a take zgosi bd sekwencji koczcej LBTREXIT).
UWAGA:
Po wczeniu zasilania urzdzenia bdy wykonania rozkazw daj wyej wymienione reakcje na
wywietlaczu. Aplikacja moe zablokowa wywietlanie komunikatw wysyajc sekwencje LBSERM i
realizujc wasn obsug bdw bazujc na odczycie statusu drukarki i kodu bdu przez interfejs RS232 drukarki.
Komunikat:
' Drukowa raport '
'
dobowy ?
'
Przyczyna:
Zostaa odebrana sekwencja LBDAYREP (inicjalizacja raportu dobowego).
Sposb usunicia:
Klawisz TAK powoduje wykonanie raportu (po zatwierdzeniu poprawnoci DATY), klawisz NIE powoduje
zawieszenie wykonania operacji, dajc rwnoczenie komunikat o bdzie sekwencji.
Komunikat:
'Zapisa stawki PTU ? '
'
'
Przyczyna:
Zostaa odebrana sekwencja LBSETPTU (zmiana stawek PTU).
Sposb usunicia:
Klawisz TAK powoduje zapis nowych wartoci stawek PTU (po zatwierdzeniu poprawnoci DATY) do
pamici fiskalnej oraz wydruk krtkiego raportu na drukarce paragonowej, klawisz NIE powoduje
zignorowanie sekwencji bez zgoszenia bdu rozkazu.

www.posnet.com.pl

72

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

6.2 Kody sekwencji


Litery ktre mog pojawi si w pierwszej linii wywietlacza operatora po znaku $ lub # odnoszce si do sekwencji,
ktra spowodowaa bd przedstawiono w tabeli poniej. Dodatkowo w tabeli podano numer strony, na ktrej
znajduje si dokadny opis Kodu bdu wywietlanego w drugiej linii wywietlacza.

$
c
b
d
e
f
g
h
l
L
n
o
p
r
x
y
Y
w
z

Sekwencja
ustawianie zegara
formy patnoci
sterowanie wywietlaczem/ szuflad
anulowanie transakcji/ akceptacja transakcji
programowanie nagwka/ fiskalizacja
pytanie o moliwo sprzeday towaru
pocztek transakcji
definiowanie pozycji transakcji (linii paragonu)

b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
v
Z

11
27
12
23/ 23
14
49
17
18
27
26
15
13
14
25
29
27
55
34

rabat/narzut do grupy towarw w danej stawce PTU

rabat/narzut w trakcie transakcji


progr. daty przegldu/wprow. kodu autoryzac.
zmiana stawek PTU
wybr metody rozliczania rabatu
zakoczenie transakcji z formami patnoci (1)
zakoczenie transakcji z formami patnoci (2)
rabat/narzut do paragonu od podsumy
dodatkowe sekwencje niefiskalne
dodatkowe linie na paragonie po logo fiskalnym

#
a

Szukaj na stronie:

Sekwencja

Szukaj na stronie:

wczenie/ wyczenie drukowania dokumentw


niefiskalnych na oryginale
kontrola bazy danych
odczyt zegara drukarki
wypata z kasy
obsuga bdw
raport kasy (z aplikacji)
pokwitowanie sprzeday
transakcja uznania (zwrot towaru)
wpata do kasy
raport kasy
drukowanie raportu kasy/ zmiany
wysuw papieru o 1..20 linii
sekwencja raportu zmiany z aplikacji
uwzgldniajcego KREDYTY, PRZELEWY ...
danie wysania kodu bdu ostatniego rozkazu
drukowanie raportu okresowego
logowanie kasjera
wylogowanie kasjera
drukowanie raportu dobowego
odelij informacje kasowe
stan kasy
typ i wersja oprogramowania
odpowied drukarki informujca o poprawnoci
wykonania sekwencji

www.posnet.com.pl

73

52
48
49
43
15
36
40
41
43
52
44
15
38
51
46
24
45
47
50
43
51
16

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02


6.3 Bdy sekwencji
0

Rozkaz nie rozpoznany !

1
2
3
4
5
6

Nie zainicjalizowany zegar RTC


Bd bajtu kontrolnego
Za ilo parametrw
Bd danych
Bd wykonania (zapisu) do zegara RTC lub bd odczytu zegara RTC
Bd odczytu totalizerw, bd operacji z pamici fiskaln
Data wczeniejsza od daty ostatniego zapisu w pamici fiskalnej (wykonanie raportu dobowego lub
7
programowanie stawek PTU niemoliwe !)
8
Bd operacji niezerowe totalizery !
Bd operacji I/O (np. nie usunita zwora serwisowa)
9
Bd operacji I/O (nie przesana baza towarowa z aplikacji)
Za ilo wartoci PTU, bd liczby lub prba zdefiniowania takich samych stawek, jakie s w pamici
11 fiskalnej drukarki

12
13
14
16
17
18
19

20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

- Prba przesania nagwka z numerem NIP


- Bdny nagwek, zbyt dugi lub pusty (zawiera np. same spacje).
- Bdny format NIP (przy fiskalizacji).
- Brak nagwka przy programowaniu stawek PTU
Prba fiskalizacji urzdzenia w trybie fiskalnym
Bdny format NIP przy prbie fiskalizacji
Bdna nazwa (pusta lub za duga)
Bdne oznaczenie iloci (puste lub za dugie)
Bdne oznaczenie stawki PTU (lub brak), prba sprzeday
w stawce nieaktywnej lub prba sprzeday towaru zablokowanego
Bd wartoci CENA (syntaktyka, zakres, brak lub zakoczenie transakcji z rabatem/ narzutem
przekraczajcym sprzeda minimaln/ maksymaln)
- Bd wartoci BRUTTO lub RABAT (syntaktyka, zakres lub brak),
- Bd niespenienia warunku ilo x cena = brutto
- Przy rabacie kwotowym uwzgldnienie rabatu nie moe prowadzi do ujemnego wyniku,
niespenienie powyszego daje bd #20
Sekwencja odebrana przez drukark przy wyczonym trybie transakcji,
Bd operacji STORNO (np. prba wykonania jej w trybie blokowym OFF-LINE, lub
w wyniku wykonania tej operacji suma w danej grupie podatkowej wychodzi ujemna) lub bd operacji z
rabatem np. warto towaru po uwzgldnieniu rabatu wychodzi ujemna. Wystpuje rwnie przy storno
opakowania
Bdna liczba rekordw (linii) paragonu
Przepenienie bufora drukarki
Bdny kod terminala/ kasjera (za dugo lub format) lub bdna tre dodatkowych linii
Bd kwoty 'WPATA' (syntaktyka; jeeli rnica WPATA-TOTAL <0 to napisy gotwka, reszta nie
bd drukowane !), PRZYJCIE przesana w LBTRXEND nie jest zgodna z sum wartoci otrzymanych
w sekwencjach LBDSPDEP
Bdna suma cakowita TOTAL lub bdna kwota RABAT
Przepenienie totalizera (max. 100.000.000,00 dla jednej grupy podatkowej)
danie zakoczenia (pozytywnego !) trybu transakcji, w momencie kiedy nie zosta on jeszcze wczony
Bd kwoty WPATA (syntaktyka)
Nadmiar dodawania (przekroczenie zakresu gotwki w kasie)
Warto po odjciu staje si ujemna (przyjmuje si wwczas stan zerowy kasy !)
Bd napisu <zmiana> lub <kasjer> lub <numer> lub <kaucja> (np. za dugi lub zawierajcy bdne znaki)
Bd jednej z kwot lub pozostaych napisw
Zerowy stan totalizerw
Ju istnieje zapis o tej dacie
Operacja przerwana z klawiatury (przed rozpoczciem drukowania)
Bd nazwy
Bd oznaczenia PTU

www.posnet.com.pl

74

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

40
41
42
43
44
45
46
47
48
49
50
51
82
83
90
91
92
93
94
95
96
97
98

1. Brak nagwka w pamici RAM


2. Ten bd pojawia si take w przypadku wystpienia bdu blokujcego tryb fiskalny
Bd napisu <numer_kasy> (za dugi lub zawierajcy bdne znaki)
Bd napisu <numer_kasjera>
Bd napisu <numer_par>
Bd napisu <kontrahent>
Bd napisu <terminal>
Bd napisu <nazwa_karty>
Bd napisu <numer_karty>
Bd napisu <data_m>
Bd napisu <data_r>
Bd napisu <kod_autoryz>
Bd wartoci <kwota>
1. Przekroczna liczba programowania kodw autoryzacyjnych przez RS
2. Niedozwolony rozkaz w sekwencji $z
Za warto kaucji przesanej w $z
Operacja tylko z kaucjami nie mona wysa towarw
Bya wysana forma patnoci nie mona wysa towarw
Przepenienie bazy towarowej
Bd anulowania formy patnoci
Przekroczenie maksymalnej kwoty sprzeday
Prba ponownego rozpoczcia transakcji (drukarka w trybie transakcji)
Przekroczony limit czasu na wydruk paragonu (20 minut)
Blokada sprzeday z powodu sabego akumulatora
Blokada sprzeday z powodu zaoonej zwory serwisowej

www.posnet.com.pl

75

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

Instrukcja programisty drukarki fiskalnej Thermal 1.02

6.4 HISTORIA ZMIAN.


Zmiany w wersjach:
1.01
30.04.2002
- dodanie opisu sekwencji [LBSRVINFO]0$o i [LBAUTH] 1$o w rozdziale 3.2
- dodanie opisu sekwencji [LBFSTRQ] #s z parametrem 22 w rozdziale 3.7
1.02
09.05.2002
- dodanie rozdziau 3.9
- poprawki w opisach do sekwencji: LBFSTRS w rozdziale 2, LBTRXEND1 w rozdziale 3.5
1.03
15.05.2002
- zastpienie rozdziau 3.9 rozdziaem 5. Obliczenia realizowane przez drukark.
1.04
10.06.2002
- dodanie opisu sekwencji LBSETRAB
- poprawki w rozdziale 5
1.05
25.06.2002
- poprawki w rozdziale 5
- poprawki w rozdziale 6
1.06
10.07.2002
- uzupeniona tabela w rozdziale 6.2
- uzupenione informacje o parametrze Pc w rozkazie $y
- aktualizacja opisu do rozkazu LBDBREPRS i LBFSTRQ
- aktualizacja informacji o formacie kwot i iloci w rozdziale 2
- dodatkowe uwagi dla rozkazu $z
1.07
18.07.2002
- poprawka w przykadowym paragonie (ilustracja do sekwencji LBPODSUM)
- uwaga do parametru Po w sekwencji LBTRSLN
- uzupenienie tabeli w rozdziale 6.2
1.08
19.02.2003
- poprawka w iloci znakw pola kasjer i nr kasy
- dodanie opisu sekwencji #z (zwrot towaru)

www.posnet.com.pl

76

drukarki@posnet.com.pl

POSNET Systemy Kas Fiskalnych

You might also like