3.2 Команды получения данных о ККТ
3.2.0 Открытие порта
Функция: int openPort(char *fileName, long speed);
Входные параметры: (Строка) Имя порта, например “COM1” или “dev/ttyS1”, (Целое число) Скорость, например 57600.
Ответные параметры: (Целое число) Код ошибки.
3.2.1 Запрос флагов статуса ККТ (0x00)
Функция: MData libGetStatusFlags();
Входные параметры: нет
Ответные параметры: (Структура MData) Ответ от ФР, который содержит (Целое число) Статус фатального состояния ККТ, (Целое число) Статус текущих флагов ККТ, (Целое число) Статус документа
Функция: int getStatusFlags (int *fatalStatus, int *currentFlagsStatus, int *documentStatus);
Входные параметры: нет
Ответные параметры: (Целое число) Код ошибки.
fatalStatus (Указатель на целое число) Статус фатального состояния ККТ, currentFlagsStatus (Указатель на целое число) Статус текущих флагов ККТ, documentStatus (Указатель на целое число) Статус документа
Статус фатального состояния ККТ
Номер бита
|
Пояснения
|
0
|
Неверная контрольная сумма NVR
|
1
|
Неверная контрольная сумма в конфигурации
|
2
|
Зарезервировано
|
3
|
Зарезервировано
|
4
|
Зарезервировано
|
5
|
ККТ не авторизовано
|
6
|
Фатальная ошибка ФН
|
7
|
Зарезервировано
|
При установке любого бита статуса фатального состояния блокируются все функции ККТ, за исключением битов 6 и 7, при установке которых доступны команды закрытия смены и закрытия архива ЭКЛЗ.
Статус текущих флагов ККТ
Номер бита
|
Пояснения
|
0
|
Не была вызвана функция “Начало работы”
|
1
|
Нефискальный режим
|
2
|
Смена открыта
|
3
|
Смена больше 24 часов
|
4
|
Архив ЭКЛЗ закрыт
|
5
|
ЭКЛЗ не активирована
|
6
|
Нет памяти для закрытия смены в ФП
|
7
|
Был введен неверный пароль доступа к ФП
|
8
|
Не было завершено закрытие смены, необходимо повторить операцию
|
Статус документа
Номера бит
|
Пояснения
|
Тип текущего открытого документа
|
0,1,2,3
|
0 Документ закрыт
1 Сервисный документ
2 Чек на продажу (приход)
3 Чек на возврат (возврат прихода)
4 Внесение в кассу
5 Инкассация
6 Чек на покупку (расход)
7 Чек на возврат покупки (возврат расхода)
|
Состояние документа
|
4,5,6,7
|
Для всех типов документов:
0 Документ закрыт
1 Устанавливается после команды «открыть документ». (Для типов документа 2, 3 - можно вводить товарные позиции и скидки/наценки на них.)
Для документов типа 2, 3:
2 Устанавливается после первой команды «Подытог». Можно делать скидки/наценки на чек.
3 Устанавливается после второй команды «Подытог» или после начала команды «Оплата». Можно только производить оплату различными типами платежных средств.
4 Расчет завершен – требуется закрыть документ.
8 Команда закрытия документа была дана в ФН, но документ не был завершен. Аннулирование документа невозможно.
|
3.2.2 Запрос сменных счетчиков и регистров (0x01)
Функция: MData libGetCountersAndRegisters (unsigned char numRequest);
Эта команда позволяет получать различные значения сменных счетчиков и регистров ККТ.
Входные параметры: numRequest (Целое число 1..14) Номер запроса.
Ответные параметры: (Структура MData) Ответ от ФР, который содержит: (Целое число) Номер запроса, Возвращаемые данные.
Тип и количество возвращаемых данных зависит от значения номера запроса.
Номер
запроса
(DEC)
|
Наименование
Запроса
|
Формат возвращаемых данных
|
Комментарии
|
1
|
Вернуть номер текущей смены
|
Целое число
|
|
2
|
Вернуть номер следующего чека
|
Целое число
|
Возвращается правильный номера чека только при автоматической нумерации чеков средствами самой ККТ.
|
3
|
Вернуть суммы продаж по типам платежа
|
Дробное число*16
|
Возвращается 16 значений – по максимально возможному количеству типов платежей.
|
5
|
Вернуть суммы возвратов по типам платежа
|
Дробное число*16
|
7
|
Вернуть количество оформленных чеков по типам операций
|
Целое число*6
|
Возвращается 6 значений – количество чеков продажи, возврата, аннулированных, отложенных, чеков внесения и изъятия.
|
8
|
Вернуть суммы по оформленным чекам
|
Дробное число*4
|
Возвращается 4 значения – суммы по аннулированным и отложенным чекам, чекам внесения и изъятия.
|
9
|
Вернуть суммы по скидкам/ наценкам
|
Дробное число*4
|
Возвращается 4 значения – суммы скидок по продажам, наценок по продажам, скидок по возвратам, наценок по возвратам.
|
10
|
Вернуть суммы налогов по продажам
|
Дробное число*6
|
|
11
|
Вернуть суммы налогов по возвратам
|
Дробное число*6
|
|
12
|
Вернуть данные по последнему X отчету или отчету о закрытии смены
|
Строка,
Целое число,
Дробное число,
Целое число,
Дробное число,
Целое число,
Дробное число,
Целое число,
Дробное число,
Целое число,
Дробное число,
Целое число,
Дробное число,
|
Возвращается 13 значений –
текущий операционный счетчик,
номер документа,
сумма в кассе,
кол-во продаж (кол-во приходов),
сумма продаж (сумма приходов),
кол-во возвратов (возвратов прихода),
сумма возвратов (возвратов прихода),
количество аннулированных,
сумма аннулированных,
количество внесений,
сумма внесений,
количество изъятий,
сумма изъятий.
|
13
|
Вернуть суммы по секциям/отделам по продажам
|
Дробное число*16
|
Возвращается 16 значений – по максимально возможному количеству секций/отделов
|
14
|
Вернуть суммы по секциям/отделам по возвратам
|
Дробное число*16
|
Возвращается 16 значений – по максимально возможному количеству секций/отделов
|
15
|
Вернуть количество оформленных чеков по типам операций
|
Целое число,
Целое число
|
кол-во чеков покупок (расходов),
кол-во чеков возвратов покупок (возвратов расхода),
|
16
|
Вернуть суммы покупок по типам платежа
|
Дробное число*16
|
Возвращается 16 значений – по максимально возможному количеству типов платежей.
|
17
|
Вернуть суммы возвратов покупок по типам платежа
|
Дробное число*16
|
Возвращается 16 значений – по максимально возможному количеству типов платежей.
|
18
|
Вернуть данные по коррекциям
|
Целое число,
Дробное число*2
|
Количество коррекций
Суммы коррекций наличными и безналичными
|
3.2.3 Запрос сведений о ККТ (0x02)
Функция: MData libGetKKTInfo(unsigned char numRequest);
Эта команда позволяет получать разнообразную информацию о ККТ.
Входные параметры: numRequest (Целое число 1..16) номер запроса.
Ответные параметры: (Структура MData) Ответ от ФР, который содержит: (Целое число) Номер запроса, Возвращаемые данные.
Тип и количество возвращаемых данных зависит от значения номера запроса.
Номер
запроса
(DEC)
|
Наименование
запроса
|
Формат возвращаемых данных
|
Комментарии
|
1
|
Вернуть заводской номер ККТ
|
Строка
|
|
2
|
Вернуть идентификатор прошивки
|
Целое число
|
|
3
|
Вернуть ИНН
|
Строка
|
|
4
|
Вернуть регистрационный номер ККТ
|
Строка
|
|
5
|
Вернуть дату и время последней фискальной операции
|
Дата, Время
|
|
6
|
Вернуть дату регистрации / перерегистрации
|
Дата
|
|
7
|
Вернуть сумму наличных в денежном ящике
|
Дробное число
|
|
8
|
Вернуть номер следующего документа
|
Целое число
|
|
9
|
Вернуть номер смены регистрации
|
Целое число
|
|
10
|
Вернуть номер следующего X отчета
|
Целое число
|
|
11
|
Вернуть текущий операционный счетчик
|
Строка
|
|
12
|
Вернуть нарастающий итог
|
Дробное число,
Дробное число,
Дробное число,
Дробное число
|
Продажа (приход),
Возврат (возврат прихода),
Покупка (расход),
Возврат покупки (возврат расхода)
|
14
|
Вернуть дату окончания временного ресурса ФН
|
Дата
|
|
15
|
Вернуть тип прошивки
|
Целое число
|
0- стандартная прошивка
1- отладочный комплект
|
16
|
Вернуть размер бумаги текущего дизайна
|
Целое число
|
0- 80мм
1- 57мм
|
17
|
Вернуть дату и время открытия смены
|
Дата, Время
|
|
21
|
Вернуть модель устройства
|
Целое число
|
|
23
|
Вернуть режим работы и систему налогообложения ФН
|
Целое число
Целое число
|
Система налогообложения
Режим работы
|
3.2.4 Запрос данных по чеку (0x03)
Функция: MData libGetReceiptData(unsigned char numRequest);
Эта команда позволяет получать данные по чеку. Тип и количество возвращаемых данных зависит от значения передаваемого параметра – номер запроса.
Входные параметры: numRequest (Целое число 1..2) Номер запроса.
Ответные параметры: (Структура MData) Ответ от ФР, который содержит: (Целое число) Номер запроса, Возвращаемые данные.
Тип и количество возвращаемых данных зависит от значения номера запроса.
Номер
запроса
(DEC)
|
Наименование
запроса
|
Формат возвращаемых данных
|
Комментарии
|
1
|
Вернуть счетчики текущего документа
|
Дробное число*3
|
Возвращается 3 значения - сумма чека, сумма скидки по чеку, сумма наценки по чеку
|
2
|
Вернуть данные по последнему закрытому чеку
|
Целое число,
Строка,
Целое число,
Целое число,
Дробное число,
Дробное число,
Дробное число,
Строка
|
Возвращается 8 значений –
тип чека (для аннулиров. = 0),
текущий операц. счетчик,
номер чека,
номер документа,
сумма чека,
сумма скидки по чеку,
сумма наценки по чеку,
строка КПК
|
3.2.5 Запрос состояния печатающего устройства (ПУ) (0x04)
Функция: MData libGetPrinterStatus();
Эта команда позволяет получить текущее состояние печатающего устройства.
Входные параметры: нет
Ответные параметры: (Структура MData) Ответ от ФР, который содержит: (Целое число) Статус ПУ.
Статус ПУ.
Номер бита
|
Пояснения
|
0
|
Принтер не готов
|
1
|
В принтере нет бумаги
|
2
|
Открыта крышка принтера
|
3
|
Ошибка резчика принтера
|
7
|
Нет связи с принтером
|
3.2.6 Запрос сервисной информации (0x05)
Функция: MData libGetServiceInfo(unsigned char numRequest);
Эта команда позволяет получать разнообразную сервисную информацию о ККТ.
Входные параметры: numRequest (Целое число 1..9) номер запроса.
Ответные параметры: (Структура MData) Ответ от ФР, который содержит: (Целое число) Номер запроса, Возвращаемые данные.
Тип и количество возвращаемых данных зависит от значения номера запроса.
Номер
запроса
(DEC)
|
Наименование
Запроса
|
Формат возвращаемых данных
|
Комментарии
|
1
|
Вернуть напряжение питания (мВ)
|
Целое число
|
Возвращается значение в милливольтах
|
2
|
Вернуть температуру термоголовки
|
Целое число
|
Возвращается значение в градусах
|
3
|
Вернуть количество отрезов резчика
|
Целое число
|
|
4
|
Вернуть ресурс термоголовки
|
Целое число
|
Возвращается значение в мм
|
5
|
Обнулить количество отрезов резчика
|
-
|
|
6
|
Обнулить ресурс термоголовки
|
-
|
|
7
|
Вернуть напряжение на батарейке (мВ)
|
Целое число
|
Возвращается значение в милливольтах
|
8
|
Вернуть количество отрезов резчика (необнуляемое)
|
|
|
9
|
Вернуть ресурс термоголовки (необнуляемый)
|
Целое число
|
Возвращается значение в мм
|
3.2.7 Запрос дополнительной информации о ошибках (0x06)
Функция: MData libGetExErrorInfo(unsigned char numRequest);
Эта команда позволяет получать данные по чеку. Тип и количество возвращаемых данных зависит от значения передаваемого параметра – номер запроса.
Входные параметры: (Целое число 1..2) Номер запроса.
Ответные параметры: (Структура MData) Ответ от ФР, который содержит: (Целое число) Номер запроса, Возвращаемые данные.
Тип и количество возвращаемых данных зависит от значения номера запроса.
Номер
запроса
(DEC)
|
Наименование
запроса
|
Формат возвращаемых данных
|
Комментарии
|
1
|
Вернуть расширенный код ошибки (01h)
|
Целое число
|
Возвращается код, указывающий на причину возникновения ошибки (01h) “Функция невыполнима при данном статусе ККТ”
|
2
|
Вернуть статус блокировок по ФН
|
Целое число
|
Возвращается битовая маска, значения бит указаны в соответствующей таблице
|
Расширенный код ошибки (01h)
Номер
кода
|
Пояснения
|
0
|
Ошибок не было.
|
1
|
Не была вызвана функция “Начало работы”
|
2
|
Нефискальный режим
|
3
|
Архив ФН закрыт
|
4
|
ФН не зарегистрирован
|
5
|
ФН уже зарегистрирован
|
7
|
Нет изменений для перерегистрации ФН
|
8
|
Документ не был открыт
|
9
|
Предыдущий документ не закрыт
|
10
|
Сторнирование на копии документа
|
11
|
Состояние документа не равно 1 (см. Состояние документа)
|
12
|
Состояние документа не равно 1 или 2 (см. Состояние документа)
|
13
|
Состояние документа не равно 1 или 2 или 3 (см. Состояние документа)
|
14
|
Состояние документа не равно 4 (см. Состояние документа)
|
15
|
Документ закрыт в ФН
|
16
|
Документ не является продажей (приходом) или возвратом (возвратом прихода)
|
17
|
Документ не является внесением или изъятием
|
18
|
Документ не является сервисным
|
19
|
Документ является сервисным
|
20
|
Смена не открыта
|
21
|
Фатальная ошибка ФН
|
22
|
ФН не в режиме получения документа для ОФД
|
Статус блокировок по ФН
Номер
бита
|
Пояснения
|
0
|
Зарезервировано
|
1
|
ФН не найден
|
2
|
Не был закрыт архив ФН
|
3
|
Ошибка теста архива ФН
|
4
|
Ошибка связи с ФН
|
5
|
Не завершена операция закрытия смены
|
6
|
Зарезервировано
|
|