1 введение - Арес

advertisement
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
ОПИСАНИЕ
СИСТЕМЫ КОМАНД И ФОРМАТОВ ДАННЫХ
КОНТРОЛЬНО-КАССОВЫХ МАШИН
СЕМЕЙСТВА ФИСКАЛЬНЫХ РЕГИСТРАТОРОВ МЕБИУС
(СО СПЕЦИАЛЬНЫМ БУКВЕННЫМ ОБОЗНАЧЕНИЕМ “К”)
1
ВВЕДЕНИЕ ......................................................................................................... 4
2
ФОРМАТЫ ПЕРЕДАВАЕМЫХ ДАННЫХ .................................................. 4
2.1
ФОРМАТИРОВАННАЯ ЧАСТЬ ПАКЕТА ДАННЫХ ................................................... 4
2.2
ФОРМАТ ПЕРЕДАЧИ ТЕКСТА..................................................................................... 4
2.3
ФОРМАТ ПЕРЕДАЧИ СУММЫ .................................................................................... 5
2.4
ФОРМАТ ПЕРЕДАЧИ ЧИСЛА ...................................................................................... 5
2.5
ФОРМАТ ПЕРЕДАЧИ ДАТЫ ........................................................................................ 5
2.6
ФОРМАТ ПЕРЕДАЧИ КООРДИНАТ ПРОГРАММИРУЕМОГО ЗАГОЛОВКА
ЧЕКА ДЛЯ ВЫВОДА НА ПЕЧАТЬ .............................................................................................. 5
3
НАБОР КОМАНД ККМ.................................................................................... 6
3.1
ГРУППА КОМАНД УПРАВЛЕНИЯ РЕЖИМАМИ...................................................... 7
3.1.1
КОМАНДА ОТКРЫТИЯ СМЕНЫ, КОД 8 ............................................................................ 7
3.1.2
КОМАНДА ЗАКРЫТИЯ СМЕНЫ, КОД 9 ............................................................................ 7
3.1.3
КОМАНДА ОБЩЕГО ГАШЕНИЯ, КОД 31 .......................................................................... 7
3.1.4
КОМАНДА АКТИВИЗАЦИИ ЭКЛЗ, КОД 40 ....................................................................... 8
3.1.5
КОМАНДА ЗАКРЫТИЯ АРХИВА ЭКЛЗ, КОД 46 .............................................................. 8
3.1.6
КОМАНДА УСТАНОВКИ РЕЖИМА РАБОТЫ РЕГИСТРАТОРА И ТОЧНОСТИ
ОКРУГЛЕНИЯ, КОД 22 .......................................................................................................................... 8
3.2
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.2.6
3.2.7
ГРУППА КОМАНД УПРАВЛЕНИЯ ПОКАЗАНИЯМИ ............................................... 9
КОМАНДА ВЫДАЧИ СМЕННЫХ ПОКАЗАНИЙ, КОД 11 ............................................... 9
КОМАНДА ВЫДАЧИ ОБЩИХ ПОКАЗАНИЙ, КОД 12 ..................................................... 9
КОМАНДА ВЫДАЧИ КЛ ПО НОМЕРУ СМЕНЫ ИЗ ЭКЛЗ, КОД 41 ............................. 10
КОМАНДА ВЫДАЧИ ОТЧЕТА ОБ АКТИВИЗАЦИИ ЭКЛЗ, КОД 45 ............................ 10
КОМАНДА ВЫДАЧИ ИТОГОВ СМЕНЫ ПО НОМЕРУ СМЕНЫ ИЗ ЭКЛЗ, КОД 44 ... 10
КОМАНДА ВЫДАЧИ ОТЧЕТОВ ПО ЗАКРЫТИЯМ СМЕН ИЗ ЭКЛЗ, КОД 42 ............ 10
КОМАНДА ВЫДАЧИ ДОКУМЕНТА ПО НОМЕРУ КПК ИЗ ЭКЛЗ, КОД 43 ................ 10
3.3
ГРУППА КОМАНД ВЫПОЛНЕНИЯ ОПЕРАЦИЙ С ПЛАТЕЖНЫМИ
ДОКУМЕНТАМИ ........................................................................................................................ 10
3.3.1
3.3.2
3.3.3
3.4
3.4.1
3.4.2
3.5
3.5.1
3.5.2
3.5.3
3.5.4
3.6
3.6.1
3.6.2
3.6.3
3.6.4
3.6.5
3.6.6
КОМАНДА НАЧАЛА ФОРМИРОВАНИЯ ЧЕКА, КОД 15 ............................................... 11
КОМАНДА ОБРАБОТКИ РЕКВИЗИТОВ ДОКУМЕНТА, КОД 16 .................................. 11
КОМАНДА ОТМЕНЫ ОТКРЫТОГО ЧЕКА(СБРОС ЧЕКА) , КОД 36 ............................ 12
ГРУППА КОМАНД СОСТОЯНИЯ ККМ .................................................................... 13
КОМАНДА ПОЛУЧЕНИЯ ИНФОРМАЦИИ О СОСТОЯНИИ ККМ, КОД 28 ................ 13
КОМАНДА ЗАПРОСА О СОСТОЯНИИ СМЕНЫ, КОД 35 .............................................. 13
ГРУППА КОМАНД ПАРАМЕТРИЗАЦИИ ККМ ........................................................ 13
КОМАНДА СМЕНЫ ПРОГРАММИРУЕМОГО ЗАГОЛОВКА ЧЕКА, КОД 33 ............. 13
КОМАНДА СМЕНЫ ПАРОЛЯ НА ПОСЫЛКУ ДАННЫХ, КОД 34 ............................... 14
КОМАНДА РЕГИСТРАЦИИ ОПЕРАТОРА, КОД 14 ........................................................ 14
КОМАНДА ПЕРЕКЛЮЧЕНИЯ В РЕЖИМ ИНВЕРСНОЙ ПЕЧАТИ, КОД 29 ............... 14
ГРУППА КОМАНД РАБОТЫ С ЭЛЕКТРОННЫМ ЖУРНАЛОМ ............................ 14
КОМАНДА ПЕЧАТИ ПОЧАСОВОГО ОТЧЕТА, КОД 52 ................................................. 14
КОМАНДА ПЕЧАТИ ОТЧЕТА ПО ТОВАРАМ, КОД 49 .................................................. 15
КОМАНДА ПЕЧАТИ ОТЧЕТА ПО КАССИРАМ, КОД 51 ............................................... 15
КОМАНДА ПЕЧАТИ ЭЛЕКТРОННОГО ЖУРНАЛА, КОД 48 ........................................ 15
КОМАНДА ПЕЧАТИ ОТЧЕТА ПО ОТДЕЛАМ, КОД 50 .................................................. 15
КОМАНДА ПЕЧАТИ ОТЧЕТА ПО ВИДАМ ОПЛАТЫ, КОД 54 ..................................... 15
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
2
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
3.6.7
КОМАНДА ВЫДАЧИ ДАННЫХ ЭЛЕКТРОННОГО ЖУРНАЛА, КОД 13 ..................... 15
4
ОПИСАНИЕ ПРОЦЕДУРЫ ПЕРЕДАЧИ ДАННЫХ ............................... 16
5
ОПИСАНИЕ ПРОЦЕДУРЫ ПРИЕМА ДАННЫХ .................................... 17
6
СПИСОК КОДОВ - НОМЕРОВ РЕКВИЗИТОВ ........................................ 18
7 АЛГОРИТМ ФОРМИРОВАНИЯ ДОКУМЕНТА ПРОДАЖИ
(ТОРГОВЫЙ ВАРИАНТ)....................................................................................... 23
АЛГОРИТМ ФОРМИРОВАНИЯ ДОКУМЕНТОВ ВНЕСЕНИЯ,
ВЫПЛАТЫ, И ВОЗВРАТА. ................................................................................... 28
8
ПЕРЕЧЕНЬ КОДОВ СОСТОЯНИЙ ............................................................ 31
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
9
Фатальные ошибки фискальной памяти ............................................................... 31
Не фатальные ошибки, приводящие к временным блокировкам ........................ 31
Ошибки программы передачи .................................................................................... 31
Ошибки синхронизации передачи/приема ............................................................... 32
Ошибки переполнения накопительных регистров ................................................ 33
Ошибки принтера ....................................................................................................... 33
Общие ошибки ............................................................................................................. 33
Ошибки при работе с ЭКЛЗ ....................................................................................... 33
ПЕРЕЧЕНЬ УПРАВЛЯЮЩИХ КОМАНД ................................................ 34
10
ПРИЛОЖЕНИЕ. ПЕРЕЧЕНЬ КОДОВ СОСТОЯНИЙ ПО
НОМЕРАМ ................................................................................................................ 35
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
3
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
1 ВВЕДЕНИЕ
Контрольно-кассовая машина семейства Фискальный регистратор МЕБИУС,
(далее - ККМ) представляет собой устройство, предназначенное для проверки,
регистрации и хранения денежных сумм, проходящих через ККМ при денежных
расчетах с населением, а также для формирования отчетных документов по
операциям. Функционально ККМ представляет собой микро ЭВМ с
подключенным к ней принтером. ККМ получает данные от компьютернокассовой системы через канал связи – асинхронный последовательный порт
передачи данных RS232. Для создания компьютерно-кассовой системы на
основе ККМ и компьютера первый имеет набор специальных байтовых
последовательностей, или систему команд, для реализации функций
регистрации сумм и печати платежных документов, а также управления
режимами работы ККМ и оформления отчетных документов.
2 ФОРМАТЫ ПЕРЕДАВАЕМЫХ ДАННЫХ
2.1 ФОРМАТИРОВАННАЯ ЧАСТЬ ПАКЕТА ДАННЫХ
Каждая передаваемый пакет данных начинается с
(фиксированной длины и с фиксированными полями) части.
форматированной
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
1
Код символа ESC
01
1
Сигнатура начала команды SP = 128
02
2
Значение длины посылки (количествово байт)
04
1
Зарезервировано
05
1
Идентификатор команды
06
4
Пароль на посылку данных
0A
1
Номер оператора или администратора (имеет
значение только в командах, выполняющихся при
закрытой смене; в регистраторах с литерой К этот
номер заносится в ЭКЛЗ при подаче команд
открытия фискальных документов)
11
Общая длина
*****Длина передаваемого пакета есть количество переданных байт + 1 (байт
контрольной суммы). Последним байтом передается контрольная сумма пакета,
вычисляемая по алгоритму (256 - остаток от деления (N/256), где N арифметическая сумма всех байт).
По умолчанию, в новой ККМ установлен пароль на передачу данных и на
фискализацию MBUS
2.2 ФОРМАТ ПЕРЕДАЧИ ТЕКСТА
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
4
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
Байт с численным значением длины строки без учета нулевого байта в конце
строки. Строка текста, состоящая только из печатных символов и
заканчивающаяся байтом с нулевым значением.
2.3 ФОРМАТ ПЕРЕДАЧИ СУММЫ
Строка текста вида РРР. . .РРР.КК, где Р и К - печатные символы от 0 до 9.
Передает информацию о денежных суммах, участвующих в операции. При
передаче окончательной суммы по товарной позиции передается налоговая
ставка для выделения налога. Для этого в соответствующие байты команды
записываются значения номера налоговой ставки и ее процентного значения
следующим образом: в форматированной части реквизита со смещением 4
указывается номер налоговой ставки в числовом виде размером в 1 байт, далее
следуют 4 байта текстового вида, из которых первые 2 - целая часть процента,
следующие 2 - дробная часть.
2.4 ФОРМАТ ПЕРЕДАЧИ ЧИСЛА
Последовательность от 1 до 4 байт.
1 байт - BYTE( char )
2 байта - WORD( short )
4 байта - DWORD( long )
При передаче последовательностей байт, являющихся числовыми значениями
(например, 2 байта - целое число), первым передается младший байт, последним
– старший(формат представления числа для Intel80X86).
2.5 ФОРМАТ ПЕРЕДАЧИ ДАТЫ
Последовательность 7 байт.
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
2
Год
02
1
Месяц
03
1
День
04
1
Час
05
1
Минута
06
1
Секунда
2.6 ФОРМАТ
ПЕРЕДАЧИ
КООРДИНАТ
ЗАГОЛОВКА ЧЕКА ДЛЯ ВЫВОДА НА ПЕЧАТЬ
СМЕЩЕНИЕ
ДЛИНА
0
1
ПРОГРАММИРУЕМОГО
ПАРАМЕТР
Координата первого символа в строке для чековой
ленты
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
5
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
01
1
Координата строки на документе для чековой ленты
02
1
Координата первого символа в строке для
подкладного документа
03
1
Координата строки на документе для подкладного
документа
04
2
Зарезервировано
05
1
Координата первого символа в строке для чековой
ленты
06
1
Координата строки на документе для чековой ленты
07
1
Координата первого символа в строке для
подкладного документа
08
1
Координата строки на документе для подкладного
документа
09
2
Зарезервировано
0B
1
Координата первого символа в строке для чековой
ленты
0C
1
Координата строки на документе для чековой ленты
0D
1
Координата первого символа в строке для
подкладного документа
0E
1
Координата строки на документе для подкладного
документа
0F
2
Зарезервировано
11
1
Координата первого символа в строке для чековой
ленты
12
1
Координата строки на документе для чековой ленты
13
1
Координата первого символа в строке для
подкладного документа
14
1
Координата строки на документе для подкладного
документа
15
2
Зарезервировано
Каждая группа из 4 байт характеризует положение следующей строки на двух
направлениях печати. Таким образом, вместе с координатами из фиксированной
части для форматирования заголовка чека имеется возможность управления
положением пяти строк текста. Если указать обе координаты (X,Y) нулевыми
для соответствующего направления, то вывод данной строки не осуществляется.
3 НАБОР КОМАНД ККМ
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
6
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
3.1 ГРУППА КОМАНД УПРАВЛЕНИЯ РЕЖИМАМИ
3.1.1 КОМАНДА ОТКРЫТИЯ СМЕНЫ, КОД 8
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
7
Дата
12
1
Код оператора
13
23
Имя оператора
2A
1
Терминатор строки
2B
1
Признак буферизации контрольной ленты (не 0 буфер, 0 – нет, 99 - вывод журнала на чековую
ленту)
44
Общая длина
Команда приводит к переводу ККМ в режим оформления платежных
документов, проверки корректности поступающей информации, накоплении
денежных сумм по документам.
3.1.2 КОМАНДА ЗАКРЫТИЯ СМЕНЫ, КОД 9
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
1
Тип отчета *
0C
7
Дата
19
Общая длина
Команда переводит ККМ в режим ожидания операций налогового инспектора,
снятия общих показаний, общего гашения и очередного открытия смены.
* Тип отчета задается 2 – мя старшими битами байта по смещению 0В: если
установлен 7 – й бит – в отчет будут включены общие итоги продаж и покупок;
если установлен 6 – й бит – в отчет будут включены итоги продаж и покупок за
смену.
3.1.3 КОМАНДА ОБЩЕГО ГАШЕНИЯ, КОД 31
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
15
Пароль налогового инспектора
1A
1
Терминатор строки (0)
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
7
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
27
Общая длина
Команда предназначена для обнуления общих денежных регистров. Возможна
при закрытой смене. Предназначена для выполнения при переполнении
регистров.
3.1.4 КОМАНДА АКТИВИЗАЦИИ ЭКЛЗ, КОД 40
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
7
Дата
3.1.5 КОМАНДА ЗАКРЫТИЯ АРХИВА ЭКЛЗ, КОД 46
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
3.1.6 КОМАНДА УСТАНОВКИ РЕЖИМА РАБОТЫ РЕГИСТРАТОРА И
ТОЧНОСТИ ОКРУГЛЕНИЯ, КОД 22
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
2
Значение типа WORD (битовая маска) – задает
режим работы ФР:
0x0000 – сброс к заводским установкам
0x0001 – режим сбербанка (как общий режим,
меняется терминология ВЫЕМКА на
ИНКАССАЦИЮ, ВНЕСЕНИЕ на
ПОДКРЕПЛЕНИЕ, а так же появляется возможность
работы с фискальным шрифтом)
0x0002 – торговый режим
0x0004 – общий режим
0x0008 – режим с фискальным шрифтом, может
быть установлен совместно с режимом сбербанка
0x0100 – режим обратной протяжки
0x0400- убирает верхнюю отрезку чековой ленты
перед началом печати фискального документа
(убирает лидирующие пробелы в первой строке
заголовка, убирает шрифтовые эскейпы в заголовке)
0x0800- убирает нижнюю отрезку чековой ленты
после окончания печати фискального документа
(убирает шрифтовые эскейпы в заголовке)
0x1000- при заданной точности округления
включает режим расчета налогов без округлений.
0x0040 – переключает в режим “номер отдела для
чека”; если бит выставлен в 0 – режим номер отдела
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
8
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
для товарной позиции” (работает в торговом
режиме)
Точность округления (способ округления –
математический):
0x0000 – до 0,01 руб.
0x0010 – до 1 руб.
0x0020 – до 10 руб.
0x0030 – до 100 руб.
Команда возможна при закрытой смене.
3.2 ГРУППА КОМАНД УПРАВЛЕНИЯ ПОКАЗАНИЯМИ
3.2.1 КОМАНДА ВЫДАЧИ СМЕННЫХ ПОКАЗАНИЙ, КОД 11
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
Команда возможна при открытой смене и позволяет просмотреть содержимое
сменных денежных и операционных регистров ККМ.
Если в байте по смещению 0x4 от начала форматированной части старший бит
выставлен в 1, то отчет будет передаваться на хост-компьютер вместо печати на
чековой ленте. В этом случае ККМ переходит в режим передачи
последовательности байт. Данные передаются пакетами, которые имеют
следующую структуру:
СМЕЩЕНИЕ
ДЛИНА
0
1
Имеет значение 0
01
2
Длина пакета = n
03
n
Значащие байты пакета
03+n
1
Контрольная сумма
n+4
ПАРАМЕТР
Общая длина
Передача данных начинается с пакета (флага начала передачи данных):
00 01 00 01 01
и заканчивается следующим пакетом (флагом окончания передачи данных):
00 01 00 04 04
3.2.2 КОМАНДА ВЫДАЧИ ОБЩИХ ПОКАЗАНИЙ, КОД 12
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
9
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
Команда возможна при закрытой смене и позволяет просмотреть содержимое
общих денежных и операционных регистров ККМ.
3.2.3 КОМАНДА ВЫДАЧИ КЛ ПО НОМЕРУ СМЕНЫ ИЗ ЭКЛЗ, КОД 41
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
4
Номер смены(формат DWORD)
3.2.4 КОМАНДА ВЫДАЧИ ОТЧЕТА ОБ АКТИВИЗАЦИИ ЭКЛЗ, КОД 45
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
3.2.5 КОМАНДА ВЫДАЧИ ИТОГОВ СМЕНЫ ПО НОМЕРУ СМЕНЫ ИЗ
ЭКЛЗ, КОД 44
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
4
Номер смены(формат DWORD)
3.2.6 КОМАНДА ВЫДАЧИ ОТЧЕТОВ ПО ЗАКРЫТИЯМ СМЕН ИЗ ЭКЛЗ,
КОД 42
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
1
Тип отчета бит 0 = 0-полный/1-краткий
бит 1 = 0-по дате/1-по номеру
бит 2 = 0-по отделу/1-по сменам
0C
7
Дата / номер начала отчета
13
7
Дата / номер конца отчета
14
1
Номер отдела
В зависимости от запрошенного типа (дата/номер) поля <Дата/номер>
интерпретируются либо как поле даты в соответствующем формате, либо как
поле типа DWORD.
3.2.7 КОМАНДА ВЫДАЧИ ДОКУМЕНТА ПО НОМЕРУ КПК ИЗ ЭКЛЗ, КОД
43
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
4
Номер КПК
3.3 ГРУППА КОМАНД ВЫПОЛНЕНИЯ ОПЕРАЦИЙ С ПЛАТЕЖНЫМИ
ДОКУМЕНТАМИ
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
10
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
3.3.1 КОМАНДА НАЧАЛА ФОРМИРОВАНИЯ ЧЕКА, КОД 15
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
7
Дата
12
1
Тип документа
13
1
Флаг запроса печати на чековую ленту
14
1
Флаг запроса печати на подкладной документ
15
1
Зарезервировано
16
1
Флаг запроса сервисной печати на чековую ленту
17
1
Флаг запроса сервисной печати на подкладной
документ
18
1
Зарезервировано
25
Общая длина
Команда открывает режим оформления платежных операций. Возможна при
открытой смене и определяет тип оформляемого документа и способ выдачи на
печать. Флаг запроса сервисной печати на направление вывода при не нулевом
значении определяет количество строк сдвига между оригиналом и сервисной
печатью.
3.3.2 КОМАНДА ОБРАБОТКИ РЕКВИЗИТОВ ДОКУМЕНТА, КОД 16
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
Команда предназначена для создания платежного документа. Позволяет с
помощью передачи данных различных форматов формировать платежный
документ и передавать в ККМ данные, необходимые для регистрации в
фискальной памяти.
После заголовка следует общая для всех реквизитов последовательность байт форматированная часть реквизита
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
1
Номер реквизита
01
1
Признак присутствия реквизита на оригинале (1присутствие, 0-отсутствие)
02
1
Признак присутствия реквизита в сервисной печати
(1-присутствие, 0-отсутствие)
03
1
Координата (X) для сохранения в буфере
контрольной ленты
04
6
При формировании подитога (раздел П9 в алгоритме)
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
11
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
для всех реквизитов начиная с rtPOS (10) должен
иметь значение 1, иначе 0.
Используются для передачи налоговых ставок в
реквизите rtTAXR (112).
Суммы, подлежащие налогообложению
высчитываются программой пользователя и
сохраняются в массиве из 15 элементов типа сумма
“...NNNN.NN”. Ненулевые элементы массива
передаются в ФР через реквизиты rtTAXR (112) в
этих байтах.
Первый байт – это индекс элемента в массиве (от 1
до 15) , умноженный на 16 (например элемент 4
передается как 64). В 2, 3, 4 и 5- м байтах передается
процентная ставка налога (в символьном виде,
первые 2 символа – целая часть, следующие 2
символа – дробная часть ставки). Сумма к
налогообложению по данной ставке налога
передается в параметре реквизита.
В пределах одной смены одному индексу может
соответствовать только одна ставка налога.
В реквизите rtPOS (10) 3-й байт (со смещением 0х06)
определяет номер отдела, передаваемый в ЭКЛЗ и
выводимый на печать принудительно.
0A
1
Координата первого символа в строке для чековой
ленты
0B
1
Координата строки на документе для чековой ленты
0C
1
Координата первого символа в строке для
подкладного документа
0D
1
Координата строки на документе для подкладного
документа
0E
2
Зарезервировано
16
Общая длина
***Для всех последующих описаний смещение определяется относительно
байта, следующего за последним байтом форматированной части реквизита.
Координаты определяют позицию реквизита на документе, а следующая за
ними информация определяет значение реквизита.
Координаты размещения реквизитов при печати документов продажи и покупки
игнорируются.
3.3.3 КОМАНДА ОТМЕНЫ ОТКРЫТОГО ЧЕКА(СБРОС ЧЕКА) , КОД 36
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
12
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
ВНИМАНИЕ : Команда применима только в торговом варианте.
3.4 ГРУППА КОМАНД СОСТОЯНИЯ ККМ
3.4.1 КОМАНДА ПОЛУЧЕНИЯ ИНФОРМАЦИИ О СОСТОЯНИИ ККМ,
КОД 28
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
В ответ на команду ККМ переходит в режим передачи последовательности
байт. Значащая часть принятой посылки распределяется следующим образом:
1 байт
Битовая маска флагов
состояния ККМ
7 байт
Последняя дата, установленная
в ККМ
16 байт
Заводской номер ККМ
текст
2 байт
Номер смены
WORD
2 байт
Номер документа
WORD
Битовая маска:
БИТ
ВЕЛИЧИНА
0
0
смена закрыта
1
смена открыта
0
не фискальный режим
1
фискальный режим
1
ЗНАЧЕНИЕ
Зарезервировано
2-7
При формировании команды с установленным в 1 старшим битом в поле кода
оператора значения "час, минута, секунда" в поле "Последняя дата, установленная в
ККМ" имеют смысл времени, прошедшего с момента проведения первой
платежной операции, а значения "год, месяц, день" - дату начала смены. Время
выводится в формате BCD.
3.4.2 КОМАНДА ЗАПРОСА О СОСТОЯНИИ СМЕНЫ, КОД 35
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
Ответ на команду при корректном завершении считывается из регистра данных
(378h). 0- смена закрыта, 1- смена открыта.
3.5 ГРУППА КОМАНД ПАРАМЕТРИЗАЦИИ ККМ
3.5.1 КОМАНДА СМЕНЫ ПРОГРАММИРУЕМОГО ЗАГОЛОВКА ЧЕКА,
КОД 33
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
13
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
256
Заголовок чека
Команда предназначена для перепрограммирования заголовка чека. Возможна
при закрытой смене. Строка текста может быть отформатирована посредством
ввода лидирующих пробелов и переводов строки (0x0A). Всего в заголовке
допускается до 5 строк, длина строки – до 40 символов (включая непечатные).
3.5.2 КОМАНДА СМЕНЫ ПАРОЛЯ НА ПОСЫЛКУ ДАННЫХ, КОД 34
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
4
Новый пароль
Команда предназначена для перепрограммирования пароля на посылку данных.
Возможна при закрытой смене.
3.5.3 КОМАНДА РЕГИСТРАЦИИ ОПЕРАТОРА, КОД 14
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
1
Код оператора
0C
23
Имя оператора
23
1
Терминатор строки (0)
36
Общая длина
3.5.4 КОМАНДА ПЕРЕКЛЮЧЕНИЯ В РЕЖИМ ИНВЕРСНОЙ ПЕЧАТИ,
КОД 29
СМЕЩЕНИЕ
ДЛИНА
ПАРАМЕТР
0
11
Форматированная часть
0B
1
Флаг печати: 0 - нормальная, n - инверсная
Команда позволяет дополнительно задать режим вывода на направление
принтера - подкладной документ в инверсном (документ повернут на 180
градусов относительно горизонтальной оси) режиме. Команда действует от
момента выдачи до завершения печати документа. n - не нулевое значение,
означающее количество строк, пропускаемых от начала печати документа.
Установка старшего бита этого байта в 1 переключает режим печати (сжатый
или обычный) с установленного в принтере по умолчанию на противоположный
(зависит от принтера).
3.6 ГРУППА КОМАНД РАБОТЫ С ЭЛЕКТРОННЫМ ЖУРНАЛОМ
3.6.1 КОМАНДА ПЕЧАТИ ПОЧАСОВОГО ОТЧЕТА, КОД 52
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
14
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
3.6.2 КОМАНДА ПЕЧАТИ ОТЧЕТА ПО ТОВАРАМ, КОД 49
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
3.6.3 КОМАНДА ПЕЧАТИ ОТЧЕТА ПО КАССИРАМ, КОД 51
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
3.6.4 КОМАНДА ПЕЧАТИ ЭЛЕКТРОННОГО ЖУРНАЛА, КОД 48
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
3.6.5 КОМАНДА ПЕЧАТИ ОТЧЕТА ПО ОТДЕЛАМ, КОД 50
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
3.6.6 КОМАНДА ПЕЧАТИ ОТЧЕТА ПО ВИДАМ ОПЛАТЫ, КОД 54
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
Команда работает только в режиме “номер отдела для чека”.
3.6.7 КОМАНДА ВЫДАЧИ ДАННЫХ ЭЛЕКТРОННОГО ЖУРНАЛА, КОД 13
СМЕЩЕНИЕ
ДЛИНА
0
11
ПАРАМЕТР
Форматированная часть
В ответ на команду ККМ переходит в режим передачи последовательности
байт. Данные передаются пакетами, которые имеют следующую структуру:
СМЕЩЕНИЕ
ДЛИНА
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
ПАРАМЕТР
15
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
0
1
Имеет значение 0
01
2
Длина пакета = n
03
n
Значащие байты пакета
03+n
1
Контрольная сумма
n+4
Общая длина
Передача данных начинается с пакета (флага начала передачи данных):
00 01 00 01 01
и заканчивается следующим пакетом (флагом окончания передачи данных):
00 01 00 04 04
4 ОПИСАНИЕ ПРОЦЕДУРЫ ПЕРЕДАЧИ ДАННЫХ
Обмен информацией между компьютером и регистратором осуществляется по
последовательному порту RS232, использующему аппаратный протокол обмена
DTR/DSR, настроенному на скорость 57600 бит в сек. (скорость обмена может
меняться, информация у поставщика), использующему длину посылки 8 бит, без
паритета четности, 1 стартовый бит.
Общий алгоритм посылки последовательности в ККМ:
1. дождаться готовности регистратора (линия DSR в регистре состояния
модема в состоянии логической единицы).
2. записать в регистр данных байт первый посылки.
3. дождаться сигнала освобождения сдвигового регистра передатчика (биты
TEMY и THEM в регистре состояния линии).
4. дождаться готовности и проверить активность регистратора на передачу.
Если регистратор передал ненулевой байт – то это код ошибки.
5. записать в регистр данных следующий байт посылки.
6. повтор пунктов 3,4,5 для передачи всех байт посылки.
7. передать байт контрольной суммы.
8. дождаться активности регистратора на передачу. Если регистратор передал
ненулевой байт – то это код ошибки.
Во время передачи байт команды следует следить за битом готовности
регистратора и активностью регистратора на передачу. При отсутствии ошибки
после приема всей команды регистратор передаст нулевой байт как ответ на
команду, после чего выставит сигнал готовности и становится возможной
посылка новой команды. Не нулевой байт сигнализирует о состоянии ошибки.
Регистр данных содержит принятый код ошибки.
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
16
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
Время между передачей очередного байта команды не должно превышать 2
секунды. При превышении этого времени таймаута команда игнорируется и
регистратор автоматически переходит в состояние ожидания новой команды.
ВНИМАНИЕ:
Штатные средства работы с портом RS232 на современных
моделях компьютеров, а именно средства BIOS и операционной системы DOS, а
также некоторых программных пакетов для разработки приложений не
обеспечивают правильной передачи данных.
5 ОПИСАНИЕ ПРОЦЕДУРЫ ПРИЕМА ДАННЫХ
После посылки команды, предполагающей передачу данных из ККМ,
необходимо:
1. выставить готовность приемника, для чего линию DTR перевести в
состояние логической единицы.
2. дождаться приема байта.
3. снять готовность приемника, для чего линию DTR перевести в состояние
логического нуля.
4. обработать принятый байт.
5. Повторить пункты 1,2,3,4 для всех байт посылки.
Длина передаваемого пакета определяется вторым и третьим байтами, которые
представляют собой число в формате WORD (первый байт – младшая часть,
второй байт – старшая часть), первый байт синхронизации всегда равен нулю.
За последним байтом пакета следует байт контрольной суммы, вычисляемый
путем арифметического сложения всех байт передаваемого пакета (длина пакета
и контрольная сумма не учитываются) без учета переноса из старшего разряда.
Окончание передачи сигнализируется посылкой регистратором нулевого байта
и переходом в режим ожидания следующей команды.
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
17
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
6 СПИСОК КОДОВ - НОМЕРОВ РЕКВИЗИТОВ
RtNO_DATA
0
нет данных
Системный
RtSEPR
1
Разделитель
Текст
Произвольный текст, предназначенный
для разделения зон документа. Реквизит
возможен в шапке документа и в конце
документа. Всего возможно 3 разделителя.
rt1CL
2
Клиент 1 код
текст (10б+0)
Произвольный текст, имеющий значение
номера счета/кредита. При подаче
реквизита оплата происходит в режиме "в
кредит" (форма оплаты по безналичным
документам).
rt2CL
3
Клиент 2 код
Текст
rt3CL
4
Клиент 3 код
Текст
rtt1CL
5
&титл
Текст
Произвольный текст для вывода на печать
rtt2CL
6
&титл
Текст
При печати детализированной
информации о кредите в этом реквизите
передается код кредита
rtt3CL
7
&титл
Текст
RtCARD
8
Платежная карта
клиента код
Текст
Произвольный текст, имеющий значение
номера платежной карты. При подаче
реквизита оплата происходит в режиме "по
карте".
RttCARD
9
&титл
Текст
Карта: фиксированный титл (тип карты)
rtPOS
10
Порядковый номер
товара/услуги
Число
Открывает блок описания товара/услуги
Текст
При печати детализированной
информации о кредите в этом реквизите
передается тип кредита
Байт со смещением 0х06 от начала
форматированной части реквизита
определяет номер отдела, передаваемый в
ЭКЛЗ.
rttPOS
11
&титл
rt1GS
12
Первый код товара
текст (13б+0)
rt2GS
13
Второй код товара
Текст
Обязательный реквизит. Наименование
товара.
Обязательный реквизит. Код товара.
Обязательный реквизит. Номер отдела.
Должен состоять из трех пробелов (при
печати заменяются на номер отела ЭКЛЗ)
и следующих за ними произвольных
символов, содержащих информацию об
отделе.
rt3GS
14
Третий код товара
Текст
Устаревший реквизит. Игнорируется.
Оставлен для совместимости с
предыдущей версией.
rtt1GS
15
&титл
Текст
Произвольный текст, название для поля
кода товара.
rtt2GS
16
&титл
Текст
-----------------------//------------------------
rtt3GS
17
&титл
Текст
-----------------------//------------------------
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
18
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
rtAMNT
18
Кол-во товара
2 байта
Количество, если передаваемая величина –
целое. При передаче дробной величины
количества (младшие два байта).
rttAMNT
19
Кол – во товара
2 байта
При передаче дробной величины
количества - старшие два байта. Если
количество целое - не передается.
rt1BASES
21
Цена за единицу
товара в базовой
валюте
Сумма
rtt1BASES
23
&титл
rtINCR
24
Сумма надбавки
Сумма
rttINCR
25
&титл
Текст
rtDISC
26
Сумма скидки
(discount)
Сумма
rttDISC
27
&титл
Текст
Системный
Цена: фиксированный титл
Произвольный текст, название для поля
надбавки.
Произвольный текст, название для поля
скидки. До 40 символов. В торговом
режиме для всех типов скидок и наценок.
>>> Объекты с
фиксированными
титлами <<<
rtFIRM
28
Название
предприятия и
адрес
Координаты
заголовка
чека
rttFIRM
29
титл
Системный
rtKKM
30
Номер машины
Системный
rttKKM
31
титл
Системный
rtFM
32
Номер ПФМ
(платы фискальной
памяти)
Системный
rttFM
33
титл
Системный
rtOPRC
34
Оператор - код
Системный
rttOPRC
35
титл
Системный
rtOPRN
36
Оператор - имя
Системный
rttOPRN
37
титл
Системный
rtDATE
38
Дата
Системный
rttDATE
39
титл
Системный
rtTIME
40
Bремя
Системный
rttTIME
41
титл
Системный
rtISN
42
Сквозной
порядковый номер
документа
Системный
RttISN
43
титл
Системный
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
ККМ # фиксированный титл
ПФП # фиксированный титл
Оператор: фиксированный титл
Оператор: фиксированный титл
Дата: фиксированный титл
Время: фиксированный титл
Документ # фиксированный титл
19
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
RtLSN
44
Чек
число
DWORD(торговля)
RttLSN
45
Терминал
Число
DWORD(торговля)
rtSHIFT
48
Hомер смены
Системный
rttSHIFT
49
титл
Системный
rt4GS
50
Номер отдела для
чека
Текст
Смена # фиксированный титл
Обязательный в режиме “номер отдела для
чека” реквизит. Номер отдела.
Должен состоять из трех пробелов (при
печати заменяются на номер отела ЭКЛЗ)
и следующих за ними произвольных
символов, содержащих информацию об
отделе.
Байт со смещением 0х06 от начала
форматированной части реквизита
определяет номер отдела, передаваемый в
ЭКЛЗ.
rtDOC
52
Название
документа соотв.
типа
Системный
Текст, например ПРОДАЖА, ВОЗВРАТ
rttDOC
53
титл
Системный
Документ: фиксированный титл
rtDOCT
54
Тип документа
Системный
Числовое обозначение
rttDOCT
55
титл
Системный
Тип документа: фиксированный титл
rtBASEC
57
Национальная
(базовая) валюта
код
Системный
2
rttBASEC
59
титл
Системный
КодНВ: фиксированный титл
rtBASECN
61
Национальная
(базовая) валюта
название
Системный
рубль фиксированный титл
rttBASECN
63
титл
Системный
НацВал: фиксированный титл
rtBASES
67
Национальная
(базовая) валюта
сумма
rttBASES
69
титл
rtPSB
71
Частный итог к
последнему товару
в базовой валюте
rttPSB
73
титл
rtISB
75
Промежуточный
итог в базовой
валюте
rttISB
77
титл
rtSUMB
79
Итог по чеку в
базовой валюте
rttSUMB
81
титл
Сумма
Системный
Сумма
Системный
Закрывает блок описания товара/услуги.
Сумма: фиксированный титл
Обязателен при применении операций
скидки/надбавки.
Част. итог: фиксированный титл
Сумма
Системный
Пром. итог: фиксированный титл
Сумма
Системный
ИТОГО: фиксированный титл
ПРОДАЖА
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
20
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
rtPAYB
83
Принято от
клиента
наличными в
базовой валюте
rttPAYB
85
титл
rtPAYCB
87
Принято от
клиента по карте в
базовой валюте
rttPAYCB
89
титл
rtPAYICB
91
Принято от
клиента в кредит в
базовой валюте
rttPAYICB
93
титл
rtCHGB
95
Сдача в базовой
валюте
rttCHGB
97
титл
Сумма
Системный
Принято: фиксированный титл
Сумма
Системный
По карте: фиксированный титл
Сумма
Системный
В кредит: фиксированный титл
Сумма
Системный
Сдача: фиксированный титл
ПОКУПКА
rtBACKB
99
Выплачено
клиенту
наличными в
базовой валюте
Сумма
rttBACKB
101
титл
Системный
rtEND
102
Конец документа
Системный
Только для операций покупки
Выплачено: фиксированный титл
(в торговом
варианте –
тектовой)
rtPAYGOOD
S
103
Оплата товаром
Сумма
rttPAYGOOD
S
104
титл
Системный
Тара: фиксированный титл
rtINCRP
105
Процентная
надбавка
Байт-число
Целое число
rttINCRP
106
титл
rtDISCP
107
Процентная скидка
rttDISCP
108
титл
RtTAX
109
Налоговая ставка
Системный
RtTAXT
110
Налоговая ставка
Текст
rtTPIN
111
ИНН
Системный
Распечатывает ИНН из фискальной памяти
ККМ
rtTAXR
112
Налоговая ставка
Системный
Сумма выделенного налога(только в
торговом варианте)
Текст
Байт-число
Целое число
Текст
Сумма выделенного налога
Передача текстовых строк в случае длины менее чем указанно в командах,
должна осуществляться следующим образом: после последнего значащего
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
21
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
символа ставится нулевой байт, далее до полной длины текстового поля любые
символы. Если текстовый реквизит является последним в команде, возможно
сокращение всей длины команды до размера значащего поля.
Для обязательных реквизитов со строковыми параметрами не допускается
передача пустой строки или строки, состоящей только из пробелов, т.е. в строке
должен присутствовать хотя бы один печатный символ.
Понятие СИСТЕМНЫЙ означает передачу только положения реквизита на
документе без каких-либо дополнительных параметров и фактически
представляет собой посылку только форматированной части реквизита.
Вид операции задается с помощью поля код документа в команде начала
формирования чека
DOC_PUT
1
документ внесения
DOC_GET
2
документ выплаты
DOC_RET
4
документ возврата
DOC_BUY
5
документ покупки
DOC_SALE
6
документ продажи
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
22
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
7 АЛГОРИТМ
ФОРМИРОВАНИЯ
(ТОРГОВЫЙ ВАРИАНТ).
ДОКУМЕНТА
ПРОДАЖИ
Команда Реквизит означает подать команду 16 с соответствующим номером
(типом) реквизита и соответствующими параметрами.
О1
Начало формирования документа
1
Подать команду 15 с типом документа 6
2
Присвоить порядковому номеру товара 0
О2
Печать заголовка документа
1
Реквизит rtFIRM (28) – название предприятия и
адрес.
Если выбран режим “номер отдела для чека”, то
{Реквизит rtt1GS (50)-номер отдела для чека }
О3
Печать реквизитов описания товара или услуги
1
2
Увеличить порядковый номер товара на 1
1.
2.
3.
4.
5.
6.
7.
8.
Реквизит rtPOS (10) – порядковый номер
товара
Реквизит rtt1GS (15) – наименование товара
Реквизит rt1GS (12) – код товара
Реквизит rt2GS (13) –номер отдела
если количество товара дробное, то
{
Реквизит rttAMNT (19) – старшие 2 байта колва товара
Реквизит rtAMNT (18) – младшие 2 байта кол-ва
товара
}
иначе
{
Реквизит rttAMNT (18) – кол-во товара
}
Реквизит rt1BASES (21) – цена за единицу
товара
Реквизит rtBASES (67) –общая сумма (кол-во х
цена)
[Реквизит rt3GS (14) – третий код товара]
3
Если на товар есть скидка, перейти к П1
4
Если на товар есть надбавка, перейти к П2
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
В
режиме
“номер
отдела для чека” номер
отдела для ЭКЛЗ в
рекизите rtPOS(10) и
номер
отдела
в
рекизите
rt2GS(13)
игнорируются. Могут
быть переданы нулевые
значения.
Дробное кол-во товара
передается как целое
типа long (4 байта) в
реквизитах rttAMNT и
rtAMNT, на печать
выводится как дробное
число
(переданное
целое, деленное на
1000).
Выполнение
п.
необязательно.
8
23
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
5
Если товар/услуга в документе последний,
перейти к О4
6
Если необходимо напечатать подитог по
чеку, перейти к П9
7
Если необходимо
перейти к П10
8
Перейти к О3-2
О4
провести
коррекцию,
Печать итоговой суммы документа
1
Если на сумму чека есть скидка, перейти к
П3
2
Если на сумму чека есть надбавка, перейти
к П4
3
1.
2.
3.
4.
О5
Реквизит rttISB (77) – титл
Реквизит rtISB(75) – промежуточный итог
(сумма всех позиций в документе)
Реквизит rttSUMB (81) – титл
Реквизит rtSUMB (79) – общий итог по
документу
Печать сумм оплаты по документу
1
Если оплата наличными, перейти к П5
2
Если оплата по кредитной карте, перейти
к П6
3
Если оплата в кредит, перейти к П7
О6
Должен присутсвовать
хотябы один из видов
оплаты
Завершение печати документа
1
1.
2.
Реквизит rtLSN (44) – номер чека
Реквизит rttLST (45) – номер кассы
2
Если в документе выделяются налоги,
перейти к П8
3
Реквизит rtEND
документа
(102)
–
Это
номера
в
компьютерной системе
завершение
ПОДПРОГРАММЫ
П1
Оформление скидки
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
24
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
1
2
Если скидка процентная, то перейти к П13
СУММОВАЯ СКИДКА
1.
2.
3.
3
ПРОЦЕНТНАЯ СКИДКА
1.
2.
4
Реквизит rttDISC (27) – титл
Реквизит rtDISC (26) – сумма скидки
Перейти к П1-4
1.
2.
П2
Реквизит rttDISCP (108) – титл
Реквизит rtDISCP (107) – процентная скидка
Реквизит rtPSB (71) – частный итог к
последнему товару
Выход из подпрограммы
Оформление надбавки
1
2
Если надбавка процентная, то перейти к
П2-3
СУММОВАЯ НАДБАВКА
1.
2.
3.
3
ПРОЦЕНТНАЯ НАДБАВКА
1.
2.
4
Реквизит rttINCR (25) – титл
Реквизит rtINCR (24) – сумма надбавки
Перейти к П2-4
1.
2.
П3
Реквизит rttINCRP (106) – титл
Реквизит rtINCRP (105) – процентная надбавка
Реквизит rtPSB (71) – частный итог к
последнему товару
Выход из подпрограммы
Оформление скидки на сумму чека
1
1.
2.
3.
4.
5.
6.
2
Увеличить порядковый номер товара на 1
Реквизит rtPOS (10) – порядковый номер
товара
Реквизит rtAMNT (18) – кол-во товара (=1)
Реквизит rt1BASES (21) – цена за единицу
товара
Реквизит rtBASES (67) – сумма (= rt1BASES)
Если скидка процентная, то перейти к П3-3
СУММОВАЯ СКИДКА
1.
2.
3.
Реквизит rttDISC (27) – титл
Реквизит rtDISC (26) – сумма скидки
Перейти к П3-4
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
Оформляется
как
скидка на подитог чека,
который передается как
товар с количеством,
равным
1,
ценой,
равной сумме по чеку и
суммой, равной сумме
по чеку.
В
реквизите rtPOS
необходимо передать
не нулевой байт со
смещением
0x5
от
начала
форматированной части
реквизита.
25
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
3
ПРОЦЕНТНАЯ СКИДКА
1.
2.
4
1.
2.
П4
Реквизит rtPSB (71) – частный итог к
последнему товару
Выход из подпрограммы
Оформление надбавки на сумму чека
1
1.
2.
3.
4.
5.
6.
2
3
См. П3
Реквизит rttINCR (25) – титл
Реквизит rtINCR (24) – сумма надбавки
Перейти к П2-4
ПРОЦЕНТНАЯ НАДБАВКА
1.
2.
4
Увеличить порядковый номер товара на 1
Реквизит rtPOS (10) – порядковый номер
товара
Реквизит rtAMNT (18) – кол-во товара (=1)
Реквизит rt1BASES (21) – цена за единицу
товара
Реквизит rtBASES (67) – сумма (= rt1BASES)
Если скидка процентная, то перейти к П4-3
СУММОВАЯ НАДБАВКА
1.
2.
3.
1.
2.
П5
Реквизит rttINCRP (106) – титл
Реквизит rtINCRP (105) – процентная надбавка
Реквизит rtPSB (71) – частный итог к
последнему товару
Выход из подпрограммы
Оформление оплаты наличными
1
1.
2.
3.
4.
5.
П6
Реквизит rttDISCP (108) – титл
Реквизит rtDISCP (107) – процентная скидка
Реквизит rttPAYB (85) – титл
Реквизит rtPAYB (83) – принято от клиента
наличными
Реквизит rttCHGB (97) – титл
Реквизит rtCHGB (95) – сдача
Выход из подпрограммы
Оформление оплаты по кредитной карте
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
26
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
1
Если оплата оформляется без детализации
{
1.
Реквизит rtCARD (8) – код кредитной карты
2.
Реквизит rtPAYCB (87) – принято от клиента
по кредитной карте
Установить
в
форматированной
части реквизитов
байт по смещению
03 равным 0.
}
иначе
{
для i==1 пока i<=Кол-во карт {
1. Реквизит rtCARD (8) – тип карты
2. Реквизит rttCARD (9) – код кредитной карты
3. Реквизит rtPAYCB (87) – принято от клиента по
кредитной карте
}
Установить
в
форматированной
части реквизитов
байт по смещению
03
равным
i.
Максимальное
число карт - 16
}
Выход из подпрограммы
П7
Оформление оплаты в кредит
1
Если оплата оформляется без детфлизации
{
3.
Реквизит rt1CL (2) – номер кредита
4.
Реквизит rtPAYICB (91) – принято от клиента
в кредит
Установить
в
форматированной
части реквизитов
байт по смещению
03 равным 0.
}
иначе
{
для i==1 пока i<=Кол-во кредитов {
4. Реквизит rt2CL (3) – тип кредита
5. Реквизит rtt2CL (6) – код кредита
6. Реквизит rtPAYICB (91) – принято от клиента в
кредит
}
}
Выход из подпрограммы
П8
Оформление налогов
1
П9
Установить
в
форматированной
части реквизитов
байт по смещению
03
равным
i.
Максимальное
число кредитов 16
1.
2.
Реквизит rtTAXR (112) – налоговая ставка
Выход из подпрограммы
Оформление подитога
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
27
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
1
1.
2.
3.
4.
5.
6.
7.
Увеличить порядковый номер товара на 1
Реквизит rtPOS (10) – порядковый номер
товара
Реквизит rtAMNT (18) – кол-во товара (=1)
Реквизит rt1BASES (21) – цена за единицу
товара
Реквизит rtBASES (67) – сумма (= rt1BASES)
Реквизит rtPSB (71) – частный итог к
последнему товару
Выход из подпрограммы
П10
Оформляется как товар
с количеством, равным
1, ценой, равной сумме
по чеку и суммой,
равной сумме по чеку.
В
реквизите rtPOS
необходимо передать
не нулевой байт со
смещением
0x5
от
начала
форматированной части
реквизита.
Оформление коррекции
1
2
Увеличить порядковый номер товара на 1
Если товар был со скидкой (наценкой)
{
если скидка (наценка) процентная
{
rtDISCP(107) (rtINCRP(105)
}
иначе
{
rtDISC(26) (rtINC(24))
}
rtPSB(71)
}
1.
Реквизит rtPOS (10) – порядковый номер
товара
2.
Реквизит rtt1GS (15) – наименование товара
3.
Реквизит rt1GS (12) – код товара
4.
[Реквизит rt2GS (13) – номер отдела]
5.
6.
7.
8.
9.
5
В реквизите rtPOS (10)
байт со смещением 0x4
от
начала
форматированной части
реквизита должен быть
выставлен в 1. В
остальном коррекция
оформляется также как
и товарная позиция.
Если
товар
был
оформлен со скидкой
(наценкой),
то
необходимо отменить
скидку (наценку). Для
этого в реквизитах
rtDISCP(107),
(rtINCRP(105),
rtDISC(26)
и
(rtINC(24)) байт со
смещением
0x3
от
начала
форматированной части
реквизита установить
равным 0x8.
Реквизит rttAMNT (19) – старшие 2 байта колва товара
Реквизит rtAMNT (18) – младшие 2 байта колва товара
Реквизит rt1BASES (21) – цена за единицу
товара
Реквизит rtBASES (67) –общая сумма (кол-во х
цена)
[Реквизит rt3GS (14) – третий код товара]
Выход из подпрограммы
АЛГОРИТМ
ФОРМИРОВАНИЯ
ВЫПЛАТЫ, И ВОЗВРАТА.
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
ДОКУМЕНТОВ
ВНЕСЕНИЯ,
28
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
Команда Реквизит означает подать команду 16 с соответствующим номером
(типом) реквизита и соответствующими параметрами.
О1
Начало формирования документа
1
Подать команду 15 с типом документа.
Типы документов:
1 – внесения
2 – выплаты
4 – возврата
(продажи или
покупки, см.
ниже)
О2
Печать заголовка документа
1
1.
Реквизит rtSEPR (1) – Разделитель.
2.
Реквизит
rtFIRM
предприятия и адрес.
3.
Реквизит rtSEPR (1) – Разделитель.
4.
Реквизит rtTPIN (111) – ИНН.
5.
Реквизит rttISN(43) – титл.
6.
Реквизит rtISN (42) – СПНД.
7.
Реквизит rtSEPR (31) – титл.
8.
Реквизит rtSEPR (30) – номер ПФМ.
9.
Реквизит rtDOC (52) – название документа.
(28)
–
название
10. Реквизит rttOPRC (35) – титл.
11. Реквизит rtOPRC (34) – код оператора.
12. Реквизит rtOPRN (36) – имя оператора.
13. Реквизит rttDATE (39) – титл.
14. Реквизит rtDATE (38) – дата.
15. Реквизит rttTIME (41) – титл.
16. Реквизит rtTIME(40) – время.
О3
Печать итоговой части документа
1
1.
Реквизит rttSUMB(81) – титл.
2.
Реквизит rtSUMB (79) – итог по чеку.
3.
Реквизит rtEND (102) – конец документа.
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
При оформлении
документа
возврата покупки
в байте по
смещению 03 от
начала
29
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
форматированной
части реквизита
rtSUMB (79)
должно быть
значение 16 (для
возврата продажи
– 0).
Примечания
В документах возврата возможен только один тип платежа (наличные, по кредитной карте или в
кредит). Для оформления возврата по кредитной карте необходимо перед реквизитом
rttSUMB(81) передать реквизиты RtCARD(8) и RttCARD(9); для оформления возврата в кредит –
соответсвенно реквизиты rt1CL(2) и rtt1CL(5).
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
30
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
8 ПЕРЕЧЕНЬ КОДОВ СОСТОЯНИЙ
0 OK Нет ошибки
8.1 Фатальные ошибки фискальной памяти
При возникновении фатальной ошибки необходимо обращаться в сервис-центр
1 Недопустимый идентификатор накопителя фискальной памяти
2 Ошибка записи в накопитель фискальной памяти
4 Накопитель фискальной памяти не пуст
5 Данные в накопителе фискальной памяти разрушены
13 Данные заводской регистрации ККМ в накопителе фискальной памяти
разрушены
16 Данные фискализации в накопителе фискальной памяти разрушены
17 Перерегистрации ККМ исчерпаны
18 Данные перерегистрации в накопителе фискальной памяти разрушены
22 Данные закрытия смены в накопителе фискальной памяти разрушены
35 Переполнение накопителя фискальной памяти
37 Несовпадение контрольной суммы ОЗУ
38 Несовпадение контрольной суммы накопителя фискальной памяти
39 Порт данных неисправен
51 Сбой памяти
8.2 Не фатальные ошибки, приводящие к временным блокировкам
9 Несовпадение заводского номера ПФП/ККМ
10 Несовпадение пароля
11 Не допустимые дата/время
Снимается путем ввода правильных данных.
Ошибка 11 возникает в нормальных условиях при открытии смены. При
правильных данных ошибка повторяется 3 раза без вывода сообщения ошибки
на печать в случае, когда между датой последнего закрытия смены и датой
текущего открытия интервал более одного календарного дня, на 4 раз
происходит открытие.
8.3 Ошибки программы передачи
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
31
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
7 Отсутствует код оператора
8 Не определен тип документа
15 ККМ работает в не фискальном режиме
19 Смена открыта
20 Смена не была открыта
21 Слишком много товара в чеке
23 Неверный формат документа
24 Перезапись текста документа
25 Слишком много параметров документа
26 Недопустимый параметр документа
27 Недопустимое значение параметра документа
28 Описание несуществующего объекта
29 Документ не был завершен
30 Описание товара или операции не полно
31 Несоответствие контрольной суммы пакета
Может также возникнуть при отсутствии синхронизации или несовпадении
контрольных сумм денежных и операционных регистров
40 Недопустимый порядок реквизитов чека
41 Нулевые координаты для обязательного реквизита
42 Недопустимая длина запроса
43 Разрядность числа больше допустимой
45 Нет числа
Необходимо корректно передать данные в ККМ
8.4 Ошибки синхронизации передачи/приема
33 Вложенные прерывания
34 Неверный байт подтверждения приема данных
46 Нет ответа
47 Ошибка передачи
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
32
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
8.5 Ошибки переполнения накопительных регистров
44 Переполнение
48 Мат. переполнение
Ошибки переполнения требуют проведения операции общего гашения.
8.6 Ошибки принтера
32 Принтер не готов
49 Нет бумаги
52 Принтер выключен
59 Превышено время ожидания готовности принтера
8.7 Общие ошибки
6 Команда в режиме принтера игнорируется
53 Недостаточно памяти
36 Неизвестная команда
Может возникать при временной блокировке в ответ на посылку команды,
запрещенной на момент блокировки.
50 ККМ не готова
Не запрограммированы все необходимые для работы ККМ параметры, в
частности:
- перепрограммируемый заголовок чека.
8.8 Ошибки при работе с ЭКЛЗ
61 Ошибка ЭКЛЗ
При возникновении ошибки ЭКЛЗ на компьютер передается код ошибки 61, а
на контрольной ленте печатается дополнительная информация с кодом
состояния ЭКЛЗ:

01 – некорректный формат или параметр команды

02 – некорректное состояние ЭКЛЗ

03 – авария ЭКЛЗ

04 – авария КС (Криптографического сопроцессора) в составе ЭКЛЗ

05 – исчерпан временной ресурс использования ЭКЛЗ
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
33
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ

06 – ЭКЛЗ переполнена

07 – неверные дата или время

08 – нет запрошенных данных

09 – переполнение (отрицательный итог документа, слишком много
отделов для клиента)
62 Недопустимое состояние ЭКЛЗ
9 ПЕРЕЧЕНЬ УПРАВЛЯЮЩИХ КОМАНД
Фискальный регистратор позволяет использовать управляющие команды
принтера (стандарт EPSON, см. руководство оператора принтера), за
исключением команд, управляющих графическим выводом, загрузки
пользовательских шрифтов и перевода печати на контрольную ленту. Особую
группу составляют команды, возвращающие значения. Для большинства таких
команд регистратор не возвращает запрошенных данных, кроме команд DLE
EOT n (Hex 10 04 n) и команды проверки состояния денежного ящика (ESC 75).
Использование управляющих команд принтера возможно, только если
регистратор выставил сигнал готовности (DSR) и нет незакрытых
фискальных документов
Запрещены следующие команды (шестнадцатеричные коды):
GS 2a – define downloaded bit image
GS 2f – print downloaded bit image
ESC 2a – select bit image mode
ESC 7a – turns on/off parallel printing mode on receipt and journal paper
ESC 25 – select/cancel user defined character set
ESC 63 30 2 – select paper type for printing– запрещен вывод на КЛ
Команды DLE регистратор пропускает, однако значения возвращаются только
для команды DLE EOT
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
34
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
10 ПРИЛОЖЕНИЕ. ПЕРЕЧЕНЬ КОДОВ СОСТОЯНИЙ ПО НОМЕРАМ
Код
Описание
0
OK Нет ошибки
1
Недопустимый идентификатор накопителя фискальной памяти
2
Ошибка записи в накопителя фискальной памяти
4
Накопитель фискальной памяти не пуст
5
Данные в накопителе фискальной памяти разрушены
6
Команда в режиме принтера игнорируется
7
Отсутствует код оператора
8
Не определен тип документа
9
Несовпадение заводского номера ПФП/ККМ
10
Несовпадение пароля
11
Не допустимые дата/время
13
Данные заводской регистрации ККМ в накопителе фискальной памяти
разрушены
15
ККМ работает в не фискальном режиме
16
Данные фискализации в накопителе фискальной памяти разрушены
17
Перерегистрации ККМ исчерпаны
18
Данные перерегистрации в накопителе фискальной памяти разрушены
19
Смена открыта
20
Смена не была открыта
21
Слишком много товара в чеке
22
Данные закрытия смены в накопителе фискальной памяти разрушены
23
Неверный формат документа
24
Перезапись текста документа
25
Слишком много параметров документа
26
Недопустимый параметр документа
27
Недопустимое значение параметра документа
28
Описание несуществующего объекта
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
35
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
29
Документ не был завершен
30
Описание товара или операции не полно
31
Несоответствие контрольной суммы пакета
32
Принтер не готов
33
Вложенные прерывания
34
Неверный байт подтверждения приема данных
35
Переполнение накопителя фискальной памяти
36
Неизвестная команда
37
Несовпадение контрольной суммы ОЗУ
38
Несовпадение контрольной суммы накопителя фискальной памяти
39
Порт данных неисправен
40
Недопустимый порядок реквизитов чека
41
Нулевые координаты для обязательного реквизита
42
Недопустимая длина запроса
43
Разрядность числа больше допустимой
44
Переполнение
45
Нет числа
46
Нет ответа
47
Ошибка передачи
48
Мат. переполнение
49
Нет бумаги
50
ККМ не готова
51
Сбой памяти
52
Принтер выключен
53
Недостаточно памяти
59
Превышено время ожидания готовности принтера
61
Ошибка ЭКЛЗ
62
Недопустимое состояние ЭКЛЗ
63
Данные учтены в ЭКЛЗ и ФП, но возникли проблемы у принтера при
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
36
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
завершении чека
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
37
ИНСТРУКЦИЯ ПО ПРОГРАММИРОВАНИЮ
Примечания и дополнения

Максимальная сумма по одной налоговой ставке составляет 21474836.47
руб. Большая сумма вызовет ошибку 27 (Нлг Сум < 0)

Номер отдела в ЭКЛЗ передается через реквизит rtPOS (10) в 3-м
зарезервированном байте (смещений 0х6 от начала форматированной
части реквизита)

В общей версии может быть только один номер отдела на чеке, задается
первой товарной позицией.

В общей версии налог задается для каждого товара. Налоговая ставка
задается в реквизите rtBASES (67) – в байте по смещению 0х4 – номер
ставки (в старшем полубайте) (от 0 до 15). В четырех следующих байтах
передается налоговая ставка в %, например – “9999” – 99.99%. Далее
подать реквизит rtTAX (109) как системный. В байтах по смещению от
0х4
задаются:
4 – кол-во пробелов от начала реквизита. Если =0, то печатаются только
деньги
5
–
выравнивание
влево,
если
=1
6 – кол-во пробелов между номером ставки и суммой. Если =0 – ошибка.
Для печати налогов в конце чека перед 102 подается реквизит 110 как
системный. Формат задается как и в реквизите 109.
***  АРЕС-КОМПАНИ  МОСКВА  2003 ***
38
Download