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 Инкассация
|
Состояние документа
|
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 значений – по максимально возможному количеству типов платежей.
|
4
|
Вернуть количество оплат по продажам
|
Целое число*16
|
5
|
Вернуть суммы возвратов по типам платежа
|
Дробное число*16
|
6
|
Вернуть количество оплат по возвратам
|
Целое число*16
|
7
|
Вернуть количество оформленных чеков по типам операций
|
Целое число*6
|
Возвращается 6 значений – количество чеков продажи, возврата, аннулированных, отложенных, чеков внесения и изъятия.
|
8
|
Вернуть суммы по оформленным чекам
|
Дробное число*4
|
Возвращается 4 значения – суммы по аннулированным и отложенным чекам, чекам внесения и изъятия.
|
9
|
Вернуть суммы по скидкам/ наценкам
|
Дробное число*4
|
Возвращается 4 значения – суммы скидок по продажам, наценок по продажам, скидок по возвратам, наценок по возвратам.
|
10
|
Вернуть суммы налогов по продажам
|
Дробное число*6
|
|
11
|
Вернуть суммы налогов по возвратам
|
Дробное число*6
|
|
12
|
Вернуть данные по последнему X или Z отчету
|
Строка,
Целое число,
Дробное число,
Целое число,
Дробное число,
Целое число,
Дробное число,
Целое число,
Дробное число,
Целое число,
Дробное число,
Целое число,
Дробное число,
|
Возвращается 13 значений –
текущий операционный счетчик,
номер документа,
сумма в кассе,
кол-во продаж,
сумма продаж,
количество возвратов,
сумма возвратов,
количество аннулированных,
сумма аннулированных,
количество внесений,
сумма внесений,
количество изъятий,
сумма изъятий.
|
13
|
Вернуть суммы по секциям/отделам по продажам
|
Дробное число*16
|
Возвращается 16 значений – по максимально возможному количеству секций/отделов.
|
14
|
Вернуть суммы по секциям/отделам по возвратам
|
Дробное число*16
|
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
|
Вернуть нарастающий итог
|
Дробное число
|
|
13
|
Вернуть количество свободных смен в ФП
|
Целое число
|
|
14
|
Вернуть дату окончания временного ресурса ЭКЛЗ
|
Дата
|
|
15
|
Вернуть тип прошивки
|
Целое число
|
0- стандартная прошивка
1- отладочный комплект
|
16
|
Вернуть размер бумаги текущего дизайна
|
Целое число
|
0- 80мм
1- 57мм
|
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
|
Ошибок “(01h) Функция невыполнима при данном статусе ККТ” не было.
|
1
|
Не была вызвана функция “Начало работы”
|
2
|
Нефискальный режим
|
3
|
Архив ЭКЛЗ закрыт
|
4
|
ЭКЛЗ не активирована
|
5
|
ЭКЛЗ активирована
|
6
|
Нет памяти для закрытия смены в ФП
|
7
|
Был введен неверный пароль доступа к ФП
|
8
|
Документ не был открыт
|
9
|
Предыдущий документ не закрыт
|
10
|
Сторнирование на копии документа
|
11
|
Состояние документа не равно 1 (см. Состояние документа)
|
12
|
Состояние документа не равно 1 или 2 (см. Состояние документа)
|
13
|
Состояние документа не равно 1 или 2 или 3 (см. Состояние документа)
|
14
|
Состояние документа не равно 4 (см. Состояние документа)
|
15
|
Документ закрыт в ЭКЛЗ
|
16
|
Документ не является продажей или возвратом
|
17
|
Документ не является внесением или изъятием
|
18
|
Документ не является сервисным
|
19
|
Документ является сервисным
|
20
|
Установлена ЭКЛЗ, активированная в составе другой ККТ
|
21
|
Фатальная ошибка ЭКЛЗ
|
Статус блокировок по ЭКЛЗ
Номер
бита
|
Пояснения
|
0
|
Установлена ЭКЛЗ, активированная в составе другой ККТ
|
1
|
ЭКЛЗ не найдена
|
2
|
Не был закрыт архив ЭКЛЗ
|
3
|
Ошибка теста архива ЭКЛЗ
|
4
|
Ошибка связи с ЭКЛЗ
|
5
|
Не завершена операция закрытия смены
|
6
|
Расхождение номеров смен ЭКЛЗ и ФП
|
|