-
Notifications
You must be signed in to change notification settings - Fork 13
Datecs protocol (Model A)
ОПИСАНИЕ НА ПРОГРАМНИЯ ИНТЕРФЕЙС КЪМ ФИСКАЛЕН ПРИНТЕР
DATECS FP-800 / FP-2000 / FP-650 / SK1-21F / SK1-31F/ FMP-10 / FP-700
Версия 1.00BG
Фискалното устройство работи под управлението на приложна програма, комуникирайки с нея чрез асинхронен сериен канал за връзка RS232 или по друг интерфейс. То е предназначено да изпълнява предварително определен набор от команди, логически подредени в зависимост от вида на операциите, които трябва да се изпълнят. Приложната програма няма директен достъп до ресурсите на фискалното устройство, но може да извлича данни, свързани със състоянието на фискалното устройство и фискалната памет.
Фискалното устройство изпълнява следните видове операции:
- Запомняне на индивидуалния номер на фискалното устройство и номера на фискалната памет.
- Запомняне на фискалните параметри, като ЕИК, номер по ЗДДС на данъчно задълженото лице, дата на въвеждане в експлоатация и др.
- Запомняне на информация за собственика, като адрес, име и др.
- Запомняне на стойностите на продажбите и генериране на клиентски бон.
- Запомняне на дневния оборот във фискалната памет и генериране на дневен финансов отчет.
- Запомняне на текста от фискалните бонове и дневните отчети в КЛЕН и справки от КЛЕН при заявка.
- Генериране на отчети за реализираните продажби и съдържанието на фискалната памет.
- Отпечатване на отчети, генерирани от приложението.
- Извеждане на данни към приложната програма.
- Изпращане на данни до НАП по GPRS модем.
Всяка продажба е причислена към определена данъчна група (ДДС), която определя данъчната ставка, приложена към базовата цена за формиране цената на продажбата. Фискалният принтер може да работи с най-много 8 данъчни групи, обозначени обикновено с първите букви от азбуката на езика за съответната страна, за която е настроен фискалния принтер (ФП), за България – ‘А’, ‘Б’, ‘В’, ‘Г’, ‘Д’, ‘Е’, ‘Ж’ и ‘З’.
За всяка от данъчните групи се задава данъчна ставка (в проценти), която трябва да бъде число не по- голямо от 99.00, с не повече от два десетични знака. Част от осемте стандартни данъчни групи могат да се забраняват, чрез установяване на Enabled_taxes в команда 83 (53h).
Командите за продажба приемат като параметър главните букви ‘А’, ‘Б’, ‘В’, ‘Г’, ‘Д’, ‘Е’, ‘Ж’ и ‘З’ (в DOS-овска или 1251 кодова таблица) или съответно началните букви от латинската азбука ‘A’, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’, ‘G’ и ‘H’. Същото се отнася и за всички команди, очакващи данъчна група като входен параметър (например програмиране на артикул в команда 107). ЛАТИНИЦАТА Е ДОПУСТИМА САМО КАТО ВХОДЕН ПАРАМЕТЪР! Навсякъде при печат данъчните групи са на кирилица!
Нетната стойност на продажбата се изчислява по формулата:
Сума_нето = ROUND(Оборот/(1 + Ставка))
Функцията ROUND извършва стандартно закръгляне до най-малката използвана единица валута (стотинки или левове при работа с цели числа).
Стойността на платимият данък се изчислява по формулата:
Данък = Оборот – Сума_нето
Фискалното устройство може да работи в два режима.
- Учебен режим. Устройството не е фискализирано. Всички данни, необходими за нормалната му работа са въведени и записани във фискалната памет с изключение на ЕИК на собственика и данъчните ставки. Могат да се отварят и издават клиентски бонове, но винаги върху тях се изписва, „нефискален бон”. Могат да се извършват дневни финансови отчети с нулиране, но те не се записват във фискалната памет. Отпечатаната информация не се записва в КЛЕН.
- Нормален режим. Устройството е фискализирано. ЕИК на собственика е въведен и записан във фискалната памет. Прилагат се всички фискални правила. Направена е регистрация в НАП по модема, получени са и са записани съответните номера.
Фискалният принтер може да се намира в няколко състояния. Преминаването му от едно състояние в друго не винаги е възможно. Управлението на принтера, както и преходите между състоянията, когато това е възможно, се осъществяват от приложната програма в Host (PC), която трябва да бъде строго съобразена с използвания протокол. При неправилно прилагане на протокола е възможно принтера да попадне в нежелано състояние или да бъде пропуснато преминаването му през дадено състояние, което съответно води до попадане на принтера в състоянието ГРЕШКА .
В това състояние трябва да се установят датата и часът, да се програмира номера на фискалната памет, индивидуалният номер на устройството и кодът на държавата. ТЕЗИ ОПЕРАЦИИ СЕ ИЗВЪРШВАТ ПРЕДИ ПРЕДАВАНЕ НА КЛИЕНТА САМО ОТ ПРОИЗВОДИТЕЛЯ!
Трябва да се изпълнят следните команди в последователността, в която са дадени: 61 (3Dh) и 91 (5Bh).
В това състояние трябва:
- Да се формарира КЛЕН с команда 134 (86h).
- Да се зададат името на валутата, броя десетични знаци и броя и размера на данъчните ставки с команда 83 (53h).
След като се извършат тези операции фискалният принтер е готов да се предаде на клиента, който ще го ползва, т.е. в това състояние устройствата се държат в склада на производителя.
В това състояние трябва да се зададат „header и „footer, които всъщност са началото и края на всеки бон. В „header-а обикновено се записва информация за собственика (име на фирмата, адрес и др.), а във „footer-a някакъв рекламен текст. Трябва да се изпълни командата 43 (2Bh) толкова пъти колкото редове се установяват.
Може да се направят допълнителни настройки като програмиране на графично лого, плътност на печат, настройки на серийния порт и други.
В това състояние ФП се намира докато не се фискализира. Възможно е издаването на бонове, като трябва да се има предвид, че дори и клиентските бонове в този режим се маркират като нефискални. Възможно е и извършването на дневен финансов отчет с нулиране (Z-отчет), но не се прави запис във фискалната памет. Зададен е ЕИК, но той не е записан във фискалната памет и може да се променя. Отчетите на фискалната памет не се изпълняват. Нулиранията на паметта, ако има такива, не предизвикват запис във фискалната памет. Часовникът може да се сверява произволно. В учебен режим фискалният принтер НЕ МОЖЕ ДА БЪДЕ ИЗПОЛЗУВАН в търговски обекти – предназначението му е само за обучение.
В това състояние могат да се издават клиентски финансови бонове, маркирани като фискални. При извършване на дневен финансов отчет с нулиране (Z-отчет) се прави запис във фискалната памет. Сверяването на датата е допустимо само напред спрямо последния запис във фискалната памет. ЕИК се записва във ФП и повече не може да се променя. НЕ Е ВЪЗМОЖНО излизането на принтера от фискален режим без смяна на фискалната памет.
Преди фискализация трябва да се установи ЕИК на притежателя на устройството, ако вече не е зададен (команда 98 (62h), и после да се изпълни командата за 72 (48h). При това принтерът преминава във фискален режим, но все още не е готов за работа и ще отхвърли опита за печат на фискални бонове. За нормална работа принтерът трябва да се регистрира в НАП с предвидената за това програма.
В това състояние фискалният принтер попада в случай, че е установена сериозна техническа или логическа грешка при работа на устройството, както и в случай на неизправност на модула фискална памет, КЛЕН или данъчния терминал. В този режим след включване на принтера се печата с удебелен шрифт „ФАТАЛНА ГРЕШКА: 4” при грешка във фискалната памет или описателно съобщение за проблема с някое от другите периферни устройства в принтера. Принтерът отказва да изпълнява команди за отваряне на фискални бонове, и такива, свързани със запис във фискалната памет. Могат да се изпълняват само диагностични команди и периодични отчети.
Необходимо е зануляване на RAM и поставянето на нов модул фискална памет, КЛЕН или данъчен терминал в зависимост от повредата.
ТЕЗИ ОПЕРАЦИИ Е ЗАДЪЛЖИТЕЛНО ДА БЪДАТ ИЗВЪРШВАНИ ОТ УПЪЛНОМОЩЕН ОТ БЪЛГАРСКИ ИНСТИТУТ ПО МЕТРОЛОГИЯ СЕРВИЗ, ПРИТЕЖАВАЩ УДОСТОВЕРЕНИЕ ЗА СЕРВИЗИРАНЕ НА СЪОТВЕТНИЯ МОДЕЛ ФИСКАЛНО УСТРОЙСТВО, С КОЙТО ЗАДЪЛЖЕНОТО ЛИЦЕ ИМА СКЛЮЧЕН ДОГОВОР ЗА СЕРВИЗНО ОБСЛУЖВАНЕ.
Събитията довеждащи до това състояние са:
- Невъзможно извършване на верен запис във фискалната памет.
- Невалидна контролна сума на ЕИК, индивидуален номер на фискалното устройство, номер на фискалната памет или някой от записите с данъчни ставки.
- Неразпознаване формата на модула фискална памет.
- Ако при проверката на фискалната памет след включване на принтера се намерят повече от три невалидни контролни суми на фискален запис от дневен финансов отчет. Фискалните записи с невалидна контролна сума се разпечатват при включването му (ако не е в състояние на отворен бон), както и на съответното място в отчетите на фискалната памет.
- Липсваща комуникация с данъчния терминал или „чужд” данъчен терминал – с различен от записания във фискалната памет сериен номер.
- Липсваща комуникация с КЛЕН или КЛЕН от друг принтер, който позволява да бъде само четен.
- Запълнен КЛЕН (малко вероятно, предвид размера на КЛЕН).
Ако по време на работата си принтерът установи неизправност, той може да блокира изпълнението на някои от командите. Състоянието на принтера се показва от светодиода на лицевия панел. Възможните сигнали на светодиода са описани по-долу:
- Зелена индикация:
- Свети постояннно:
Принтерът е в готовност за изпълнение на команди. - Мига равномерно около 2 пъти в секунда:
Принтерът се инициализира и проверява работоспособността си или изпълнява продължителна команда. Трябва да се изчака. - Не свети:
Периферията е в нормално работно състояние. - Свети постоянно:
Няма хартия или е отворен капак. Трябва да се намери и отстрани причината за грешката. - Мига равномерно около 2 пъти в секунда:
Печатащата глава е прегряла. Трябва да се изчака – след изстиването и печатът ще продължи автоматично. - Мига неравномерно - 2 пъти и след това пауза.
Няма комуникация с КЛЕН. Може да се изключи и включи принтерът за ресет на КЛЕН. Ако това не помогне, необходима е сервизна намеса.
- Свети постояннно:
Принтерът използува 16 бита от флаш-паметта като конфигурационни ключета, които задават режима на устройството. Промяната на стойността им става с команда 41 (29h), като трябва да бъдат зададени първите 8 или всичките 16. Функциите им са описани в следната таблица:
Ключе | Изключено | Включено |
---|---|---|
1 | Нормален режим на дисплея | Режим „Прозрачен дисплей” |
2 | Работа със стандартен дисплей на ДАТЕКС | Работа с дисплей с кодова таблица 1251 |
3* | Печат на 3-инчова хартиена лента | Печат на тясна хартия |
4 | Няма автоматично отрязване | Автоматично отрязване на хартията след бон |
5 | Кирилицата е по кодова таблица 1251 | Кирилицата е по DOS-овска таблица (856) |
6 | Задава скоростта на предаване на серийния порт | |
7 | Задава скоростта на предаване на серийния порт | |
8 | Задава скоростта на предаване на серийния порт | |
9** | Не се използва | Разрешава полурязане |
10*** | Не се използва | Разрешава работата на презентер |
11 | Не се използва | |
12 | 115200 bps комуникация с модема | 230400 bps комуникация с модема |
13 | Не се използва | |
14 | Не се използва | |
15 | Не се използва | |
16 | Не се използва |
Избор на скорост на предаване на серийния порт
Ключе 6 | Ключе 7 | Ключе 8 | Скорост (bps |
---|---|---|---|
ИЗКЛ | ИЗКЛ | ИЗКЛ | 1200 |
ВКЛ | ИЗКЛ | ИЗКЛ | 2400 |
ИЗКЛ | ВКЛ | ИЗКЛ | 4800 |
ВКЛ | ВКЛ | ИЗКЛ | 9600 |
ИЗКЛ | ИЗКЛ | ВКЛ | 19200 |
ВКЛ | ИЗКЛ | ВКЛ | 38400 |
ИЗКЛ | ВКЛ | ВКЛ | 57600 |
ВКЛ | ВКЛ | ВКЛ | 115200 |
*По подразбиране принтерите не поддържащи работа с 3 инчова хартия не приемат ключе 3 като валидна настройка. (ключе 3 ще остане в изключено състояние).
**Разрешава полурязане и автоматично спира работата на презентера дори да е разрешен.
***Разрешава работата на презентер при принтери SK1-21F и SK1-31F
Текущото състояние на устройството е кодирано в поле с дължина 6 байта, което се предава в рамката на всяко съобщение от фискалния принтер. Следва описание на всеки байт от това поле:
Байт 0: Общо предназначение | ||
0.7 | Резервиран – винаги е 1. | |
0.6 | Отворен е капакът на принтера. | |
0.5 | Обща грешка - това е OR на всички грешки, маркирани с ‘#’. | |
0.4 | # | Механизмът на печатащото устройство има неизправност. |
0.3 | Не е свързан клиентски дисплей. | |
0.2 | Часовникът не е установен. | |
0.1 | # | Кодът на получената команда е невалиден. |
0.0 | # | Получените данни имат синтактична грешка. |
Байт 1: Общо предназначение | ||
1.7 | Резервиран – винаги е 1. | |
1.6 | Вграденият данъчен терминал не отговаря. | |
1.5 | Отворен е служебен бон за печат на завъртян на 90 градуса текст. | |
1.4 | Отворен сторно бон. | |
1.3 | # | Слаба батерия (Часовникът за реално време е в състояние RESET). |
1.2 | # | Извършено е зануляване на оперативната памет. |
1.1 | # | Изпълнението на командата не е позволено в текущия фискален режим. |
1.0 | При изпълнение на командата се е получило препълване на някои полета от сумите. Статус 1.1 също ще се установи и командата няма да предизвика промяна на данните в принтера. | |
Байт 2: Общо предназначение | ||
2.7 | Резервиран – винаги е 1. | |
2.6 | Много близък край на КЛЕН (допускат се само определени бонове). | |
2.5 | Отворен е служебен бон. | |
2.4 | Близък край на КЛЕН (по-малко от 10 MB от КЛЕН свободни). | |
2.3 | Отворен е фискален бон. | |
2.2 | Край на КЛЕН (по-малко от 1 MB от КЛЕН свободни). | |
2.1 | Останала е малко хартия. | |
2.0 | # | Свършила е хартията. Ако се вдигне този флаг по време на команда, свързана с печат, то командата е отхвърлена и не е променила състоянието на принтера. |
Байт 3: За състояние на конфигурационните ключета | ||
3.7 | Резервиран – винаги е 1. | |
3.6 | Състояние на Sw7. | |
3.5 | Състояние на Sw6. | |
3.4 | Състояние на Sw5. | |
3.3 | Състояние на Sw4. | |
3.2 | Състояние на Sw3. | |
3.1 | Състояние на Sw2. | |
3.0 | Състояние на Sw1. | |
Байт 4: За фискалната памет | ||
4.7 | Резервиран – винаги е 1. | |
4.6 | Печатащата глава е прегряла. | |
4.5 | OR на всички грешки, маркирани с ‘*’ от байтове 4 и 5. | |
4.4 | * | Фискалната памет е пълна. |
4.3 | Има място за по-малко от 50 записа във ФП. | |
4.2 | Зададени са индивидуален номер на принтера и номер на фискалната памет. | |
4.1 | Зададен е ЕИК по БУЛСТАТ. | |
4.0 | * | Има грешка при запис във фискалната памет. |
Байт 5: За фискалната памет | ||
5.7 | Резервиран – винаги е 1. | |
5.6 | Не се използува. | |
5.5 | Грешка при четене от фискалната памет. | |
5.4 | Зададени са поне веднъж данъчните ставки. | |
5.3 | Принтерът е във фискален режим. | |
5.2 | * | Последният запис във фискалната памет не е успешен. |
5.1 | Фискалната памет е форматирана. | |
5.0 | * | Фискалната памет е установена в режим READONLY (заключена). |
Във всеки момент състоянието на принтера е отразено в неговите байтове на състоянието. Когато принтера се включи след като е спирало захранването, приложната програма, чрез командите 76 (4Ah) и 103 (67h) трябва да се осведоми за състоянието на принтера.
Приложната програма трябва да вземе решение за по нататъшното поведение в зависимост от състоянието на принтера. Гарантира се, че фискалната памет няма да се повреди от спиране на захранването, както и че натрупаните суми в оперативната памет ще бъдат валидни. Ако е отпаднало захранването по време на печат, то след включването на принтера той ще отпечата един ред „СПАД НАПРЕЖЕНИЕ” с широки букви и ще довърши печата.
Бонът първо се отваря, след това се отпечатва текст и накрая се затваря.
Използват се командите 38 (26h), неограничен брой пъти 42 (2Аh) и накрая 39 (27h). Разрешено е и печатането на баркод с команда 84 (54h).
Принтерът поддържа и печат на служебни бонове със завъртян на 90 градуса текст и таблици. Използват се команди 122 (7Ah), 123 (7Bh), 124 (7Ch) и евентуално 84 (54h) за баркодове.
Първо се отваря фискален бон, регистрират се продажбите, извършва се плащането и накрая бона се приключва.
Използват се командите 48 (30h), 49 (31h), 51 (33h), 52 (34h), 53 (35h), 54 (36h), 58 (3Ah) и 56 (38h). Разрешено е и печатането на баркод с команда 84 (54h).
Накрая на деня се извършва дневен финансов отчет с нулиране (Z-отчет), за да се запише информацията във фискалната памет. Това става с командата 69 (45h).
Принтерът запомня всеки ред от фискалните бонове, служебните бонове, документите със сервизна информация при инициализация, X- и Z-отчетите в контролната лента на електронен носител (КЛЕН). КЛЕН е с обем минимум 2 GB и при нормална работа би трябвало да поеме всички данни от работата на принтера до запълване на фискалната памет При повреда или при запълване (при много активна работа), КЛЕН може да се смени с празна, като старата се съхранява по определения в Наредба Н-18 ред и срокове.
От КЛЕН могат да се правят следните справки:
- Печат на копие от документ по номер, дата и час или пореден номер за даден Z-отчет.
- Изтегляне на документ/документи по серийния порт в текстов вид и максимално близко до оригиналното форматиране върху хартията. Също може да е по номер, дата и час или пореден номер във даден Z-отчет.
- Информация за пълния размер на КЛЕН и на запълнената част в байтове, номерата на първия и последния документ в него, както и на първия и последния Z-отчети.
- Проверка валидността на SHA-1 контролната сума за документите от цял Z-отчет посредством прякото и изчисляване от принтера.
- Сравняване на SHA-1 контролните суми за един или повече Z-отчети с тези, записани във фискалната памет и отпечатване на отчет с резултата от проверката.
Два флага от статус-байтовете предупреждават за близък край на КЛЕН (10 MB свободни) и край на КЛЕН (1 MB свободни). Ако е вдигнат флагът „Край на КЛЕН”, следните команди са забранени: 38 (Отваряне на служебен бон), 42 (Свободен текст в служебен бон), 48 (Отваряне на фискален бон), 49 (Регистриране на продажба), 52 (Регистриране и показване на дисплея), 54 (Печат на фискален текст), 58 (Продажба на артикул) и 84 (Печат на баркод).
Отчетите се генерират изцяло от фискалния принтер при получаване на съответната команда от PC. При тези отчети не е възможно потребителската програма да прави каквито и да е промени във вида на отчетите, т.е. те изглеждат така, както са предефинирани във ФП. Предизвикват се с командите:
50 (32h) - отчет промени на данъчните ставки и десетичните знаци.
69 (45h) - дневен финансов отчет с или без нулиране.
108 (6Ch) - дневен финансов отчет с или без нулиране и с разпечатка на сумите по артикули.
117 (75h) - дневен финансов отчет с или без нулиране и с разпечатка на сумите по департаменти.
118 (76h) - дневен финансов отчет с или без нулиране и с разпечатка на артикули и департаменти.
79 (4Fh) / 95 (5Fh) - съкратен отчет на фискалната памет от дата до дата / от номер до номер на
фискален блок.
73 (49h) / 94 (5Eh) - пълен отчет на фискалната памет от дата до дата / от номер до номер на
фискален блок.
119 (77h) - Печат на документи от КЛЕН.
Фискалният принтер изпълнява командите изпратени му от Host и връща съобщение, зависещо от
резултата.
Фискалният принтер не може да инициира комуникация. Само съобщения, които са резултати от
изпълнението на получени команди се изпращат до Host.
Съобщенията в протокола са или пакетирани съобщения или единични байтове.
Фискалният принтер поддържа комуникация по RS232 при скорости на обмен 1200, 2400, 4800, 9600,
19200, 38400, 57600 и 115200 b/s, 8N1. Скоростта се задава от конфигурационни битове 5, 6 и 7. Поддържа се
и LAN връзка, параметрите на която се задават с команда 36 (24h).
Host изпраща пакетирано съобщение, съдържащо командата към принтера.
ФП извършва исканата операция и отговаря с пакетирано съобщение отговор.
Host трябва да чака отговора от принтера преди да изпрати друго съобщение.
Протоколът използва непакетирани кодове с дължина един байт, за обработката на необходими паузи и
грешни състояния.
При нормална работа на всички съобщения от Host, Slave отговаря не по-късно от 60 ms или с пакетирано съобщение или с еднобайтов код. Host трябва да има 500 ms time-out за получаване на отговор от Slave. Ако за това време не се получи никакъв отговор, той трябва да предаде съобщението отново със същия пореден номер и същата команда. При няколко неуспешни опита, Host трябва да индицира, че няма връзка с фискалния принтер или има хардуерна грешка.
Непакетираните съобщения се състоят от един байт и те са:
- а) NAK 15H
Този код се изпраща от Slave когато открие грешка в контролната сума или формата на полученото съобщение. Когато Host получи NAK, той трябва да предаде отново съобщение със същия пореден номер
- б) SYN 16H
Този код се изпраща от Slave, когато получи команда, за която е необходимо по-дълго време за изпълнение. SYN се изпраща на всеки 60 ms, докато не е готово пакетираното съобщение за отговор
- а) Host към принтер. (Send)
<01><LEN><SEQ><CMD><DATA><05><BCC><03>
- б) Принтер към Host. (Receive)
<01><LEN><SEQ><CMD><DATA><04><STATUS><05><BCC><03>
Където:
<01> |
Preamble дължина: 1 байт стойност: 01H |
<LEN> | Брой байтове от <01> (без него) до <05> (вкл.) плюс фиксирано отместване от 20h дължина: 1 байт стойност: 20H - FFH |
<SEQ> | Пореден номер на рамката дължина: 1 байт стойност: 20H - 7FH |
Фискалният принтер записва същия <SEQ> в съобщението отговор.Ако ФП получи съобщение със същото <SEQ>, като последното получено от него съобщение, то той не извършва действие, а повтаря последното изпратено от него съобщение. | |
<CMD> | Код на командата дължина: 1 байт стойност: 20H - FFH |
ФП записва същия <CMD> в съобщението отговор. Ако принтерът получи несъществуващ код, той отговаря с пакетирано съобщение с нулева дължина на полето за данни и установява съответния статус бит. | |
<DATA> | Данни дължина: 0 - 218 байта за Host към принтер, 0 - 213 байта за Принтер към Host. стойност: 20H – FFH и допълнително 09H и 0AH. |
Форматът и дължината на областта за данни зависи от командата. Ако командата няма данни то дължината на това поле е нула.Ако има синтактична грешка в данните се установява съответния статус бит и се връща пакетирано съобщение с нулева дължина на полето за данни. | |
<04> | Разделител (само за принтер към Host съобщения) дължина: 1 байт стойност: 04H |
<STATUS> | Полето с текущото състояние на фискалното устройство дължина: 6 байта стойност: 80H - FFH |
<05> |
Postamble дължина: 1 байт стойност: 05H |
<BCC> | Контролна сума (0000h-FFFFh) дължина: 4 байта стойност: 30H - 3FH |
Сумата включва от <01> без него до <05> вкл. Всяка цифра от двата байта се предава като и се прибави 30H. Например сумата 1AE3h се представя като 31h, 3Ah, 3Eh, 33h. | |
<03> |
Terminator дължина: 1 байт стойност: 03H |
- а) Областта за данни е зависима от командата.
- б) Параметрите изпратени до принтера могат да бъдат разделени със запетая и / или да бъдат с фиксирана дължина.
- в) Наличието на запетая между параметрите показва, че тя е задължителна.
- г) Синтаксисът на командата трябва да се спазва БУКВАЛНО – дори добавянето на интервал или табулация между данните или в края им се счита за грешка!
Когато отделните параметри са заградени в < > това означава, че те са задължителни, но самите скоби не се съдържат в съобщението.
Когато даден параметър е заграден в [ ] скоби, това означава, че той не е задължителен. Самите скоби също не се предават в съобщението.
Символите с ASCII кодове под 32 (20h) имат специално значение и употребата им е явно посочена в описанието там, където е необходимо. Ако по някакви причини трябва да изпратим такъв символ (например в ESCAPE-команда към дисплея), то той трябва да се предшества от 16 (10h) и да му се добави отместване 40h.
Пример: Когато за областта за данни пишем - 2500,100,Text, то в областта за данни има FD 3F 35 30 30 FC 31 30 30 FC 54 65 78 74 , където всяко шестнайсетично число представлява ASCII стойност.
Този раздел съдържа списъка от командите на фискалния принтер, разделени в групи в зависимост от тяхното предназначение:
Забележка: Всички примери предполагат работа с фискален принтер, конфигуриран за България. Там, където има особености в зависимост от държавата, е направено уточнение.
Област за данни: | [<Clear>] |
Отговор: | <Command>,<ErrCode>,<DateTime>,<ErrText> |
Командата дава възможност да се получи информация за последната команда, завършила със грешка. Тази информация се запазва при успешно изпълнени команди, както и при изключване на принтера. Изчиства се само при RAM ресет и при изпълнение на командата с входни данни – текст „CLEAR”. Списък с кодовете на грешките е приложен в края на документацията. Командата връща резултат при произволни входни данни.
Clear | Фиксиран текст със съдържание „CLEAR”. |
ErrCode | Число – код на грешка. |
DateTime | Дата и час на грешката във формат DD-MM-YY hh:mm:ss. |
ErrText | Текстово описание на последната грешка. |
Област за данни: | Няма данни |
Отговор: | Няма данни |
Изпраща се команда за изчистване на дисплея. Ако е отворен фискален бон и Sw4 е OFF, изчиства се само долния ред.
Област за данни: | [<„P”>] |
Отговор: | <Left>,<RegDtTm>,<EIK>,<EndDate> или „F” |
Date | Дата на изтичане на новия сервизен договор във формат „DD-MM-YY”. |
Left | Цяло число – брой оставащи полета за регистрация на сервизен договор. |
RegDtTm | Дата и час на регистрация на сервизен договор: „DD-MM-YYYY hh:mm:ss”. |
EndDate | Дата на изтичане на последния сервизен договор във формат „DD-MM-YYYY”. |
ЕИК | 9 или 13 цифри – ЕИК на сервизната фирма. |
Командата връща или разпечатва информация засервизните договори. Срокът на изтичане на текущия сервизен договор се печати в края на всеки дневен отчет с нулиране. Връщат се данни за срока на последния регистриран договор (или „F” ако няма регистриран договор). При входни данни „P” се печата отчет на всички регистрирани договори по данни от фискалната памет.
Област за данни: | <Text> |
Отговор: | Няма данни |
Text | Текст до 20 символа, който се изпраща директно към дисплея. Преди него се изпраща команда за позициониране и изчистване на долния ред. |
Област за данни: | [<IPAddr>,<SubnetMase>,<TCPPort>,<Gateway>[,*<DHCP>][,<MACAddr>]] |
Отговор: | <IPAddr>,<SubnetMase>,<TCPPort>,<Gateway>,<DHCP>,<MACAddr>] |
IPAddr | 4 числа от 0 до 255 разделени със точка, представляващи IP адреса на устройството. |
SubnetMask | 4 числа от 0 до 255 разделени със точка, представляващи Subnet маската на устройството. |
TCPPort | Число от 1 до 65535 представляващо IP порта на устройството. |
DefGateway | 4 числа от 0 до 255 разделени със точка, представляващи Default Gateway адреса на устройството. |
DHCP | Един символ: „0” или „1„. Разрешава или забранява DHCP (Получаване на автоматични LAN настройки от сървъра). |
MACAddr | До 12 шестнайсетични символа представляващи MAC адреса на устройството. Работи само при наличие на сервизен джъмпер!!! |
Ако няма област за данни, командата връща текущите настройки.
Област за данни: | <Type>[,<Closure>] |
Отговор: | P,<Data> или F |
Type | Вид на исканата информация: |
DT | Стринг. Дата и час във формат „DD-MM-YYYY hh:mm:ss. |
Closure | Цяло число. Предстоящ номер на дневен отчет. |
FiscRec | Цяло число. Брой фискални бонове (клиенти) за деня. |
LastFiscal | Цяло число. Глобален номер на последния издаден фискален бон. |
LastDoc | Цяло число. Глобален номер на последния издаден документ. |
Journal | Цяло число. Текущ номер на контролна лента. |
Sx | Число с десетична точка. Оборот по някоя от данъчните групи за деня. |
Total | Число с десетична точка. Общ оборот за деня. |
GTotal | Число с десетична точка. Общ оборот за периода на експлоатация. |
DiscountN | Цяло число. Брой отстъпки за деня. |
DiscountS | Число с десетична точка. Обща сума от отстъпки за деня. |
MakeUpN | Цяло число. Брой надбавки за деня. |
MakeUpS | Число с десетична точка. Обща сума от надбавки за деня. |
VoidN | Цяло число. Брой корекции за деня. |
VoidS | Число с десетична точка. Обща сума от корекции за деня. |
CancelN | Цяло число. Брой отказани бонове за деня. |
CancelS | Число с десетична точка. Обща сума от отказани бонове за деня. |
CashInN | Цяло число. Брой операции служебен внос за деня. |
CashInS | Число с десетична точка. Обща сума от служебен внос за деня. |
CashOutN | Цяло число. Брой операции служебен износ за деня. |
CashOutS | Число с десетична точка. Обща сума от служебен износ за деня. |
CashSum | Число с десетична точка. Касова наличност. |
CashPaid | Число с десетична точка. Платени в брой. |
CredPaid | Число с десетична точка. Платени с кредитна карта. |
CardPaid | Число с десетична точка. Платени с дебитна карта. |
ChecePaid | Число с десетична точка. Платени с чек. |
Paid1 | Число с десетична точка. Платени с програмируем тип плащане 1. |
Paid2 | Число с десетична точка. Платени с програмируем тип плащане 2. |
Paid3 | Число с десетична точка. Платени с програмируем тип плащане 3. |
Paid4 | Число с десетична точка. Платени с програмируем тип плащане 4. |
PLU | Логически номер на артикул. 9 цифри. |
PluTotal | Натрупана сума от продажби за артикула. Число с десетична точка. |
PluName | Име на артикула. До 36 символа. |
Подкоманда '6' очаква номер на дневен отчет и връща датата и часа на дневния отчет. Ако записът е с невалидна контролна сума, връща се 'F'. Ако няма такъв запис, връща се 'E'.
Подкоманда '7' връща дата на фискализация, или 'F', ако принтерът не е въведен в експлoатация.
Подкоманда '8' връща данни за продажбите по артикули по нарастващ PLU. Командата се изпраща отначало еднократно с команден стринг „8,F”, а след това необходимия брой пъти с команден стринг „8,N” докато принтерът не върне отговор 'F' (няма данни) или сме прочели необходимия брой артикули. Името на артикула се връща винаги в кодова таблица 1251.
Командата е само за съвместимост с фискалните принтери с външен терминал, при които има възможност за четене на тези данни. Реално тя не е необходима, защото информацията може да се получи и по друг начин. Данни, идентични на получените от тази команда се изпращат вътрешно и автоматично на данъчния терминал за предаване в НАП при необходимост.
Област за данни: | Няма данни |
Отговор: | Allreceipt |
Allreceipt | Броят на всички издадени бонове (фискални и служебни) от последното приключване на деня до момента /4 байта/. |
ФП извършва следните действия:
- Отпечатва се HEADER.
- Отпечатва се ЕИК на продавача.
- Връща се отговор, съдържащ Allreceipt.
Командата не може да се изпълни, ако:
- Фискалната памет не е форматирана.
- Има отворен фискален бон.
- Вече е отворен служебен бон.
- Часовникът не е сверен.
Област за данни: | Няма данни |
Отговор: | Allreceipt |
Allreceipt | Броят на всички издадени бонове (фискални и служебни) от последното приключване на деня до момента /4 байта/. |
ФП извършва следните действия:
- Отпечатва се FOOTER.
- Отпечатва се поредния номер, датата и часа на документа
- Отпечатва се с широк печат „СЛУЖЕБЕН БОН”.
- Връща се отговор, съдържащ Allreceipt.
Ако е вдигнат S1.1 командата не е изпълнена защото в момента не е отворен служебен бон.
Област за данни: | [<Switches>] |
Отговор: | <ErrCode> |
Switches | 8 или 16 байта със стойност ‘0’ или ‘1’ – конфигурационните „ключета”. |
ErrCode |
|
Принтерът няма хардуерни ключета и използува за целта област във флаш-паметта. Установяването им става с тази команда. Освен това командата записва във флаш-паметта и графичното лого, височината на баркода, плътността на печат и дължината на импулса за отваряне на чекмедже. След RAM ресет стойностите им се възстановяват от тези във флаша. Ако са подадени само 8 байта, старшите 8 остават без промяна.
Ако командата няма данни, то се запазват старите стойности на „ключетата” и се записват останалите данни.
Командата запомня следните дании в енергонезависимата (flash) памет:
- Header и footer (от команда 43).
- Текстът на допълнителните типове плащане (от команда 85).
- Графичното лого (от команда 115).
- Опциите за печат (от команда 43).
- Конфигурационните ключета.
След RAM ресет стойностите им се възстановяват от тези във флаша.
Област за данни: | [<Tab><Font>[<Flags>],]<Text> |
Отговор: | Няма данни |
Text | Свободен текст за печат. В началото и края на реда се отпечатва символът '#'. Текстът може да бъде с произволна дължина, но се оставят само толкова символа, колкото се побират на реда (без вдигане на грешка при изрязването). |
Командата допуска опционално посочване на шрифт и атрибути за печат на реда: | |
Font | Цяло число от 0 до 3: |
Flags | От една до 3 букви: 'B', 'H' или 'I'. Всяка може да се появи най-много веднъж. Задават съответно: |
Област за данни: | <Item><Text> |
Отговор: | Зависи от областта за данни |
HEADER се състои от 6 реда текст, които се отпечатват в началото на всеки фискален или служебен
бон. За нормална работа на принтера е необходимо да се зададат поне 2 реда Header. ЕИК (зададен от
команда 98) се печати винаги на трети ред, така че редовете от HEADER-а след втория автоматично се
преместват с една позиция надолу.
FOOTER се състои от 2 линии текст, които се отпечатват в края на всеки бон.
HEADER и FOOTER се центрират автоматично.
Тази команда трябва да се изпълни до 8 пъти, за да се зададат всичките линии на HEADER и FOOTER.
Item | Един символ със следното значение: Линиите на HEADER са с номера от 0 до 5, а тези на FOOTER – 6 и 7. Баркодът се печати с команда 84 (54h). След включване на принтера поведението на принтера се определя от ключе Sw8. Синтаксис на данните: <Enable>[,Rate] Един байт: ‘0’ или ‘1’. Плаващо число с до 8 значещи цифри и 5 десетични знака. Ако липсва, запазва се старата стойност. Ако е 0.00000, то стойност в евро не се печати независимо от Enable. Данните Text са във формат <Enable>,<H>. Данните са във формат Q0 или Q1,<Lines>,<Seconds>.
Възможни стойности от 0 до 4. Допустима стойност 0 или 1. След включване на принтера функциите на бутона винаги са разрешени. След включване на принтера презентера не прибира хартията в контейнер. (Принтери SK1-21F и SK1-31F) След буквата ‘I’ следва точно още един символ, съвпадащ с някой от по-горните. |
Text | Текст до 48 символа, като: |
Област за данни: | Lines | <GetP> |
Отговор: | Няма данни |
Lines | Броят на редовете, с които да бъде придвижена хартията. Трябва да бъде положително число не по-голямо от 99 (1 или 2 байта). Ако параметър липсва, подразбира се 1 ред. |
GetP | Един символ със стойност „P”. Прибира отпечатана и чакаща бележка във вътрешния контейнер (САМО за модели SK1-21F и SK1-31F). Възможни отговори „P” и „F„. |
Област за данни: | Няма данни |
Отговор: | Няма данни |
Предизвиква отрязването на хартията. Трябва да се има предвид, че програмата трябва да се погрижи за придвижването на хартията поне с два реда, иначе е възможно отрязване на края на бона. Ако принтерът е в режим „автоматично рязане”, той сам позиционира коректно хартията преди рязането, а командата е излишна.
При блокиране на режещия механизъм трябва да се извади хартията (ако има такава) от резачката, и да се изключи и включи принтера – разачката ще се позиционира в изходно положение.
Област за данни: | <OpNum>,<Password>,<TillNum>[,<Invoice><InvNum>][,<UNP>],<StType><DocNo>[,<StUNP>,<StDT>,<StFMIN>][#<StornoReason>] |
Отговор: | Allreceipt, StornoReceipt |
OpCode | Номер на оператор /1 до 16/ |
OpPwd | Операторска парола /4 до 8 цифри/ |
TillNmb | Номер на касово място /цяло число от 1 до 99999/ |
UNP | Уникален номер на продажбата (формат: сериен номер на ФУ„-„четири цифри или латински букви„-„пореден номер на продажбата (седем цифри с водещи нули)” пример: DT000600-OP01-0001000). При първо отваряне на бон за продажба УНП трябва да бъде зададен поне веднъж, ако след това се пропуска параметъра ФУ ще инкрементва с единица номера на продажбата автоматично. |
InvNum | Номер на фактурата която се сторнира. |
Invoice | Един символ със стойност „I”. Наличието му предизвиква отпечатването на сторно разширена клиентска бележка (кредитно известие). Автоматично след HEADER-а се отпечатва номера на фактурата, а след първата команда за плащане разпечатка на сумите по данъчни групи. След плащането трябва да се отпечата информация за купувача с команда 57 (39h). |
StType | Причина за сторниране: E – операторска грешка R – връщане/рекламация T – намаление на данъчната основа |
DocNo | Номер на документа (глобален), който се сторнира. |
StUNP | УНП на документа, който се сторнира. Задава се цялото УНП задължително. |
StDT | Дата и час на сторнирания документ. Формат „DDMMYYhhmmss„. |
StFMIN | Номер на фискалната памет на ФУ от което е издаден бона, който се сторнира. |
StornoReason | Причина за сторниране (до 30 символа). |
Allreceipt | Броят на всички издадени бонове (фискални и служебни) от последното приключване на деня до момента. /4 байта/. |
StornoReceipt | Броят на всички издадени фискални СТОРНО бонове от последното приключване на деня до момента. /4 байта/. |
Ако последния аргумент е DocNo и няма следващи аргументи, ФУ търси издадения бон в контролната си лента. Ако не го намери, командата приключва неуспешно. Ако го намери, данните се попълват автоматично и се издава сторно бон с всички присъстващи в оригиналния фискален бон данни.
Ако се подадат StUNP, StDT, StFMIN командата ще бъде приета само като отваряне на сторно бон в който трябва да се направят продажби, плащания и затваряне (по аналогия с команда 48).
Област за данни: | Text |
Отговор: | Няма данни |
Text | Текст до 20 символа, който се изпраща директно към дисплея. Преди него се изпраща команда за позициониране и изчистване на горния ред. Командата се отхвърля, ако е отворен фискален бон и Sw1 е OFF. |
Област за данни: | Няма или <OpNum>,<Password>,<TillNum>[,<Invoice>][,<UNP>] или [*] |
Отговор: | UNPshort или Allreceipt, FiscReceipt или FdocGlob,UNPfull[,UNPfullST] |
OpCode | Номер на оператор /1 до 16/ |
OpPwd | Операторска парола /4 до 8 цифри/ |
TillNmb | Номер на касово място /цяло число от 1 до 99999/ |
UNP | Уникален номер на продажбата (формат: сериен номер на ФУ„-„четири цифри или латински букви„-„пореден номер на продажбата (седем цифри с водещи нули)” пример: DT000600-OP01-0001000). При първо отваряне на бон за продажба УНП трябва да бъде зададен поне веднъж, ако след това се пропуска параметъра ФУ ще инкрементва с единица номера на продажбата автоматично. |
Invoice | Един символ със стойност „I”. Наличието му предизвиква отпечатването на разширена клиентска бележка (фактура). Автоматично след HEADER-а се отпечатва номера на фактурата, а след първата команда за плащане разпечатка на сумите по данъчни групи. След плащането трябва да се отпечата информация за купувача с команда 57 (39h). |
Allreceipt | Броят на всички издадени бонове (фискални и служебни) от последното приключване на деня до момента. /4 байта/ |
FiscReceipt | Броят на всички издадени фискални бонове от последното приключване на деня до момента. /4 байта/. |
UNPshort | УНП в кратък формат на последния издаден фискален бон. |
FdocGlob | Глобален номер на последно издадения фискален документ. |
UNPfull | УНП в пълния формат на последно издадения фискален документ. |
UNPfullST | УНП в пълния формат на последно издадения сторниран документ, АКО последно издадения е бил фискален документ това поле ще липсва. |
Ако командата е подадена без аргументи, се връща пореден номер на продажбата от УНП на последния издаден фискален бон (пример: 0001000).
Ако командата е подадена с аргумент „*” се връща глобалния номер на последно издадения фискален документ и УНП ?в пълния формат, пример: DT000600-OP01-0001000) на последния издаден фискален бон. АКО последно издадения е бил сторно документ ще присъства още едно поле УНП на сторнирания документ. (пример: 398554,DT000601-0001-0398101, DT000601-0001- 0203305)
ФП извършва следните действия:
- Отпечатва се HEADER.
- Отпечатва се ЕИК.
- Отпечатва се номер и име на оператор и номер на касово място.
- Връщат се AllReceipt и FiscReceipt.
Командата няма да бъде изпълнена успешно, ако:
- Има отворен фискален или служебен бон.
- Фискалната памет е пълна.
- Фискалната памет е повредена.
- Липсва код или парола на оператор, или номер на касово място.
- HEADER съдържа по-малко от 2 реда.
- Не е зададен ЕИК.
- Не е вярна операторската парола.
- Часовникът не е сверен.
- КЛЕН е пълна или не фунционира.
- Данъчният терминал не функционира, или информацията в него не съответствува на тази във фискалната памет
При три грешни операторски пароли принтерът блокира и трябва да се изключи и включи за продължаване на работата.
Област за данни: | [<L1>][<Lf><L2>]<Tab><TaxCd><[Sign]Price>[*<Qwan>[#UN]][,Perc|;Abs] или [<L1>][<Lf><L2>]<Tab><Dept><Tab><[Sign]Price>[*<Qwan>[#UN]][,Perc|;Abs] |
Отговор: | Няма данни |
L1 | Текст до 42 байта съдържащ ред, описващ продажбата |
Lf | Един байт със съдържание 0Ah. |
L2 | Текст до 42 байта съдържащ втори ред, описващ продажбата |
Tab | Един байт със съдържание 09h. |
TaxCd | Един байт съдържащ буквата показваща видът на данъка (‘А’, ‘Б’, ‘В’, ...). Има ограничение зависещо от параметъра Enabled_Taxes, който се установява при задаването на данъчните ставки в команда 83. |
Dept | Номер на департамент. Цяло число от 1 до 1200 включително. Продажбата се причислява към данъчната група, с която е асоцииран департаментът при програмирането му. |
Sign | Един байт със стойност ‘-‘. |
Price | Това е единичната цена и е до 8 значещи цифри. |
Qwan | Незадължителен параметър, задаващ количеството на стоката. По подразбиране е 1.000. Дължина до 8 значещи цифри (не повече от 3 след десетичната точка). Произведението Price*Qwan се закръгля от принтера до зададения брой десетични знаци и също не трябва да надхвърля 8 значещи цифри. |
UN | Име на мерна единица. Опционален текст за мерна единица на количеството до 8 символа, например „kg”. |
Perc | Това е незадължителен параметър, показващ стойността на надбавката или отстъпката (в зависимост от знака) в проценти върху текущата продажба. Допустими стойности са от -99.00 % до 99.00 %. Приемат се до 2 десетични знака. |
Abs | Това е незадължителен параметър, показващ стойността на надбавката или отстъпката (в зависимост от знака) като сума. Не е допустима отстъпка със стойност по-голяма от стойността на продажбата. Допустим е само един от аргументите Perc или Abs. |
ФП извършва следните действия:
- Ако продажбата е по департамент и е разрешено с команда 43, подкоманда ‘N’, отпечатва се името на департамента.
- Текстът описващ продажбата се отпечатва заедно с цената и кода на данъчната група. Ако има зададено количество, информацията за него също се отпечатва.
- Цената на стоката се прибавя към натрупаните суми в регистрите в оперативната памет. В случай на препълване се установяват съответните битове от статус полето.
- Ако има отстъпка или надбавка, тя се отпечатва на отделен ред и се добавя в предвидени за това регистри на принтера. Стойностите за целия ден се отпечатват при дневния финансов отчет.
- Ако е указан департамент, натрупаната стойност се прибавя към него. Надбавките и отстъпките, ако има такива, се отчитат.
Командата няма да бъде изпълнена успешно, ако:
- Не е отворен фискален бон.
- Вече са направени максималния брой продажби за един бон (512).
- Командата (35h) е изпълнена успешно.
- Сумата по някоя от данъчните групи става отрицателна.
- Сумата от надбавки или отстъпки в рамките на бона става отрицателна.
- КЛЕН е пълна.
- Принтерът е установил различна от регистрираната SIM карта в модема.
Област за данни: | [<Start>,<End>] |
Отговор: | = F – ако не са намерени данъчни ставки за периода или в случай на грешка. |
= PАА,BB,CC,DD,EE,FF,GG,HH,DDMMYY ако са намерени ставки, като ‘P’ означава ‘PASS’ и след това се изброяват последните активни ставки за посочения период и датата на тяхното задаване. | |
Ако има групи, които не се използват (забранени с Enabled_rates, то за тях вместо ставка в проценти се връща ‘DT’ (Disabled Tax). | |
Start | Дата за начало на периода – DDMMYY /6 bytes/. |
End | Дата за край на периода – DDMMYY /6 bytes/. |
Командата разпечатва отчет на промените на десетичните знаци и данъчните ставки за посочения период. Ако не са посочени начална и крайна дата, използва се периодът от фискализацията до текущия момент.
Област за данни: | <Print><Display>[,Perc |
Отговор: | SubTotal,TaxA,TaxB,TaxC,TaxD,TaxE,TaxF,TaxG,TaxH |
Един байт, който ако е ‘1’ стойността на под сумата ще се отпечата. | |
Display | Един байт, който ако е ‘1’ стойността на под сумата ще се покаже на дисплея. |
Perc | Незадължителен параметър, който показва стойността в проценти на отстъпката или надбавката върху натрупаната до момента сума. |
Abs | Това е незадължителен параметър, показващ стойността на надбавката или отстъпката (в зависимост от знака) като сума (до 8 значещи цифри). Не е допустима отстъпка със стойност по-голяма от стойността на продажбата. Допустим е само един от аргументите Perc или Abs. |
SubTotal | Сумата до момента за текущия фискален бон /до 10 байта/ |
TaxA | Сумата по данъчна група А /до 10 байта/ |
TaxB | Сумата по данъчна група Б /до 10 байта/ |
TaxC | Сумата по данъчна група В /до 10 байта/ |
TaxD | Сумата по данъчна група Г /до 10 байта/ |
TaxE | Сумата по данъчна група Д /до 10 байта/ |
TaxF | Сумата по данъчна група Е /до 10 байта/ |
TaxG | Сумата по данъчна група Ж /до 10 байта/ |
TaxH | Сумата по данъчна група З /до 10 байта/ |
Изчислява се сума на всички продажби регистрирани във фискалния бон до момента. По желание сумата може да бъде отпечатана и/или показана на дисплея. Към PC се връща изчислената сума и натрупаните до момента суми за всяка данъчна група. Ако е посочена надбавка или отстъпка, тя се отпечатва на отделен ред и натрупаните суми по данъчни групи се коригират съответно.
Област за данни: | [Line]]<Tab><TaxCd><[Sign]Price>[*Qwan[#UN]][,Perc|;Abs] или [Line]]<Tab><Dept><Tab><[Sign]Price>[*Qwan[#UN]][,Perc;Abs] |
Отговор: | Няма данни |
Line | Стринг до 20 байта съдържащ ред с текст описващ продажбата. |
Tab | Един байт със съдържание 09h |
TaxCd | Един байт, съдържащ буквата, показваща вида на данъка (‘А’, ‘Б’, ‘В’, ...). Има ограничение, зависещо от параметъра Enabled_taxes, който се установява при задаването на валутата в команда 83. |
Dept | Номер на департамент. Цяло число от 1 до 1200 включително. Продажбата се причислява към данъчната група, с която е асоцииран департаментът при програмирането му. |
Sign | Един байт със стойност ‘-‘. |
Price | Това е цената и е до 8 значещи цифри. |
Qwan | Незадължителен параметър, задаващ количеството на стоката. По подразбиране е 1.000. Дължина до 8 значещи цифри. |
UN | Име на мерна единица. Опционален текст за мерна единица на количеството до 8 символа, например „kg”. |
Perc | Това е незадължителен параметър, показващ стойността на надбавката или отстъпката (в зависимост от знака) в проценти върху текущата продажба. Допустими стойности са от -99.00 % до 99.00 %. |
Abs | Това е незадължителен параметър, показващ стойността на надбавката или отстъпката (в зависимост от знака) като сума. Не е допустима отстъпка със стойност по-голяма от стойността на продажбата. Допустим е само един от аргументите Perc или Abs. |
ФП ще извърши следните действия:
- Ако продажбата е по департамент и е разрешено с команда 43, подкоманда ‘N’, отпечатва се името на департамента.
- Текстът, описващ продажбата, се отпечатва заедно с цената и кода на данъчната група.
- Цената на стоката се прибавя към натрупаните суми в регистрите в оперативната памет. В случай на препълване се установяват съответните битове от статус байтовете.
- Ако има отстъпка или надбавка, тя се отпечатва на отделен ред и се добавя в предвидени за това регистри на принтера. Стойностите за целия ден се отпечатват при дневния финансов отчет.
- Цената на стоката са показва на горния, а описанието и на долния ред на дисплея.
- Ако е указан департамент, натрупаната стойност се прибавя към него. Надбавките и отстъпките, ако има такива, се отчитат.
Командата няма да бъде изпълнена успешно, ако:
- Не е отворен фискален бон.
- Вече са направени максималния брой продажби за един бон.
- Командата „Total” е изпълнена успешно.
- Сумата по някоя от данъчните групи става отрицателна.
- Сумата от надбавки или отстъпки в рамките на бона става отрицателна.
- КЛЕН е пълна.
Област за данни: | [<Line1>][<Lf><Line2>]<Tab>[[<PaidMode>]<[Sign]Amount>] |
Отговор: | <PaidCode><Amount> |
Line1 | Текст до 36 байта съдържащ първия ред |
Lf | Един байт със съдържание 0Ah |
Line2 | Текст до 36 байта съдържащ втория ред |
Tab | Един байт със съдържание 09h |
PaidMode | Незадължителен код, указващ начина на плащане. Може да има следните стойности: |
Sign | Един байт със стойност ‘+’, указващ знака на Amount (сумата, която се плаща). |
Amount | Сумата, която се плаща /до 10 значещи цифри/. |
PaidCode | Един байт - резултат от изпълнението на командата. |
Amount | До 9 цифри със знак. Зависи от PaidCode. |
Тази команда предизвиква изчисляването на сумите от фискалния бон, отпечатването на сумата със специален шрифт и показването й на дисплей. Възможно е отпечатването на допълнителен текст. При успешно изпълнение на командата се генерира импулс за отваряне на чекмедже, ако това е разрешено с подкоманда ‘X’ на команда 43. Ако след символа <Tab> няма повече данни, то принтерът автоматично плаща цялата налична сума в брой.
Командата няма да бъде изпълнена успешно, ако:
- Не е отворен фискален бон.
- Натрупаната сума е отрицателна.
- Ако някоя от натрупаните суми по данъчни групи е отрицателна.
След успешното изпълнение на командата, фискалният принтер няма да изпълнява командите 49 и 51 в рамките на отворения бон, обаче може да изпълнява още команда 53.
Забележка: Кодове на грешка ‘E’ и ‘I’ никога няма да се получат в българската версия на принтера, защото команди 49 и 52 (Регистриране на продажба) няма да допуснат отрицателни суми.
Област за данни: | [<Tab><Font>[<Flags>],]<Text> |
Отговор: | Няма данни |
Text | Свободен текст за печат. В началото и края на реда се отпечатва символът '#'. Текстът може да бъде с произволна дължина, но се оставят само толкова символа, колкото се побират на реда (без вдигане на грешка при изрязването). |
Командата допуска опционално посочване на шрифт и атрибути за печат на реда: | |
Font | Цяло число от 0 до 3: |
Flags | От една до 3 букви: 'B', 'H' или 'I'. Всяка може да се появи най-много веднъж. Задават съответно: |
Необходимо е да е отворен фискален бон. В противен случай не се отпечатва текста и се вдига S1.1.
Област за данни: | Няма данни |
Отговор: | Allreceipt, FiscReceipt |
Allreceipt | Всички издадени бележки от последното приключване на деня до момента. |
FiscReceipt | Всички издадени фискални бележки от последното приключване на деня до момента. |
Натрупаните суми от фискалния бон се прибавят към дневните суми в регистрите на оперативната памет.
Командата няма да бъде изпълнена успешно, ако:
- Не е отворен фискален бон.
- Команда 53 (35h) не е изпълнена успешно.
- Платената сума по команда 53 е по-малка от общата сума на фискалния бон.
Област за данни: | [# | * | ^]<Bulstat>[<Tab><Seller>[<Tab><Receiver>[<Tab><Client>[<Tab><TaxNo>[<Tab><Address>[<Tab><AccPer>]]]]]] |
Отговор: | Няма данни |
Bulstat | ЕИК номер на купувача. Между 9 и 14 символа. Ако преди него стои символа ‘#’, данните се считат за ЕГН или символа ‘*’ - личен номер или символа ‘^’ - служебен номер. |
Tab | Табулация (09h). Разделител между параметрите. |
Seller | Име на продавача. До 26 символа. |
Receiver | Име на получателя. До 26 символа. |
Client | Име на купувача. До 26 символа. |
TaxNo | ЗДДС номер на купувача. Между 10 и 14 символа. |
Address | Адрес на купувача. До два реда текст, разделени с LF (0Ah), първи ред максимално от 28 символа, а втори- максимално от 34 символа. |
AccPer | Материално отговорно лице |
С изключение на първия всички останали параметри не са задължителни. Ако трябва да се зададе някой параметър, всички преди него трябва да са зададени. При празен или незададен параметър се оставя празно място за попълване на ръка.
Командата е допустима само във разширен фискален бон (фактура) за унифицирано оформяне на боновете. Трябва да се изпълни непосредствено след цялостно плащане на натрупаната за бона сума. След това вече е разрешено затварянето на бона.
Област за данни: | [D]<[Sign]PLU>[<Tab><Dept><Tab>][*<Qwan>[#UN]][,Perc|;Abs][D]@<FTT>[*<Quantity>][,|;<Discount_MakeUp>] |
Отговор: | Няма данни |
D | Един байт със стойност ‘D‘. Ако го има, продажбата става с показване на клиентския дисплей. Ако дължината на името на артикула е повече от 20, символите след 20-я се отрязват. |
Sign | Един байт със стойност ‘-‘. |
PLU | Това е номер на артикула. Цяло число от 1 до 999999999 (до 9 цифри). |
FTT | Номер на FTT. |
Tab | Един байт – табулация (ASCII код 9). |
Dept | Номер на департамент. Цяло число от 1 до 1200 включително. Ако този параметър присъствува, то задължително трябва да ги има и разделителните табулации. |
Qwan | Незадължителен параметър, задаващ количеството на стоката. По подразбиране е 1.000. Дължина до 8 значещи цифри (не повече от 3 след десетичната точка). Произведението (Единична цена)*Qwan се закръгля от принтера до зададения брой десетични знаци и също не трябва да надхвърля 8 значещи цифри. |
UN | Име на мерна единица. Опционален текст за мерна единица на количеството до 8 символа, например „kg”. |
Perc | Това е незадължителен параметър, показващ стойността на надбавката или отстъпката (в зависимост от знака) в проценти върху текущата продажба. Допустими стойности са от -99.00 % до 99.00 %. Приемат се до 2 десетични знака. |
Abs | Това е незадължителен параметър, показващ стойността на надбавката или отстъпката (в зависимост от знака) като сума. Не е допустима отстъпка със стойност по-голяма от стойността на продажбата. Допустим е само един от аргументите Perc или Abs. |
ФП извършва следните действия:
- Прочита се от таблицата с артикулите името, цената и данъчната група на стоката.
- Ако продажбата е по департамент и е разрешено с команда 43, подкоманда ‘N’, отпечатва се името на департамента.
- Отпечатва името на артикула, посоченото количество и единичната цена. На втори ред се отпечатва получената цена заедно с буквата, определяща данъчната група. Актуализират се регистрите за натрупани суми и количества на артикули. Ако с команда 43h е зададено форматиране на текста тип фактура, то името на стоката, единичната цена, количеството и цената се отпечатват на отделни редове.
- Цената на стоката се прибавя към натрупаните суми в регистрите в оперативната памет. В случай на препълване се установяват съответните битове от статус полето.
- Ако има отстъпка или надбавка, тя се отпечатва на отделен ред и се добавя в предвидени за това регистри на принтера. Стойностите за целия ден се отпечатват при дневния финансов отчет.
- Ако е указан департамент, натрупаната стойност се прибавя към него. Надбавките и отстъпките, ако има такива, се отчитат.
Командата няма да бъде изпълнена успешно, ако:
- Не програмиран артикул с посочения номер.
- При принтер, регистриран за работа в бензиностанция и артикул от група 'В' няма гориво с такова име в никой от резервоарите.
- Не е отворен фискален бон.
- Вече са направени максималния брой продажби за един бон (512).
- Командата (35h) е изпълнена успешно.
- Сумата по някоя от данъчните групи става отрицателна.
- Сумата от надбавки или отстъпки в рамките на бона става отрицателна.
- КЛЕН е пълна.
Област за данни: | Няма данни |
Отговор: | Няма данни |
Командата е допустима само в отворен фисакален бон, и то преди изпълнението на команда 53 (Total). Предизвиква отказването на всички натрупани в бона суми. Отпечатва се с двойна ширина „=АНУЛИРАНО=” и бонът завършва с надпис „ФИСКАЛЕН БОН”.
Област за данни: | <DD-MM-YY><space><HH:MM[:SS]> |
Отговор: | Няма данни |
Не може да се установява дата, по-ранна от датата на последния запис във фискалната памет. Предвидено е да се работи до 2099 година включително. След RESET на паметта командата трябва задължително да се изпълни, за да се продължи нормалната работа, при което се извършва RESET запис във фискалната памет.
Не е възможно задаване на дата и час по-ранна от последния отпечатан документ, записан в КЛЕН. Това е с цел коректно търсене на документи от КЛЕН по дата и час за печат или изтегляне по серийния порт като текст.
Област за данни: | Няма данни. |
Отговор: | <DD-MM-YY><Space><HH:MM:SS> |
Област за данни: | Няма данни |
Отговор: | Няма данни |
На долния ред на дисплея се показват текущите дата и час на принтера във формат DD-MM-YY HH:MM:SS.
Област за данни: | [[<LongDT>]<Option>] |
Отговор: | ErrCode[,N,TaxA,TaxB,TaxC,TaxD,TaxE,TaxF,TaxG,TaxH,Date] |
LongDT | Един опционален байт със стойност '*'. При наличието му се връща и часът на дневния отчет. |
Option | Един опционален байт със стойност '0' или '1'. Ако липсва, се приема, че е '0'. При '0' се връща оборотът по данъчни групи, при '1' – натрупаните данъци. |
ErrCode | Код на грешка: |
‘P’ | Командата е успешна. Следват данни. |
‘F’ | Командата е неуспешна. |
N | Това е номера на последния фискален запис - 4 байта. |
TaxX | Сумите по всяка данъчна група ‘А’, ‘Б’, ‘В’, … - 12 байта със знак. |
Date | Датата на фискалния запис - 6 байта /DDMMYY/. |
Командата води до предаване на информацията от последния запис във фискалната памет към компютъра.
Област за данни: | [Option] |
Отговор: | TaxA,TaxB,TaxC,TaxD,TaxE,TaxF,TaxG,TaxH |
Option | Определя каква информация да се върне: ‘0’ - Общ оборот. ‘1’ – Натрупан ДДС. Ако параметърът липсва, подразбира се ‘0’. |
TaxX | Сумите по всяка данъчна група ‘А’, ‘Б’, ‘В’, ... - 12 байта със знак. |
Връщат се сумите по данъчни групи от последното приключване на деня до момента на получаване на командата.
Област за данни: | [Start,End] |
Отговор: | [Start,End,Current] |
Start | Задава начална стойност на интервала. Цяло число до 10 цифри. |
End | Задава крайна стойност на интервала. Цяло число до 10 цифри. |
Current | Текущата стойност на брояча на фактурите. Цяло число с 10 цифри. |
Start трябва да е по-малко или равно на End. При успешно изпълнена команда текущият номер на фактура става Start.
Ако областта за данни е празна, принтерът връща текущия интервал и брояч.
Командата е допустима, ако:
- Не е изпълнявана след пускане на принтера в експлоатация.
- Извършено е нулиране на RAM, поради което информацията за текущия брояч и допустимия ин- тервал е загубена.
- С нарастванев на брояча на фактурите той е излязъл вън от допустимия интервал. Трябва да се зададе нов интервал.
Област за данни: | Няма данни |
Отговор: | Free,Total |
Free | Броят на свободните места за фискални записи. /4 байта/. |
Total | Общият брой фискални записи в принтера. /4 байта/. |
Връща се броя на свободните полета във фискалната памет, предвидени за запис на информация при дневен финансов отчет с нулиране (Z-отчет).
Област за данни: [<Option>[N] | |
Отговор: | Closure,FM_Total,TotA,TotB,TotC,TotD,TotE,TotF,TotG,TotH |
Option | Незадължителен параметър, управляващ вида на генерирания отчет: |
N | Наличието на този символ в края на данните забранява изчистването на натрупаните данни по оператори при отчет с нулиране. |
Closure | Номер на фискалния запис - 4 байта. |
FM_Total | Сумата от всички продажби без ДДС - 12 байта със знак |
TotX | Сумите по всяка от данъчните групи ‘А’, ‘Б’, ‘В’, … - 12 байта със знак. |
Дневен отчет без нулиране може да се предизвика и чрез задържането на бутон <FEED> при включване на принтера до втория звуков сигнал.
Област за данни: | [<Amount>] |
Отговор: | ExitCode,CashSum,ServIn,ServOut |
Amount | Сумата за регистриране (до 10 значещи цифри). В зависимост от знака на числото тя се интерпретира като внос или износ. |
ExitCode |
Това става, ако: |
CashSum | Касова наличност. Освен от тази команда сумата нараства и при всяко плащане в брой. |
ServIn | Сумата от всички команди „Служебен внос”. |
ServOut | Сумата от всички команди „Служебен износ”. |
Променя съдържанието на регистъра за касова наличност. В зависимост от знака на посочената сума тя се натрупва в регистъра за служебен внос или износ. Информацията не се записва във фискалната памет и е достъпна до момента на приключване на деня. Разпечатва се при команда 69 (45h) и при предизвикване на дневен финансов отчет без нулиране от самия принтер. При успешно изпълнение на командата с параметър се генерира импулс за отваряне на чекмедже, ако това е разрешено с подкоманда ‘X’ на команда 43.
Област за данни: | Няма данни |
Отговор: | Няма данни |
Тази команда отпечатва служебен бон с диагностична информация.
Бонът съдържа следното:
- Датата и версията на програмното осигуряване.
- Контролната сума на фирмуера.
- Скоростта на предаване на серийния порт.
- Положението на конфигурационните ключета и името на страната.
- Аварийното време при отпадане на захранването.
- Номера, датата и часа на последното нулиране на RAM (ако има такова).
- Текущата температура на печатащата глава.
- Общия брой полета във фискалната памет и броя на свободните.
- Текущата дата и час.
Командата няма да се изпълни при отворен бон и липса на хартия. Може да се предизвика и чрез задържането на бутон <FEED> при включване на принтера до първия звуков сигнал.
Област за данни: | <Serial> |
Отговор: | ErrCode |
Serial | Индивидуалният номер на устройството. Трябва да е такъв, какъвто е зададен от команда 91 (5Bh). |
ErrCode | Код на грешка или 'P' при успешно изпълнение. |
Използва се статус 5.3 за да се разбере дали командата е минала успешно. Командата не се изпълнява ако:
- Индивидуалният номер не е валиден.
- Фискалния принтер вече е фискализиран.
- Не е програмиран индивидуален номер на устройството.
- Индивидуалният не е същия като зададения.
- Има отворен бон.
- Има издавани клиентски фискални бонове след последния дневен финансов отчет с нулиране.
- Не са зададени данъчните ставки.
- ЕИК се състои само от нули.
- Не е сверен часовника.
- КЛЕН не форматиран.
Извършва се фискализация на устройството. След успешното изпълнение на командата не е възможно връщането на устройството в нефискализирано състояние.
ЕИК се записва във фискалната памет заедно с текущите дата и час. Всички регистри се нулират. Принтерът отваря първия фискален бон, отбелязва в него момента на фискализация и затваря бона. Документите започват да се записват в КЛЕН.
Област за данни: | [[<SHA1>][<SkipZ>]<Start>,<End>] |
Отговор: | Няма данни |
SHA1 | Опционален аргумент – един байт със стойност '#'. Ако присъства, за всеки Z-отчет се отпечатва и контролната сума по алгоритъм SHA-1. |
SkipZ | Опционален аргумент – един байт със стойност '*'. Ако присъства, за всеки Z-отчет се отпечатват само данъчните ставки, за които натрупаните суми за деня са ненулеви. Такъв отчет е нестандартен и може да се използува само за вътрешни справки на обекта! |
Start | Номер на началния фискален блок. 4 байта. |
End | Номер на крайния фискален блок. 4 байта. |
Тази команда води до отпечатване на пълен отчет на фискалната памет от даден номер до друг. Ако няма входни данни, приема се целия период на експлоатация.
Ако няма начален и краен номер, отпечатва се отчет за целия период на експлоатация.
Област за данни: | [Option] |
Отговор: | <S0><S1><SF><S3><S4><S5>|<NLines>|HdwInfo|InfoReciepts |
Option | Един байт със следните значения: |
Sn | Статус байт N. |
Nlines | Брой неотпечатани редове в буфера за печат. Стойност 0 означава, че няма чакащи за печат данни. |
HdwInfo | Връща статистика за работата на принтера от производството му до момента. Данните са във формат: P<Len>,<Docs>,<Cuts>,<PwOns>,<MdRst> |
Len | Дължина на отпечатаната хартия в милиметри. |
Docs | Брой отпечатани документи. |
Cuts | Брой отрязвания на хартията. |
PwOns | Брой включвания на принтера. |
MdRst | Брой рестартирания на модема. Не се поддържа в момента. |
InfoReciepts | Връща данни за изпратените и не изпратените клиентски бонове <Lastprintdoc>,(Nlastsentdoc, Dtlastsentdoc, Minfromlastsuccesssent),(Nfirstnotsentdoc, Dtfirstnotsentdoc, Minfromfirstnotsuccesssent) |
При липса на данни датите са 01-01-2000 00:00:00, а минутите са 0.
Ако минутите на Minfromfirstnotsuccesssent са повече от 1440 принтера се блокира.
Област за данни: | [<Restore>] |
Отговор: | Няма данни |
Възобновява подтиснатия печат в бон в следствие на команда 43, подкоманда 'Q'.
Restore | Един байт с възможна стойност: 0 След края на печата той е разрешен – следващите данни ще се печатат веднага. 1 След изчистването на буфера за печат той остава подтиснат до края на бона. |
Област за данни: | [Option] |
Отговор: | Open,Items,Amount[,Tender] |
Option | = ‘T’. Ако този параметър е указан командата ще върне информацията относно текущото състояние на дължимата до момента сметка от клиента. |
Open | Един байт, който е ‘1’ ако е отворен фискален или служебен бон (какъв точно може да се разбере по статус битовете), и ‘0’ ако няма отворен бон. |
Items | Броят на продажбите регистрирани на текущия или на последния фискален бон. 4 байта. |
Amount | Сумата от последния фискален бон – 9 байта със знак. |
Tender | Сумата платена на поредния или последен бон. 9 байта със знак. |
Тази команда дава възможност на приложението в PC да установи статуса, а ако е нужно и да възстанови и завърши фискална операция, прекъсната аварийно и ненавременно, например при изключване на ел. захранване.
Област за данни: | <Start>[,<End>] |
Отговор: | Няма данни |
Start | Начална дата - 6 байта (DDMMYY) |
End | Крайна дата - 6 байта (DDMMYY) |
Командата води до изчисляване и отпечатване на съкратен отчет на фискалната памет.
Ако вторият параметър липсва, командата генерира месечен или годишен отчет. Синтаксисът в този случай е:
Start | Месец – 4 байта (MMYY) за месечен отчет. |
Start | Година – 2 байта (YY) за годишен отчет. |
Област за данни: | [<SoundData>] |
Отговор: | Няма данни |
Командата служи за издаване на поредица от тонове със зададена честота и продължителност.
Ако няма входни данни, издава се звуков сигнал с честота 2 kHz и продължителност 300 ms.
Ако входните данни са от вида: <H‡>,<mSec>
където H‡ и mSec са цели числа, то се издава звуков сигнал с честота H‡ херца (м/у 100 и 5000) и
продължителност mSec милисекунди (м/у 50 и 2000).
В останалите случаи данните са във формат, подобен на записа на ноти и могат да имат произволна дължина (не по-голяма от изискваната от протокола – 218 байта). Първият невалиден символ прекъсва командата. Допустимите подкоманди във данните са:
- Нота: Една латинска главна буква със стойност от ‘A’ до‘G’.
‘C’ до
‘D’ ре
‘E’ ми
‘F’ фа
‘G’ сол
‘A’ ла
‘B’ си
Ако непосредствено след нотата следва символът ‘#’, то тя се повишава с един полутон (диез). Ако след нотата следва символът ‘&’, то тя се понижава с един полутон (бемол). - Пауза: Символът интервал (ASCII 20h).
След нота или пауза може да има един или няколко байта, указващи продължителността. Валидни символи са от ‘0’ до ‘5’, като те имат следното значение:
‘0’ Базова продължителност
‘1’ Базова продължителност * 2
‘2’ Базова продължителност * 4
‘3’ Базова продължителност * 8
‘4’ Базова продължителност * 16
‘5’ Базова продължителност * 32
Ако има няколко продължителности една след друга, те се сумират. - Преминаване към по-висока гама: символът ‘+’.
- Преминаване към по-ниска гама: символът ‘-‘.
- Задаване на темпо: Символът ‘^’, следван от една цифра. Цифрата определя процентно
продължителността на нотите и интервалите спрямо базовата. Допустима стойност:
‘1’ 200 %
‘2’ 175 %
‘3’ 140 %
‘4’ 120 %
‘5’ 100 %
‘6’ 80 %
‘7’ 60 %
‘8’ 50 %
‘9’ 40 % - Връщане към гама 1 (тя е и по подразбиране). Символът ‘@’. Тонът ‘ла’ за нея е 440 Hz.
Изсвирването на изпратената последователност е фоново и принтерът може да изпълнява команди по време на звуковия сигнал.
Област за данни: | Няма данни |
Отговор: | <Vh>,<Temp> |
Vh | Захранващото напрежение във волтове. |
Temp | Температурата на печатащата глава в градуси. |
Област за данни: | [Multiplier,Decimals,Currency,EnabledT,TaxA,...] |
Отговор: | Multiplier,Decimals,Currency_name,EnabledT,TaxA,TaxB,TaxC,TaxD,… |
Multiplier | Множител - между 0 и 3 и показва степента на 10 преди да се умножи с входното или изходното число. В момента е деактивиран и не се използува. |
Decimals | Това е един байт със стойност между 0 и 2 и показва мястото където да се сложи десетичната запетая. |
Currency | Името на валутата. До 6 байта. |
EnabledT | 8 байта със възможна стойност ‘0’ или ‘1’, определящи дали съответната данъчна група е забранена (‘0’) или разрешена (‘1’). |
TaxX | Стойността на данъчните ставки. |
Ако не се зададе нищо в областта за данни, ФП връща валидните за момента стойности.
Ако един от параметрите трябва да бъде указан, то тогава и останалите трябва да се зададат. Установяването на нови данъчни ставки е разрешено само преди издаването на първия клиентски фискален бон за деня.
Преди фискализация данните от командата се пазят само в оперативната памет и могат да се променят неограничен брой пъти.
Област за данни: | <Type>[<Align>][<AllowN>],<Data> или <Type>[<Align>];<Data> |
Отговор: | Няма данни |
Type | Тип на баркода. Един байт с допустима стойност: |
Align | Един байт - 'L', 'R', или 'C' - съответно ляво и дясно подравнен или центриран. Допустим е само при двумерните баркодове. Ако разделителят от данните е ',', има и дублиращ текст. |
AllowN | Незадължителен параметър - един символ със стойност '*'. Ако го има, баркодове Code 128 и ITF при необходимост (по-дълги входни данни) ще се отпечатат с размер на тънката линия само една точка. Имайте предвид, че така отпечатания баркод не отговаря на стандартите, но повечето четци все пак ще го прочетат. Максималната дължина на входните данни нараства двойно. На останалите баркодове параметърът не оказва влияние. |
Командата отпечатва баркод. Допустима е само в отворен фискален или служебен бон. Двумерните баркодове могат да се печатат с ляво и дясно подравняване или центрирани, едномерните – само центрирани. Ако разделителят в данните е запетая, под баркода се печати информацията и в текстов вид. Ако дължината на данните или съдържанието им е навалидно, вдига се статус бит „Синтактична грешка” и баркодът не се отпечатва.
Височината на едномерните баркодове се задава с команда 43.
Област за данни: | Option[,Name] |
Отговор: | Result|Name |
Option: |
|
Name | Име на съответния тип плащане (до 24 символа). Ако не е зададено, връща текущото име. |
Result | Един байт: |
Командата задава коментарен текст, който се печати пред данните от допълнителните типове плащания (команда 53). Разрешена е само преди издаването на първия клиентски фискален бон за деня.
Област за данни: | [<WithTime>] |
Отговор: | DT |
WithTime | Опционален параметър – символът 'T'. Ако присъствува, връща се и часа на последния запис. |
DT | Датата (или датата и часа) на последния (най-късен) запис във фискалната памет във формат: DD-MM-YYYY или DD-MM-YYYY hh:mm:ss |
Област за данни: | <Dept>,<TaxGr>,<Line1>[<LF><Line2>] |
Отговор: | Няма данни |
Dept | Номер на департамент. Цяло число от 1 до 1200. |
TaxGr | Данъчна група, асоциирана с департамента. |
Line1 | Име или поясняващ текст за департамента. До 28 символа. |
LF | Разделител. Един символ – ASCII код 10. |
Line2 | Име или поясняващ текст за департамента – втори ред. Незадължителен параметър - до 34 символа. |
Командата може да се изпълни само ако за департамента не са издавани фискални бонове след последния Z-отчет. При нов принтер или след RAM ресет имената на департаментите са празни. Програмираното име се печати в разширения дневен финансов отчет с печат на департаментите (команда 117) и при желание в началото на всеки фискален бон.
Област за данни: | <Dept> |
Отговор: | ExitCode[TaxGr,RecSales,RecSum,TotSales,TotSum,Line1<LF>Line2] |
Dept | Номер на департамент. Цяло число от 1 до 1200. При стойност 0 на департамента се връщат данните за продабите, извършени без посочване на департамент. В този случай липсва данъчната група. |
ExitCode | Един байт с възможни стойности: |
TaxGr | Данъчна група на департамента. |
RecSales | Брой продажби за департамента в бона. |
RecSum | Натрупана сума за текущия или последния фискален бон за съответния департамент. Плаващо число с два десетични знака. |
TotSales | Брой продажби за департамента за деня. |
TotSum | Натрупана сума за деня за съответния департамент. Плаващо число с два десетични знака. |
Line1 | Име или поясняващ текст за департамента. |
Line2 | Име или поясняващ текст за департамента – втори ред. |
Област за данни: | <Test> |
Отговор: | Result,Free |
Test | Един байт. Ако е ‘Т’ то се извършва запис във фискалната памет, иначе няма запис, а само се връщат параметрите. |
Result | Един байт: |
Free | Броя на останалите свободни блокове за запис на такива блокове. 4 байта. |
Тази команда се изпълнява за тестване на фискалната памет.
Тестови блок за запис във фискалната памет: 55h,AAh,33h,CCh,5Ah,A5h,3Ch,C3h.
Ако е вдигнат S1.1 фискалната памет не е форматирана или е в READONLY режим.
Област за данни: | [*]<Calc> |
Отговор: | <Name>,<FwRev><Country><Sp><FwDate><Sp><FwTime>,<Che>,<Sw>,<Ser>,<FM> |
* Незадължителен параметър, позволяващ да се прочетат всичките 16 конфигурационни ключета. | |
Calc | Ако е ‘1’ се изчислява контролна сума на кодовата памет (фирмуера), в противен случай се връща ‘FFFF’. 1 байт. |
Name | Име на фискалното устройство (в случая "FP-800 / FP-2000 / FP-650 / SK1-21F / SK1-31F / FMP-10 / FP-700"). |
FwRev | Версията на програмното осигуряване. 4 байта. |
Country | Дву-буквено означение на държавата (в случая „BG”). |
Sp | Интервал. 1 байт. |
FwDate | Датата на програмното осигуряване DDMmmYY. 7 байта. |
Sp | Интервал. 1 байт. |
FwTime | Час на програмното осигуряване HHMM. 4 байта. |
Che | Контролна сума на EPROM. 4 байта стринг в шестнайсетичен вид. Например, ако контролната сума е 214Ah, то тя ще се предаде 3Fh,31h,34h,41h. |
Sw | Ключетата от Sw1 до Sw8. 8 байта стринг с ‘0’ или ‘1’ |
Ser | Индивидуален номер на устройството - 8 байта. |
FМ | Номер на фискалния модул – 8 байта. |
Област за данни: | Serial,FMnumber |
Отговор: | Result,CountryStr |
Serial | Това са 8 байта – индивидуален номер на принтера, в който трябва да се съдържат 2 латински букви и най-малко 6 цифри. |
FMnumber | Това са 8 байта – номер на модула фискална памет. Състои се само от цифри. |
Result | Един байт съдържащ буква: ’P’ - няма грешки, ‘F’ - има грешки. |
CountryStr | Стринг, съдържащ името на страната. Например „BULGARIA” |
Командата може да се изпълни само в сервизен режим във фирмата-производител. Принтерът се предоставя на клиента с предварително записани индивидуален номер на принтера и номер на фискалната памет. Ако Result = ‘F’ и е вдигнат S1.1 командата не е изпълнена защото фискалната памет не е форматирана или индивидуалният номер вече е зададен.
Област за данни: | Type |
Отговор: | Няма данни |
Type | Един байт с допустима стойност: Безусловно се добавя надписа „не се дължи плащане!” с тройна височина. 1 - добавя надписа „по този бон„. 2 - добавя отгоре и отдолу рамка от символа '*' с двойна ширина. |
Принтерът печати разделителна линия от посочения тип по цялата ширина на хартията. Трябва да е отворен фискален или служебен бон.
Област за данни: | Няма данни |
Отговор: | <CntD>,<SumD>,<CntM>,<SumM> |
CntD | Брой отстъпки след последния Z-отчет. |
SumD | Сума от отстъпки след последния Z-отчет. |
CntM | Брой надбавки след последния Z-отчет. |
SumM | Сума от надбавки след последния Z-отчет. |
Област за данни: | [<SHA1>][<SkipZ>]<Start>[,<End>] |
Отговор: | Няма данни |
SHA1 | Опционален аргумент – един байт със стойност '#'. Ако присъства, за всеки Z-отчет се отпечатва и контролната сума по алгоритъм SHA-1. |
SkipZ | Опционален аргумент – един байт със стойност '*'. Ако присъства, за всеки Z-отчет се отпечатват само данъчните ставки, за които натрупаните суми за деня са ненулеви. Такъв отчет е нестандартен и може дасе използува само за вътрешни справки на обекта! |
Start | Началната дата на фискален запис. 6 байта (DDMMYY). |
End | Крайна дата на фискален запис. 6 байта (DDMMYY). |
Тази команда отпечатва пълен отчет на фискалната памет за периода между две дати. Ако вторият параметър липсва, командата генерира месечен или годишен отчет. Синтаксисът в този случай е:
Start | Месец – 4 байта (MMYY) за месечен отчет. |
Start | Година – 2 байта (YY) за годишен отчет. |
Област за данни: | [<Start>,<End>] |
Отговор: | Няма данни |
Start | Начален номер на фискален запис. |
End | Краен номер на фискален запис. |
Командата води до изчисляване и отпечатване на съкратен отчет на фискалната памет. Този отчет за целия период на употреба на фискалния принтер може да се предизвика и чрез задържането на бутон <FEED> при включване на принтера до четвъртия звуков сигнал. При липса на входни данни се отпечатва отчет за целия период на експлоатация.
Област за данни: | Няма данни |
Отговор: | TaxA,TaxB,TaxC,TaxD,TaxE,TaxF,TaxG,TaxH |
TaxA | Данъчна ставка А |
TaxB | Данъчна ставка Б |
TaxC | Данъчна ставка В |
TaxD | Данъчна ставка Г |
TaxE | Данъчна ставка Д |
TaxF | Данъчна ставка Е |
TaxG | Данъчна ставка Ж |
TaxH | Данъчна ставка З |
Област за данни: | <Text>[,<Name>] |
Отговор: | Result |
Text | Това са до 14 байта съдържащи ЕИК като текст. |
Name | Това е коментарният текст пред ЕИК. По подразбиране е „ЕИК”. |
Result | ‘P’ Няма грешка. ‘F’ Грешка. |
Област за данни: | Няма данни |
Отговор: | <Text>,<Name> |
Text | ЕИК като текст. |
Name | Коментарният текст преди ЕИК. |
Област за данни: | Text |
Отговор: | Няма данни |
Text | Текст до 40 символа, който се изпраща към дисплея. Ако е необходимо да се предадат ASCII символи по-малки от 20h (управляващи поредици) те се увеличават с 40h и се предхождат от 10h (DLE). Пример: за да се предаде 1Bh,4Bh,00h в полето за данни се записва 10h,5Bh,4Bh,10h,40h. |
Област за данни: | <OpCode>,<OldPwd>,<NewPwd> |
Отговор: | Няма данни |
OpCode | Код на оператор. От 1 до 16. |
OldPwd | Стара парола (4 до 8 цифри). |
NewPwd | Нова парола (4 до 8 цифри). |
Задава една от шестнайсетте операторски пароли. Паролата ще бъде поискана при отваряне на фискален бон. При три грешни опита за задаване на парола принтерът блокира и трябва да се изключи и включи за продължаване на работата.
След инициализация или нулиране на оперативната памет всички пароли са „0000”.
Област за данни: | <OpCode>,<Pwd>,<OpName> |
Отговор: | Няма данни |
OpCode | Код на оператор. От 1 до 16. |
Pwd | Парола (4 до 8 цифри). |
OpName | Име на оператор (до 24 символа). |
Задава едно от шестнайсетте имена на оператори. Номерът и името на оператора се отпечатва в началото на всеки фискален (клиентски) бон. При три грешни пароли принтерът блокира и трябва да се изключи и включи за продължаване на работата.
След инициализация или нулиране на оперативната памет и шестнайсетте имена на оператори са празни.
Област за данни: | Няма данни |
Отговор: | CanVd,TaxA,TaxB,TaxC,TaxD,TaxE,TaxF,TaxG,TaxH,Inv,InvNum |
CanVd | Възможно ли е връщане (продажба с отрицателен знак) [0/1] |
TaxA | Натрупана сума по данъчна група А |
TaxB | Натрупана сума по данъчна група Б |
TaxC | Натрупана сума по данъчна група В |
TaxD | Натрупана сума по данъчна група Г |
TaxE | Натрупана сума по данъчна група Д |
TaxF | Натрупана сума по данъчна група Е |
TaxG | Натрупана сума по данъчна група Ж |
TaxH | Натрупана сума по данъчна група З |
Inv | Отворена ли е разширена клиентска бележка. |
InvNmb | Номер на следващата фактура /10 цифри/. |
Дава информация за натрупаните суми по данъчни групи и дали е възможно връщане на регистрирани стоки.
Област за данни: | Няма данни |
Отговор: | Няма данни |
Разпечатва се информация за продажбите по оператори. За всеки оператор се отпечатва името, номера, броя фискални бонове, отстъпки, надбавки, отстъпки, корекции и натрупаните суми.
Област за данни: | [<mSec>] |
Отговор: | Няма данни |
mSec | Дължина на импулса в милисекунди (5-100) |
Изпраща импулс за отваряне на чекмедже. Параметърът задава нова стойност на дължината на импулса, която се запомня от принтера. Ако параметъра се пропусне, използува се последната зададена стойност. След RESET на паметта се установява стойност 15 ms.
Област за данни: | <Option>[Parameters] |
Отговор: | ErrorCode[Data] |
Option | Един байт, определящ вида на исканата операция. В зависимост от него командата може да изисква или не допълнителни параметри. Възможни стойности: ‘I’, ‘P’, ‘D’, ‘A’, ‘C’, ‘R’, ‘F’, ‘L’, ‘N’, ’X’, ’f’, ‘l’, ‘n’, ‘x’. |
ErrorCode | Един байт, показващ резултата от операцията, със значение: - ‘P Командата е успешна. - ‘F’ Командата е неуспешна. |
Parameters | Данни за командата. Подробно са описани по-долу по <Option>. |
- ‘I’ Article information
Синтаксис: | <I>[@] |
Отговор: | Total,Prog,Len | <9h>,<ProgrFTT>,<NameMaxLength> |
@ | Опционален параметър предизвикващ прочитането на броя програмирани FTT на горива и максималния брой символи за името им. *Само за принтери тип 3 и 31. |
Total | Общ брой програмируеми артикули (3000 за този принтер). |
Progr | Брой на програмираните артикули. |
Len | Максимална дължина на име на артикул. |
ProgrFTT | Брой програмирани FTT на горива. |
NameMaxLength | Максималния брой символи за името на FTT. |
- ‘P’ Програмиране на артикул.
Синтаксис: | <p><TaxGr><PLU>,<Group>,<SPrice>,[<Replace>]<Quantity>,<Name> |
TaxGr | Данъчна група (‘А’,’Б’,’В’,’Г’,’Д’,’Е’,’Ж’,’З’) |
PLU | Номер на артикула (1 до 999999999) |
Group | Стокова група (1 до 99) |
SPrice | Единична цена. До 8 значещи цифри. |
Replace | Незадължителен параметър – един байт със стойност ‘A’. Променя значението на следващия параметър (Quantity). |
Quantity | Число с до 3 десетични знака – наличното количество за дадения артикул. Ако параметърът Replace присъствува, то наличното количество се замества с Quantity, в противен случай то се добавя към старото количество (ако артикулът вече е програмиран, разбира се). Всяка команда за продажба на артикула ще намалява това количество. |
Name | Име на артикула. До 36 байта. Могат да се програмират до 3000 артикула. Командата ще се отхвърли, ако вече има такъв артикул и по него има продажби. Може да се промени артикул с нулеви натрупани суми. Ако принтерът е регистриран за работа в бензиностанция и артикулът е от група 'В', се проверява и за дублирано име. |
- ‘A’ Промяна на наличното количество за артикул.
Синтаксис: | <A><PLU>,<Quantity> |
PLU | Номер на артикула (1 до 999999999). |
Quantity | Корекция на количеството – плаващо число с до 3 десетични знаци. Положителните числа увеличават количеството, отрицателните го намаляват. Командата се отхвърля ако артикулът не е програмиран. |
- ‘C’ Задаване цена на артикул или гориво.
Синтаксис: | C<PLU>,<Price> |
PLU | Номер на артикула. |
Price | Единична цена на артикула. |
Синтаксис1: | C@<FTT>,<Price> |
FTT | FTT номер на гориво. |
Price | Единична цена на горивото. |
- ‘D’ Изтриване на артикул.
Синтаксис: | <D><A | PLU | PLU1,PLU2> |
’A’ | Изтрива всички артикули с нулеви натрупани суми. |
PLU | Изтрива артикула с посочения номер, ако няма натрупани суми. |
PLU1,PLU2 | Изтрива артикулите в зададения интервал без натрупани суми. |
- ‘R’ Прочитане данните за артикул.
Синтаксис: | <R><PLU> | R@<FTT> |
Отговор: | <’P’><PLU>,<TaxGr>,<Grp>,<SPrice>,<Total>,<Sold>,<Avail>,<Name> |
<PLU> | Номер на артикула. Между 1 и 999999999. |
<TaxGr> | Данъчна група. Един байт. |
<Grp> | Стокова група. От 1 до 99. |
<SPrice> | Единична цена. Плаващо число с десетични знаци текущите за принтера. |
<Total> | Натрупана сума за дадения артикул. |
<Sold> | Продадено количество. Плаващо число с 3 десетични знака. |
<Avail> | Налично количество. Плаващо число с 3 десетични знака. |
<Name> | Име на артикула. До 36 байта. |
Отговор1: | <p><FTT>,<TaxGr>,<Grp>,<SPrice>,<Total>,<Sold>,<Avail>,<FTTName> |
<FTT> | Номер на FTT. |
<Grp> | Винаги ще бъде 0. |
<SPrice> | Единична цена. Плаващо число с десетични знаци текущите за принтера. |
<Total> | Натрупана сума за даденото FTT. |
<Sold> | Продадено количество. Плаващо число с 3 десетични знака. |
<Avail> | Винаги ще бъде 0. |
<FTTName> | Име на FTT. До 16 байта. |
При не намерен артикул или FTT се връща един байт ‘F’. |
- ‘F’ Връщане на данните за първия намерен програмиран артикул или FTT.
Синтаксис: | <F>[<PLU>] |
Върнатите данни са като при подкоманда ‘R’ | ‘R’@. Ако е зададен параметърът PLU, то търсенето започва от него в нарастваща посока, в противен случай са започва от 1. При подадени F@ ще върне първия намерен FTT.
- ‘L’ Връщане на данните за последния намерен програмиран артикул.
Синтаксис: | <L>[<PLU>] |
Върнатите данни са като при подкоманда ‘R’. Ако е зададен параметърът PLU, то търсенето започва от него в намаляваща посока, в противен случай са започва от 999999999.
- ‘N’ Връщане на данните за следващия намерен програмиран артикул или FTT.
Синтаксис: | <N> |
Върнатите данни са като при подкоманда ‘R’.
Последните три подкоманди са за извличане от компютъра на данните за всички програмирани артикули. Подава се подкоманда ‘F’ или ‘L’ и след това подкоманда ‘N’ до получаване на отговор ‘F’, което означава, че е прочетен последния артикул. Артикулите се връщат сортирани по номер в нарастваща или намаляваща посока в зависимост от първата подадена команда.
- ‘f’ Връщане на данните за първия намерен артикул или FTT с продажби по него.
Синтаксис: | <f>[<PLU>] |
Върнатите данни са като при подкоманда ‘R’. Ако е зададен параметърът PLU, то търсенето започва от него в нарастваща посока, в противен случай са започва от 1.
- ‘l’ Връщане на данните за последния намерен артикул с продажби по него.
Синтаксис: | <l[<PLU>] |
Върнатите данни са като при подкоманда ‘R’. Ако е зададен параметърът PLU, то търсенето започва от него в намаляваща посока, в противен случай са започва от 999999999.
- ‘n’ Връщане на данните за следващия намерен артикул или FTT с продажби по него.
Синтаксис: | <n> |
Върнатите данни са като при подкоманда ‘R’. Последните три подкоманди са за извличане от компютъра на данните за всички артикули с продажби за деня. Подава се подкоманда ‘f’ или ‘l’ и след това подкоманда ‘n’ до получаване на отговор ‘F’, което означава, че е прочетен последния артикул. Артикулите се връщат сортирани по номер в нарастваща или намаляваща посока в зависимост от първата подадена команда.
- ‘X’ Намиране на първия свободен (не програмиран) артикул.
Синтаксис: | <X>[<PLU>] |
Отговор: | PLU |
Ако е зададен параметърът PLU, то се връща първия свободен (непрограмиран) артикул с номер по-голям или равен на него. Ако липсва, се подразбира PLU=1.
- ‘x’ Намиране на последния свободен (непрограмиран) артикул.
Синтаксис: | <X>[<PLU>] |
Отговор: | PLU |
Ако е зададен параметърът PLU, то се връща първия свободен (непрограмиран) артикул с номер по- малък или равен на него. Ако липсва, се подразбира PLU=9h9h9h9h9h9h9h9h9h.
Област за данни: | [<Option>[N] |
Отговор: | Closure,FM_Total,TotA,TotB,TotC,TotD,TotE,TotF,TotG,TotH |
Командата има същия синтаксис както команда 69 (45h), но в началото на дневния отчет се отпечатва и списъка на артикулите с PLU по-малко или равно на 10, по които има продажби за деня (горива).
Област за данни: | <Count> |
Отговор: | Няма данни |
Count | Брой дублиращи бонове (приема се само стойност 1!). |
Предизвиква отпечатването на копие на последния затворен фискален бон с продажби. Копието се маркира като СЛУЖЕБЕН БОН и веднага след HEADER-а се отпечатва ред с удебелен шрифт „ДУБЛИКАТ”. При повторен опит командата ще откаже да печати. Отпечатването на дублиращ бон е невъзможно и ако броят редове в бона е по-голям от 1000.
Област за данни: | [<Extended>] |
Отговор: | Cash,Credit,Debit,Cheque,Pay1,PayF,Pay3,Pay4,Closure,Receipt[,Pay5,...] |
Extended | Опционален параметър – един байт със стоиност '*'. Ако го има, връщат се всички 11 допълнителни типа плащане. |
Cash | Платено в брой |
Credit | На кредит |
Debit | С дебитна карта |
Cheque | Платено с чек |
PayX | Платено по някой от допълнителните типове плащане |
Closure | Текущ (последен) фискален запис |
Receipt | Номер на следващия фискален бон |
Връща информация за разпределението на сумата за деня по начин на плащане.
Област за данни: | <Option>[<Start>,<End>[,<Group>]] |
Отговор: | ErrorCode |
Option | Определя типа на отпечатваната информация. Възможни стойност: |
Start | Начален номер на артикул, който да се включи в отчета. По подразбиране е 1. |
End | Последен номер на артикул, който да се включи в отчета. По подразбиране е 999999999. |
Group | Число от 1 до 99. Ако е зададен този параметър, само артикулите от тази група се включват в отчета, в противен случай се печатат всички групи. |
Артикулите са сортирани по номер. При дневен финансов отчет с нулиране натрупаните суми по артикули се нулират, ако явно не е указано да се запазят.
Област за данни: | Operator |
Отговор: | Receipts,Total,Discount,Surcharge,Void,Name[,Password] |
Operator | Номер на оператор (1 до 16). |
Receipts | Брой фискални бонове, издадени от оператора. |
Total | Брой продажби и обща натрупана сума, разделени с ‘;’. |
Discount | Брой отстъпки и обща сума на отстъпките. |
Surcharge | Брой надбавки и обща сума на надбавките. |
Void | Брой корекции и обща сума на корекциите. |
Name | Име на оператора. |
Password | Операторска парола. Връща се само ако принтерът е със поставен сервизен джъмпер. |
Командата позволява да се получи информацията, отпечатвана при отчет оператори. Сумите се връщат като плаващи числа с текущия брой десетични знаци.
Област за данни: | Няма данни |
Отговор: | DocNum |
DocNum | Номер на последния издаден документ (7 цифри). |
Област за данни: | <Rec1>,<Type[Storno]>[,RecF] |
Отговор: | Зависи от стойността на Type |
Rec1 | Номер на запис от фискалната памет. |
Storno | Опционален символ „*” - връща се информация за сторно по вид и данъчна група. Само за справки 1 до 3. |
Type | Вид на исканата информация. Цяло число със стойност: Информация за активните данъчни ставки за въпросния Z-отчет запис. Информация за оборота за посочения запис или период. Информация за нет-сумите за посочения запис или период. Информация за начисления ДДС за посочения запис или период. Допълнителна информация за посочения запис. Информация за посочения запис от фискалната памет за задаване на данъчни ставки. Информация за посочения запис от ФП с нулиране на RAM. Информация за сумите по тип плащане за посочения запис или период. Информация за сумите по тип плащане за посочения запис или период. Информация за сумите по тип плащане за посочения запис или период. Информация за общия оборот и ДДС до посочения Z-отчет. Информация за FTT и имената на програмираните горива за този Z-отчет. Само за принтери тип 3 и 31. Информация за продадените количества и натрупания оборот за програмираните горива за този Z-отчет. Само за принтери тип 3 и 31. Информация за програмираните колонки за този Z-отчет. Само за принтери тип 31. Информация за програмираните колонки за този Z-отчет. Само за принтери тип 31. Информация за програмирана колонка за този Z-отчет. Само за принтери тип 31. |
RecF | Номер на фискален запис за справки 1, 2 и 3. За справки 0, 4, 5, 6, 10, 11, 12, 13 и 14 това поле е празно. При наличие на параметъра се връщат данните за периода, зададен от Rec1 и RecF за справки 1, 2, 3, 7, 8 и 9. За справка тип 15 полето съдържа номер на колонка, а не краен запис. |
ErrorCode | Един байт със стойност: |
Closure | Номер на фискален запис. |
ClCnt | Брой фискални записи. |
VR | Брой сторно бонове от тип „Връщане„. |
VE | Брой сторно бонове от тип „Операторска грешка„. |
VT | Брой сторно бонове от тип „Намаление на данъчната основа„. |
SR | Брой продажби в бонове от тип „Връщане„. |
SE | Брой продажби в бонове от тип „Операторска грешка„. |
ST | Брой продажби в бонове от тип „Намаление на данъчната основа„. |
DecRec | Последен (активен) запис с данъчни ставки. |
Dec | Брой десетични знаци за посочения Z-отчет запис. |
Enabled | Разрешени данъчни ставки – 8 байта със ст-ст ‘0’ или ‘1’, където ‘1’ означава „разрешено”. |
Receipts | Брой фискални бонове. |
PerX | Данъчна ставка за съответната данъчна група в проценти. |
TotX | Оборот за съответната данъчна група. |
NetX | Нето сума за съответната данъчна група. |
TaxX | Начислен ДДС за съответната данъчна група. |
ResetRec | Последно нулиране на RAM до този фискален блок. |
_LEN | Номер на КЛЕН за този фискален блок. |
DT | Дата и час на данните във формат: DD-MM-YY hh:mm:ss. |
CashP | Платено в брой. |
CardP | Платено с дебитна карта. |
CredP | Платено с кредитна карта. |
CheqP | Платено с чек. |
APaid x | Допълнителни типове плащане. |
DiscC,DiscS | Брой отстъпки и натрупана сума от отстъпки. |
MeUpC,MeUpS | Брой надбавки и натрупана сума от надбавки. |
VoidC,VoidS | Брой корекции и обща сума от корекции. |
CanC,CanS | Брой отказани бонове и обща сума от отказани бонове. |
InC,InS | Брой служебни въвеждания и сума. |
Out,OutS | Брой служебни извеждания и сума. |
GTotal | Натрупан оборот до посочения дневен отчет включително. |
GVAT | Натрупан ДДС до посочения дневен отчет включително. |
FTT i | FTT на програмирано гориво. |
Name i | Име на програмирано гориво. |
Vol i | Натрупан обем от продажби на програмирано гориво. |
S i | Натрупана сума от продажби на програмирано гориво. |
Disp i | Номер на програмирана колонка. |
Term i | Номер на програмиран резервоар. |
VolAct i | Обем на резервоара при текуща температура. |
Vol15C i | Обем на резервоара при 15 градуса. |
FL i | Ниво на горивото в резервоара. |
Tmpr i | Температура на горивото в резервоара. |
Nozzle i | Номер на пистолет. |
CVal i | Стойност на брояча на пистолет. |
Командата връща информация по данъчни групи или друг критерий за отделен запис или за посочен период. Периодичната справка за по-дълъг период може да отнеме няколко секунди.
Област за данни: | <RowNum>,<Data> или R<RowNum> |
Отговор: | Няма данни или Data |
R | Ако символът ‘R’ присъства в началото на данните, то командата връща съдържанието на съответния графичен ред в шестнайсетичен вид. |
RowNum | Показва реда, който програмираме. Число от 0 до 95. |
Data | Графични данни. Задават се в шестнайсетичен вид, два символа за всеки байт информация. Дължината на данните е до 72 байта, ако са по-малко, се допълват автоматично с 00. |
Командата дава възможност за дефиниране на графично лого с размер до 72x12mm (576x96 точки) или 54х12mm (384х96 точки) в зависимост от широчината на използваната термо хартия по желание на потребителя. Печатът му се активизира с команда 43. Със същата команда се задава и вертикалния му размер. За дефиниране на цялото лого командата трябва да се изпълни до 96 пъти, веднъж за всеки ред. При ресет на RAM логото се зарежда от флаш-паметта. Програмираното с команда 115 лого може да се прехвърли във флаш-паметта с команда 41.
Област за данни: | <Address>,<Bytes> |
Отговор: | Data |
Address | Начален адрес (спрямо началото на фискалната памет) – шестнайсетично число от 000000h до 1FFFFFh (за 16 Mbit фискална памет). |
Bytes | Брой байтове, които да се върнат в десетичен вид (от 1 до 64). |
Data | Съдържанието на искания блок фискална памет в шестнайсетичен вид (по 2 символа за всеки байт данни). |
Командата връща съдържанието на част от фискалната памет. За прочитане на цялата фискална памет трябва да се изпълни многократно с различен начален адрес.
Област за данни: | [<Option>[N]] |
Отговор: | Closure,FM_Total,TotA,TotB,TotC,TotD,TotE,TotF,TotG,TotH |
Командата е идентична с 69 (45h) от предишната версия с единствена разлика, че в началото на дневния отчет се отпечатват и департаментите, за които има продажби за деня. Команда 69 е оставена непроменена. Команди 69, 108, 117 и 118 с опция ‘0’ (дневен финансов отчет с нулиране) нулират и натрупаните данни по департаменти.
Област за данни: | [<Option>[N]] |
Отговор: | Closure,FM_Total,TotA,TotB,TotC,TotD,TotE,TotF,TotG,TotH |
Командата е идентична с 69 (45h) от предишната версия с единствена разлика, че в началото на дневния отчет се отпечатват и департаментите, за които има продажби за деня, както и артикулите с номера от 1 до 40, ако по тях има продажби. Команда 69 е оставена непроменена. Команди 69, 108, 117 и 118 с опция ‘0’ (дневен финансов отчет с нулиране) нулират и натрупаните данни по департаменти.
Област за данни: | <Type>[,<InpData>] |
Отговор: | Зависи от входните данни |
Type | Клас на командата за работа с КЛЕН. Един байт с допустима стойност: |
- Клас команди 'C': Проверка на данни от КЛЕН.
P[#] | Отпечатва отчет за валидността на всички SHA-1 контролни суми за Z-отчети, намерени в КЛЕН. Сравняват се SHA-1 от КЛЕН и от фискалната памет. При разлика се отпечатва един ред с номера на Z-отчета, дата и часа. Ако присъства опционалният символ '#', то се отпечатва информация за всички намерени SHA-1, независимо дали са валидни или не. |
R[<Num>] | Връща информация от КЛЕН за Z-отчет с номер Num. Прочитат се данните от посочения Z-отчет като документ. |
Формат на отговора: | |
P,FDocs,DT,SK | Информация за намерения Z-отчет: |
FDocs | Номер на документ на Z-отчета. |
DT | Дата и час на з отчета във формат „DD-MM-YYYY hh:mm:ss. |
SK | 40 символа – SHA-1 на Z-отчета в шестнайсетичен вид. |
F | Не са намерени данни в КЛЕН за този Z-отчет. |
Z[<Num>] | Връща информация от КЛЕН за Z-отчет с номер Num. Прочита се реалния текст на документите, записани в КЛЕН, изчислява се SHA-1 и се сравнява със SHA-1 от Z-отчета. Командата може да трая дълго при много документи в дневния отчет. |
Възможни отговори: | |
P,Docs,Bytes,SK | Контролната сума е валидна. Прочетени са Docs документа и Bytes байта данни. SK е 40 символа – контролната сума в шестнайсетичен вид. |
F,Docs,Bytes,SK,SZ | Контролната сума е невалидна. Прочетени са Docs документа и Bytes байта данни. SK и SZ са по 40 символа – съответно запомнената в КЛЕН и изчислената контролни суми. |
F | Не са намерени данни в КЛЕН за този Z-отчет. |
- Клас команди 'I': Информация за КЛЕН.
[X] | След символа 'I' може да няма нищо или да има буквата 'X'. |
Връща се следната информнация: | |
P,Tot,Used,C1,C2,D1,D2 | |
Tot | Общ размер на контролната лента в байтове. |
Used | Използуван размер на контролната лента в байтове. |
C1 | Първи номер на Z-отчет в КЛЕН. |
C2 | Последен номер на Z-отчет в КЛЕН. |
D1 | Първи номер на документ в КЛЕН. |
D2 | Последен номер на документ в КЛЕН. |
- Клас команди 'R': Четене на данни от КЛЕН.
[#<Flg>,]<D1>[,<DF>] | Връща първия ред от документ номер D1 и задава край на търсенето при документ DF (включително). Следващите редове се теглят с изпращане на команда клас 'N'. Ако е пропуснат втория аргумент, избран е само един документ - D1. |
[#<Flg>,]*<Cl>[,<D1>[,<DF>]] | Връща първия ред от документ номер D1 за Z-отчет Cl и задава край на търсенето при документ DF (включително) за същия Z-отчет. Следващите редове се теглят с изпращане на команда клас 'N'. Броячът на документи е за Z-отчета, т. е. Командата „*5,1,3” ще избере първите три документа от Z-отчет номер 5.Ако е пропуснат DF, то е избран само един документ – D1. Ако са пропуснати D1 и DF, избрани са всички документи за Z-отчета. |
<Flg>,<DT1>,<DT2> | Връща първия ред от документ с дата и час DT1 и задава край на търсенето при документ с дата и час DT2 (включително). Има филтриране на документите, които са избрани, в зависимост от аргумента Flg. Следващите редове се теглят с изпращане на команда клас 'N'. |
Формат на входните аргументи: | |
Flg | Символ, задаващ тип на документ, който да се избере за четене: |
DT1 | Начални дата и час на справката във формат DDMMYY[hhmmss]. Ако се изпусне часа, то се подразбира „000000”, т.е 00:00:00. |
DT2 | Крайни дата и час на справката във формат DDMMYY[hhmmss]. Ако се изпусне часа, то се подразбира „235959”, т.е 23:59:59. |
Трите предходни подкоманди (по документ, Z-отчет и дата), връщат един от отговорите, посочени по-долу:
P,Text | Има пореден текстов ред в КЛЕН, съдържанието му е в Text. Прочетеният текст е винаги в кодова таблица 1251, независимо дали от ключетата е избран режим DOS-овска кодова таблица. Кодовата таблица е важна за правилното пресмятане на SHA-1 контролната сума. |
*, | Има пореден текстов ред в КЛЕН и това е празен ред – разделител на документи. Може да се използува за броене на намерените документи или прекратяване на четенето точно в края на документ. |
F | Няма повече данни в КЛЕН. |
Начинът на работа е следният:
Подава се една от предходните команди. Ако отговорът е 'F', то няма такива данни в КЛЕН. В
противен случай се изпраща команда клас 'N', докато се върне отговор 'F' (няма повече данни). Така
може да се изтегли ред по ред желаната част от КЛЕН като текст.
Q<Addr>,<Bytes> | Директно четене на данни от КЛЕН в „суров” вид. Командата връща 2*Bytes символа, представящи Bytes байта от КЛЕН, започвайки от адрес Addr. Addr се задава шестнайсетично, а Bytes – десетично. Данните се връщат в шестнайсетичен вид. |
q<Addr>,<Bytes> | Директно четене на данни от КЛЕН в „суров” вид. Разликата от предходната команда е в това, че символите се връщат в текстов вид ако са печатаеми (над 1Fh) или във вида „<XX>” (шестнайсетично), ако са контролни (под 20h). |
- Клас команди 'N':
Няма допълнителни данни след този символ. Използува се в комбинация с някои от командите от клас 'R'. Служи за прочитане на следващ текстови ред от КЛЕН. Възможните отговори са същите както при началната команда клас 'R' и са описани по-горе.
ВНИМАНИЕ! Изпращането на тази команда без предхождаща от клас 'R', задаваща обхвата на справката, може да доведе до четенето на безсмислени данни!
- Клас команди 'P': Печат на данни от КЛЕН.
[<Fnt>][#<Flg>,]<D1>[,<D2>] | Отпечатват се документите от номер D1 до номер D2 включително. Ако е пропуснат втория аргумент, избран е само един документ - D1. |
[<Fnt>][#<Flg>,]*<Cl>[,<D1>[,<D2>]] | Отпечатват се документите от номер D1 за Z-отчет Cl до номер D2 включително за същия Z-отчет. Броячът на документи е за Z-отчета, т. е. Командата „*5,1,3” ще отпечати първите три документа от Z-отчет номер 5. Ако е пропуснат D2, то е избран само един документ – D1. Ако са пропуснати D1 и D2, избрани са всички документи за Z-отчета. |
[<Fnt>]<Flg>,<DT1>,<DT2> | Печатат се документите с дата и час от DT1 до DT2 включително. Има филтриране на документите, които са избрани, в зависимост от аргумента Flg. |
Формат на входните аргументи: | |
Fnt | Незадължителен параметър, с който можем да предизвикаме печата на документите от КЛЕН с шрифт с определена височина, ако принтерът го допуска. Един байт с допустима стойност: |
Flg | Символ, задаващ тип на документ, който да се избере за четене: |
DT1 | Начални дата и час на справката във формат DDMMYY[hhmmss]. Ако се изпусне часа, то се подразбира „000000„, т.е 00:00:00. |
DT2 | Крайни дата и час на справката във формат DDMMYY[hhmmss]. Ако се изпусне часа, то се подразбира „235959„, т.е 23:59:59. |
Трите предходни подкоманди (по документ, Z-отчет и дата), връщат в резултат броя отпечатани документи като цяло число.
Копието на документите от КЛЕН е почти идентично с оригиналните документи. Разликите са следните:
Копията никога нямат графично лого преди header-а.
В копията никъде не присъства графичното фискално лого.
Надписът „ФИСКАЛЕН БОН” с фискалното лого се заменя с надпис „ФИСКАЛЕН БОН – КОПИЕ” с шрифт с двойна ширина.
Прочетените документи нямат графично лого.
Центрирането се имитира с добавяне на интервали в началото на реда.
Печатът с двойна ширина се имитира с добавяне на един интервал преди всяка буква.
Ако във фискалните или служебните бонове има баркод, той се заменя с текста „БК [XXXX]”, където XXXX е текстовата информация от баркода.
Прочетеният ред съдържа само текст, без символите <CR> и <LF> в края на реда. При изтегляне
на текстова информация от КЛЕН тези символи трябва да се добавят в края на всеки ред в тази
последователност. Ако това се направи, външна програма може да изчисли SHA-1 сумата и да я свери
със записаната в КЛЕН – би трябвало да съвпадат.
Върнатият ред със префикс '*' (край на документ) също трябва да се добави във файла (като празен
ред – само символите <CR> и <LF>), защото участвува в SHA-1 за Z-отчета.
- Клас команди ‘W’ - връщане на структурирана информация
W,<FirstDoc>[,<LastDoc>] | Намиране на документ <FirstDoc> и връщане на първия текстов ред структурирана информация. |
или | |
W,D<StartDateTime>,<EndDateTime> | Намиране на първия документ между StartDateTime и EndDateTime и връщане на първия текстов ред структурирана информация. Датата и часът са във формат DDMMYY[hhmmss]. При пропускане на часа началният час е 00:00:00, а крайният 23:59:59. |
w | Връщане на следващ ред структурирана информация |
FirstDoc | Номер на първия документ за справката. |
EndDoc | Номер на последния документ за справката. Ако липсва, е равен на първия. |
Върната структурирана информация може да има следния вид:
U,<UNP>,<OperNum>,<TillNum>,<RecType>,<DocNum> |
V,<DecRec>,<Decimals>,<Tax). Rate1>, ... ,<Tax). Rate8> |
R,<Tax). GrPos>,<Tax). Rate>,<SinglePrice>,<Quantity>,<Discount_MarkUp>,<Price>,<ArticleName> |
M,<Discount_MarkUp>,[<Percent>],<Subtotal> |
T,<DiscCnt>,<DiscSum>,<MarkUpCnt>,<MarkUpSum>,<VoidCnt>,<VoidSum>,<SalesCnt>,<Total>,<TotGr1>, ... ,<TotGr8> |
P,<CashPaid>,<CheqPaid>,<CardPaid>,<CredPaid>,<MorePaid1>, ... ,<MorePaid11> |
S,<StornoType>,<StornedDocNo>,<StornedDT>,<StornedFMIN>,<StornedUNP>,<StrornedInvoice> |
I,<Invoice>,<PIN>,<PINtype> |
D,<StartDT>,<EndDT> |
Z,<ZNo>,<DocNum>,<FiscNum>,<DateTime>,<Total>,<StornoSum>,<Cas|Sum> |
Q,<DocNum>,<StartDT>,<ServeINOUT>,<Cas|Sum> |
*, |
F |
където:
Справка "U": | Структурирана информация за бона. Еднократно в бона. |
UNP | Уникален номер на продажба. 21 символа с формат XXXXXXXX-YYYY-NNNNNNN. |
OperNum | Номер на оператор. От 1 до 16. |
TillNum | Номер на касово място. До 5 цифри. |
RecType | Вид на бона: 0 - фискален; 1 - фактура; 2 - сторно; 3 - кредитно известие; 4 - анулиран. |
DocNum | Глобален номер на документа. |
Справка "V": | Структурирана информация за десетични знаци и данъчни ставки. Еднократно в бона. |
DecRec | Номер на записа с данъчни ставики във ФП. Брои се от 1. |
Decimals | Десетични знаци. 0 или 2. |
TaxRateX | Десетична ставка X в проценти. |
Справка "R": | Структурирана информация за продажба или корекция. Може да я има многократно в бона. |
TaxGrPos | Данъчна група (от 1 до 8). |
TaxRate | Данъчна ставка в проценти. |
SinglePrice | Единична цена. За корекция е отрицателна. |
Quantity | Количество. За корекция е отрицателно. |
Discount_MarkUp | Отстъпка/надбавка (в зависимост от знака). За корекция е с обърнат знак. |
Price | Цена. |
ArticleName | Име на продадената стока. Ако е от два реда, разделителят е <TAB>. |
Справка "M": | Структурирана информация групова отстъпка/надбавка. Може да я има многократно в бона. |
Discount_MarkUp | Отстъпка/надбавка (в зависимост от знака). |
Percent | Процент на отстъпката/надбавката. Полето може да е празно, ако е в сума. |
Subtotal | Междинна сума след операцията. |
Справка "T": | Структурирана информация за натрупаните суми в бона. Еднократно в бона. |
DiscCnt | Брой отстъпки. |
DiscSum | Сума от отстъпки. |
MarkUpCnt | Брой надбавки. |
MarkUpSum | Сума от надбавки. |
VoidCnt | Брой от корекции. |
VoidSum | Сума от корекции. |
SalesCnt | Брой продажби. |
Total | Обща сума за бона. |
TotGrX | Сума по данъчна група. |
Справка "P": | Структурирана информация за платените суми. Еднократно в бона. |
CashPaid | Платено в брой. |
CheqPaid | Платено с чек. |
CardPaid | Платено с карта. |
CredPaid | Платено с кредитна карта. |
MorePaidX | Допълнително плащане (по реда, зададен от принтера). |
Справка "S": | Структурирана информация за сторниран бон. Липсва във фискалните бонове. Еднократно в бона. |
StornoType | Тип на сторното: 0 - операторска грешка; 1 - връщане/рекламация; 2 - намаление дан. основа. |
StornedDocNo | Номер на сторнирания документ. |
StornedDT | Дата и час на сторнирания документ във формат DD-MM-YYYY hh:mm:ss. |
StornedFMIN | Номер на фискалната памет за сторнирания документ. |
StornedUNP | Уникален номер на продажба на сторнирания документ. |
StrornedInvoice | Номер на фактура. Ако не е кредитно известие, съдържа 0. |
Справка "I": | Структурирана информация за фактура. Еднократно в боновете тип фактура. |
Invoice | Номер на фактура. |
PIN | ПИН. |
PINtype | Вид на ПИН: 0 - БУЛСТАТ; 1 - ЕГН; 2 - Личен номер; 3 - Служебен номер. |
Справка тип "D": | Дата и час на започване и на завършване на бона. |
StartDT | Начална дата и час във формат DD-MM-YYYY hh:mm:ss. Датата отпечатана на бона. |
EndDT | Крайна дата и час във формат DD-MM-YYYY hh:mm:ss. |
Справка тип "Z": | Дневен отчет. |
ZNo | Номер на дневния отчет. |
DocNum | Номер на документ. |
FiscNum | Номер на последен фискален документ. Може да е 0, ако няма издавани. |
DateTime | Дата и час във формат DD-MM-YYYY hh:mm:ss. |
Total | Обща сума от продажби за деня. |
StornoSum | Обща сума от сторно бонове. |
CashSum | Касова наличност. |
Справка тип "Q": | Служебно въведени / изведени. |
ServeINOUT | Служебно въведена / изведена сума. |
Маркер "*": | Край на бон. |
Маркер "F": | Няма повече данни. |
- Клас команди ‘Y’ - връщане на структурирана информация
Y,<FirstDoc>[,<LastDoc>] | Намиране на документ <FirstDoc> и връщане на първия текстов ред структурирана информация. |
y | Връщане на следващ ред структурирана информация |
Върната структурирана информация може да има следния вид:
u,<SerialNum>,<RecType>,<DocNum>,<UNP> |
r,<Tax). GrPos>,<Tax). Rate>,<SinglePrice>,<Quantity>,<Discount_MarkUp>,<Price>,<ArticleName> |
t,<Total>,<TotGr1>, ... ,<TotGr8> |
s,<StornoType>,<StornedDT>,<StornedFMIN>,<StornedUNP>,<StrornedInvoice> |
i,<Invoice>,<PIN>,<PINtype> |
*, |
F |
където:
Справка "u": | Структурирана информация за бона. Еднократно в бона. |
SerialNum | Сериен номер на принтера. |
RecType | Вид на бона: 0 - фискален; 1 - фактура; 2 - сторно; 3 - кредитно известие; 4 - анулиран. |
DocNum | Глобален номер на документа. |
UNP | Уникален номер на продажба. 21 символа с формат XXXXXXXX-YYYY-NNNNNNN. |
Справка "r": | Структурирана информация за продажба или корекция. Може да я има многократно в бона. |
Върнатата информация е както при "R" по-горе. | |
Справка "t": | Структурирана информация за натрупаните суми в бона. Еднократно в бона. |
Total | Обща сума за бона. |
TotGrX | Сума по данъчна група. |
Справка "s": | Структурирана информация за сторниран бон. Липсва във фискалните бонове. Еднократно в бона. |
Върнатата информация е както при "S" по-горе. | |
Справка "i": | Структурирана информация за фактура. Еднократно в боновете тип фактура. |
Върнатата информация е както при "I" по-горе. | |
Маркер "*": | Край на бон. |
Маркер "F": | Няма повече данни. |
- Клас команди ‘V’ - връщане на структурирана информация
V[+],<FirstDoc>[,<LastDoc>] | Намиране на документ <FirstDoc> и връщане на първия текстов ред структурирана информация. |
или | |
V[+],D<StartDateTime>,<EndDateTime> | Намиране на първия документ между StartDateTime и EndDateTime и връщане на първия текстов ред структурирана информация. Датата и часът са във формат DDMMYY[hhmmss]. При пропускане на часа началният час е 00:00:00, а крайният 23:59:59. |
v | Връщане на следващ ред структурирана информация |
+ | Опционален символ „+„. При наличието му преди данните за документа се добавя дата и час във формат: „DD-MM-YYYY HH:MM:SS + долепен символ за табулация„. |
FirstDoc | Номер на първия документ за справката. |
EndDoc | Номер на последния документ за справката. Ако липсва, е равен на първия. |
Върната структурирана информация има следния вид:
ErrorCode[,Data] | |
ErrorCode | Един байт, показващ резултата от операцията, със значение: |
Data | Върнатите данни в описания по-долу ред разделени със символ за табулация заградени в кавички. |
Област за данни: | <Address>,<Bytes> |
Отговор: | Data |
Address | Начален адрес (спрямо началото на кодовата памет) – шестнайсетично число от 00000h до 6FFFFh. |
Bytes | Брой байтове, които да се върнат в десетичен вид (от 1 до 64). |
Data | Съдържанието на искания блок фискална памет в шестнайсетичен вид (по 2 символа за всеки байт данни). |
Командата връща съдържанието на част от кодовата памет (фирмуера). За прочитане на цялата кодова памет трябва да се изпълни многократно. Командатае достъпна само в сервизен режим!
Област за данни: | Няма данни |
Отговор: | RotRec |
RotRec | Поредният номер на отворения завъртян на 90 градуса бон за деня. 4 байта без знак. |
Командата отваря служебен бон, в който може да се печати завъртян на 90 градуса текст.
Командата няма да се изпълни, ако:
- Има отворен някакъв бон (служебен или фискален).
- Няма хартия.
- Не е сверен часовникът.
Област за данни: | <Text> |
Отговор: | Няма данни |
Text | Съдържанието на поредния ред от текст, който искаме да отпечатаме. Дължината му е до 100 символа. Възможен е печатът на част от текста с атрибути удебелено (Bold) и подчертано (Underline). Те се включват и изключват съответно с: |
Командата служи за печат на завъртян на 90 градуса текст. Хартиената лента побира до 18 реда текст (12 при тясна хартиена лента). Изпратените редове текст се натрупват в паметта на принтера по реда на изпращането им. Ако командата се изпълни повече от тринадесет пъти след отварянето на бона, то натрупаната информация се отпечатва и принтерът очаква нови текстови редове или команда 124 (затваряне на бона). При отпечатването на информацията принтерът определя най-дългия от пратените редове и допълва останалите до същата дължина.
Ако се пратят повече от 18 (12) реда, то се отпечатва повече от една колона текст. Между двете колони няма никаква междина, така че с подходящо подбрани данни могат да се получат редове с неограничена дължина.
Командата няма да се изпълни, ако не е отворен бон за печат на завъртян служебен текст.
Област за данни: | Няма данни |
Отговор: | <RotRec> |
RotRec | Поредният номер на затваряния завъртян на 90 градуса бон за деня. 4 байта без знак. Командата затваря бона. Ако има не отпечатани редове, те се отпечатват автоматично преди затварянето му. |
Командата няма да се изпълни, ако не е отворен бон за печат на завъртян служебен текст.
Област за данни: | Няма данни |
Отговор: | Няма данни |
Командата нулира оперативната памет на принтера, след което автоматично рестартира принтера. След изпълнението и е необходимо сверяване на часовника с команда 61, при което се прави RAM ресет запис във фискалната памет със зададените дата и час.
Командата е разрешена само при поставен сервизен джъмпер. Във фискалната памет има място за 100 RAM ресет записа.
Област за данни: | <Disable> |
Отговор: | Няма данни |
Disable | Един байт с допустима стойност: |
Командата е разрешена само при поставен сервизен джъмпер. При забранен печат принтерът извършва всички действия, включително запис в КЛЕН, но не отпечатва нищо на хартията. В регистрите на принтера се натрупват правилно данни в зависимост от пратените данни, когато е необходимо, се извършва запис във фискалната памет и пращане на данни до НАП.
Идеята е при деактивиран печат да се пращат команди с голяма скорост за тестване на принтера и КЛЕН, което би се забавило десетки пъти от печата.
При включване на принтера печатът винаги е разрешен.
Област за данни: | <Format> |
Отговор: | <Result> |
Format | Един байт със стойност 'F'. |
Result | Един байт със стойност |
Командата е разрешена само при поставен сервизен джъмпер. Служи за начално форматиране на КЛЕН. Допустима е само при нефискализиран принтер или при все още неформатирана КЛЕН. Командата няма да се изпълни при вече форматирана КЛЕН дори и в сервизен режим (което би разрушило натрупаните там данни). При нова празна КЛЕН тя ще и зададе пореден номер и ще разреши работата с нея, но след това старата КЛЕН става забранена за запис и може да служи само за печат и четене на справки.
Област за данни: | <Cmd[,<PIN]>] |
Отговор: | <Result>,<Data> |
Cmd | Един байт със стойност 'M'. |
PIN | Ако картата на мобилния оператор изисква PIN, той се задава тук. |
Result | Един байт със стойност |
Data | При успех връща данни за модема, картата и установената връзка. При грешка връща код на грешка и кратко описание. |
Ако при подаване на командата модемът е зает (изпраща данни), тя може да продължи по-дълго от нормалното – ще се изчака завършването на задачата.
Област за данни: | <Text> |
Отговор: | <Resp> |
Данните от тази команда са предназначени за данъчния терминал – за конфигурирането му и за четене на данни от него. С помощта на командата се зареждат всички необходими за работата на вградения терминал данни. Принтерът извършва допълнителни действия само в следните случаи:
- Успешна регистрация и дерегистрация на принтера в НАП.
- Успешна промяна на данни в НАП.
- Успешна регистрация на сервизен договор.
Командата е забранена преди фискализация на принтера.
Принтерът проверява състоянието на данъчния терминал и при фискализиран, но нерегистриран принтер не разрешава издаването на фискални бонове.
_0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0_ | 0 | @ | P | ` | p | А | Р | а | р | А | Р | а | р | ||
1_ | ! | 1 | A | Q | a | q | Б | С | б | с | Б | С | б | с | |
2_ | ” | 2 | B | R | b | r | В | Т | в | т | В | Т | в | т | |
3_ | # | 3 | C | S | c | s | Г | У | г | у | Г | У | г | у | |
4_ | $ | 4 | D | T | d | t | Д | Ф | д | ф | Д | Ф | д | ф | |
5_ | % | 5 | E | U | e | u | Е | Х | е | х | Е | Х | е | х | |
6_ | & | 6 | F | V | f | v | Ж | Ц | ж | ц | Ж | Ц | ж | ц | |
7_ | ‘ | 7 | G | W | g | w | З | Ч | з | ч | З | Ч | з | ч | |
8_ | ( | 8 | H | X | h | x | И | Ш | и | ш | И | Ш | и | ш | |
9_ | ) | 9 | I | Y | i | y | Й | Щ | й | щ | Й | Щ | й | щ | |
A_ | * | : | J | Z | j | z | К | Ъ | к | ъ | К | Ъ | к | ъ | |
B_ | + | ; | K | [ | k | { | Л | Ы | л | ы | Л | Ы | л | ы | |
C_ | , | < | L | | l | М | Ь | м | ь | М | Ь | м | ь | |||
D_ | - | = | M | ] | m | } | Н | Э | н | э | Н | Э | н | э | |
E_ | . | > | N | ^ | n | ~ | О | Ю | о | ю | О | Ю | о | ю | |
F_ | / | ? | O | _ | o | П | Я | п | я | П | Я | п | я |
HEX | DEC | ФУНКЦИЯ |
---|---|---|
20h | (32) | Разширена информация за последната грешка |
21h | (33) | Изчистване на дисплея |
22h | (34) | Връщане или печат на информация за сервизен договор |
23h | (35) | Показване на текст на долния ред на дисплея |
24h | (36) | Настройка на LAN |
25h | (37) | Четене на данни за НАП |
26h | (38) | Отваряне на служебен бон |
27h | (39) | Затваряне на служебен бон |
29h | (41) | Запис на настройките и ключетата във flash-паметта |
2Ah | (42) | Печатане на свободен текст в служебен бон |
2Bh | (43) | Установяване на HEADER и FOOTER и опции на печат |
2Ch | (44) | Придвижване на хартията |
2Dh | (45) | Отрязване на хартията |
2Еh | (46) | Издаване на сторно бон |
2Fh | (47) | Показване на текст на долния ред на дисплея |
30h | (48) | Отваряне на фискален (клиентски) бон |
31h | (49) | Регистриране на продажба |
32h | (50) | Данъчни ставки задавани през съответния период |
33h | (51) | Междинна сума |
34h | (52) | Регистриране на продажба и показване на дисплея |
35h | (53) | Изчисляване на сбор (Total) |
36h | (54) | Печатане на свободен текст във фискален бон |
38h | (56) | Затваряне на фискален бон |
39h | (57) | Информация за купувача в разширена касова бележка (фактура) |
3Ah | (58) | Продажба на програмиран артикул |
3Ch | (60) | Прекратяване (анулиране) на фискален бон |
3Dh | (61) | Установяване на дата и час |
3Еh | (62) | Прочитане на датата и часа |
3Fh | (63) | Показване на датата и часа на дисплея |
40h | (64) | Информация за последния фискален запис |
41h | (65) | Информация за сумите за деня |
42h | (66) | Задаване на допустим интервал номера на фактура |
44h | (68) | Брой свободни полета във фискалната памет |
45h | (69) | Дневен финансов отчет с или без нулиране |
46h | (70) | Служебно въвеждане или извеждане |
47h | (71) | Печат на диагностична информация |
48h | (72) | Фискализация |
49h | (73) | Детайлен отчет на фискалната памет по номер на запис |
4Ah | (74) | Получаване на статуса на принтера |
4Bh | (75) | Форсиране на подтиснат печат в бон |
4Ch | (76) | Статус на фискалната транзакция |
4Fh | (79) | Съкратен отчет на фискалната памет по дата на запис |
50h | (80) | Издаване на звуков сигнал |
51h | (81) | Получаване на напрежението и температурата на печатащата глава |
53h | (83) | Установяване на десетични знаци, валута и разрешени данъчни ставки |
54h | (84) | Печат на баркод |
55h | (85) | Задаване на име на допълнителните типове плащане |
56h | (86) | Прочитане на датата на последния фискален запис |
57h | (87) | Програмиране име на департамент |
58h | (88) | Получаване на натрупаните суми за департамент |
59h | (89) | Програмиране на производствената тестова област |
5Ah | (90) | Четене диагностична информация |
5Bh | (91) | Програмиране на индивидуален номер на принтера и номер на ФП |
5Ch | (92) | Печат на разделителна линия |
5Dh | (93) | Получаване на данни за отстъпките и надбавките за деня |
5Eh | (94) | Детайлен отчет на фискалната памет по дата на запис |
5Fh | (95) | Съкратен отчет на фискалната памет по номер на запис |
61h | (97) | Прочитане на данъчните ставки |
62h | (98) | Установяване на ЕИК |
63h | (99) | Прочитане на зададения ЕИК |
64h | (100) | Показване на свободен текст на дисплея |
65h | (101) | Задаване на операторска парола |
66h | (102) | Задаване на име на оператор |
67h | (103) | Информация за текущия бон |
69h | (105) | Отчет по оператори |
6Ah | (106) | Отваряне на чекмедже |
6Bh | (107) | Дефиниране и отчитане на артикули |
6Ch | (108) | Разширен дневен финансов отчет (с разпечатка на артикулите) |
6Dh | (109) | Печат на дублиращ бон |
6Eh | (110) | Допълнителна информация за деня |
6Fh | (111) | Отчет по артикули |
70h | (112) | Получаване на информация за оператор |
71h | (113) | Получаване номера на последния отпечатан документ |
72h | (114) | Получаване на информация за фискален запис или период |
73h | (115) | Програмиране на графично лого |
74h | (116) | Четене на блок от фискалната памет |
75h | (117) | Разширен дневен финансов отчет с печат на департаментите |
76h | (118) | Разширен дневен отчет с разпечатка на департаментите и артикулите |
77h | (119) | Поддръжка на КЛЕН – четене, печат и информация |
79h | (121) | Четене на блок от кодовата памет (фирмуера) |
7Ah | (122) | Отваряне на служебен бон със завъртян на 90 градуса текст |
7Bh | (123) | Печат на завъртян на 90 градуса текст |
7Ch | (124) | Затваряне на служебен бон със завъртян на 90 градуса текст |
80h | (128) | Сервизен ресет на оперативната памет |
85h | (133) | Временна сервизна забрана на печата |
86h | (134) | Сервизна поддръжка на КЛЕН |
87h | (135) | Тест на GPRS модема |
90h | (144) | Инициализация и четене на данни от данъчния терминал |
Карта на видовете плащания фискални принтери тип 2
Наименование / FW default | Програмируемо | Подкоманда | Регистър НАП |
---|---|---|---|
1. Плащане в брой (default) | твърдо | "P" | "В брой" |
2. Плащане с кредит | твърдо | "N" | "Сума по кредитни/дебитни карти" |
3. Плащане с чек | твърдо | "C" | "С чек" |
4. Плащане с дебитна карта | твърдо | "D" | "Сума по кредитни/дебитни карти" |
5. ДОПЪЛНИТЕЛНО ПЛАЩАНЕ 1 | програмируемо | "I"/„i” | "Резерв 1" / НЗОК |
6. ДОПЪЛНИТЕЛНО ПЛАЩАНЕ 2 | програмируемо | "J"/„j” | "Резерв 1" / НЗОК |
7. ДОПЪЛНИТЕЛНО ПЛАЩАНЕ 3 | програмируемо | "K"/„k” | "Резерв 1" / НЗОК |
8. ДОПЪЛНИТЕЛНО ПЛАЩАНЕ 4 | програмируемо | "L"/„l” | "Резерв 1" / НЗОК |
9. ТАЛОНИ | програмируемо | "m" | "Талони" |
10. ВЪНШНИ ТАЛОНИ | програмируемо | "n" | "Сума по външни талони" |
11. АМБАЛАЖ | програмируемо | "o" | "Сума по амбалаж" |
12. ВЪТРЕШНО ОБСЛУЖВАНЕ | програмируемо | "p" | "Сума по вътрешно обслужване" |
13. ПОВРЕДИ | програмируемо | "q" | "Сума по повреди" |
14. БАНКОВИ ТРАНСФЕРИ | програмируемо | "r" | "Сума по банкови трансфери" |
15. С ЧЕК | програмируемо | "s" | "С чек" |
Карта на видовете плащания фискални принтери тип 3 и 31
Наименование / FW default | Програмируемо | Подкоманда | Регистър НАП |
---|---|---|---|
1. Плащане в брой (default) | твърдо | "P" | "В брой" |
2. Плащане с кредит | твърдо | "N" | "Сума по кредитни/дебитни карти" |
3. Плащане с чек | твърдо | "C" | "С чек" |
4. Плащане с дебитна карта | твърдо | "D" | "Сума по кредитни/дебитни карти" |
5. ДОПЪЛНИТЕЛНО ПЛАЩАНЕ 1 | програмируемо | "I"/„i” | "Резерв 1"/ отложено плащане |
6. ДОПЪЛНИТЕЛНО ПЛАЩАНЕ 2 | програмируемо | "J"/„j” | "Резерв 1"/ отложено плащане |
7. ДОПЪЛНИТЕЛНО ПЛАЩАНЕ 3 | програмируемо | "K"/„k” | "Резерв 1"/ отложено плащане |
8. ДОПЪЛНИТЕЛНО ПЛАЩАНЕ 4 | програмируемо | "L"/„l” | "Резерв 2" / вътрешно потребление |
9. ТАЛОНИ | програмируемо | "m" | "Талони" |
10. ВЪНШНИ ТАЛОНИ | програмируемо | "n" | "Сума по външни талони" |
11. АМБАЛАЖ | програмируемо | "o" | "Сума по амбалаж" |
12. ВЪТРЕШНО ОБСЛУЖВАНЕ | програмируемо | "p" | "Сума по вътрешно обслужване" |
13. ПОВРЕДИ | програмируемо | "q" | "Сума по повреди" |
14. БАНКОВИ ТРАНСФЕРИ | програмируемо | "r" | "Сума по банкови трансфери" |
15. С ЧЕК | програмируемо | "s" | "С чек" |
Стойност | Описание |
---|---|
-150001 | Синтактична грешка |
-150002 | Невалидна команда |
-150003 | Недопустима команда |
-150010 | Принтерът е блокиран |
-150100 | Сверете часовника |
-150101 | Няма хартия |
-150102 | Грешка в КЛЕН |
-150103 | Аритметично препълване |
-150104 | Невалидна парола |
-150105 | По малко от 2 реда в Header-а |
-150106 | Невалиден сериен номер |
-150107 | Невалидни данни за баркода |
-150108 | Недопустима заявка за справка |
-150109 | Грешка при отрязване на хартията |
-150110 | Грешка на презентера |
-150111 | Данните съдържат 'ФИСКАЛ' |
-150112 | Грешен номер на фактура |
-150113 | Липсва УНП |
-150114 | Препълване на брояча на УНП |
-150115 | УНП трябва да нараства |
-150116 | Не сте влезли (Не сте се логнали) |
-150117 | Не дефинирана валута |
-150200 | Отворен е бон |
-150201 | Не е отворен бон |
-150202 | Издавани са бонове за деня |
-150203 | Не са издавани бонове за деня |
-150204 | Повече от 24 часа бeз Z-отчет |
-150205 | Дата и час преди запис във ФП |
-150206 | Дата и час преди запис в КЛЕН |
-150207 | Възможно грешни дата и час |
-150209 | Не може да се чете от КЛЕН |
-150210 | Не може да се пише в КЛЕН |
-150211 | Не може да се форматира КЛЕН |
-150212 | Не може да отвори документ в КЛЕН |
-150213 | Забранен е достъпът до дисплея |
-150214 | Близък край на КЛЕН |
-150215 | Форматиране на валиден КЛЕН |
-150216 | Пореден номер на КЛЕН над 31 |
-150217 | Не са намерени данни за документа |
-150218 | Различна ширина на хартията в КЛЕН |
-150231 | Буферът за КЛЕН е препълнен |
-150232 | Записът в буфера на КЛЕН е неуспешен |
-150300 | Фискалната памет не е форматирана |
-150301 | Не е зададен сериен номер |
-150302 | Не е зададен ЕИК |
-150303 | Не са зададени данъчни ставки |
-150304 | Няма разрешени данъчни ставки |
-150305 | Принтерът не е фискализиран |
-150306 | Принтерът е фискализиран |
-150307 | Няма записи във фискалната памет |
-150308 | Фискалната памет не отговаря |
-150309 | Много записи във фискалната памет |
-150310 | Вече е зададен сериен номер |
-150311 | Фискалната памет забранена за запис |
-150312 | Не е намерена фискална памет |
-150313 | Грешка при четене на фиск. памет |
-150314 | Променени данъчни ставки или десетични знаци |
-150400 | Няма артикул с такова PLU |
-150401 | Няма такъв департамент |
-150402 | Невалидна данъчна група |
-150403 | Данъчната група е забранена |
-150404 | Твърде много продажби в бона |
-150405 | Има плащане или групова отстъпка |
-150406 | Отрицателна сума или количество |
-150407 | Отстъпка по-голяма от цената |
-150408 | Корекция на несъществуваща продажба |
-150409 | Започнало е плащане |
-150410 | Плащането не е дефинирано |
-150411 | Вече е платено всичко |
-150412 | Не са изцяло платени продажбите |
-150413 | Няма достатъчно пари в брой |
-150414 | Разрешено е само плащане в брой |
-150415 | Не е допустимо да има ресто |
-150416 | Има издавани бонове от оператора |
-150417 | Има продажби на този артикул |
-150418 | Има продажби по този департамент |
-150419 | Програмирани са вече всички артикули |
-150420 | Прекалено много редове в бона |
-150421 | Няма данни за копие на бон |
-150422 | Има натрупани данни за типа плащане |
-150423 | Артикулът е продаван в бона |
-150424 | Невалиден артикул за гориво |
-150425 | Свободна продажба на гориво |
-150426 | Не е бензиностанция |
-150427 | Има движение по над 200 департамента |
-150428 | Няма данни за печат на копие |
-150429 | Не е разрешено връщане на гориво |
-150430 | Недопустими дата и час на сторниране |
-150431 | Нулева цена |
-150432 | Твърде много продажби на гориво |
-150433 | Вече е платено безналично |
-150434 | Отказана платежна транзакция |
-150435 | Натрупани суми |
-150436 | Не е позволен бакшиш |
-150800 | Принтерът не е регистриран |
-150801 | Няма номер на фактура |
-150802 | Номерът на фактура е извън интервала |
-150803 | Няма интервал за номер на фактура |
-150804 | Няма въведени данни за клиента |
-150805 | Данните за клиента са вече въведени |
-150806 | Не е разширен бон (фактура) |
-150807 | Грешка в данъчния терминал |
-150808 | GPRS-модемът не отговаря |
-150809 | GPRS-модемът е зает |
-150810 | Няма SIM-карта в модема |
-150811 | Различна от регистрираната SIM-карта |
-150812 | Неактуални данни за нивомерната система |
-150813 | Няма команда за начало на данни |
-150819 | Бонът е тип фактура |