Для работы c ШТРИХ MOBILE ПТК необходимо:
- минимальная версия мобильной платформы - 8.3.10.51
- минимальная версия Android на устройстве - 4.0.3.
Код демо конфигурации открыт. Код нативного приложения закрыт и предоставляется в виде собранного APK файла.
Работа только в мобильном приложении. Бесплатная техподдержка в течении месяца.
Обновления бесплатны в течение года. Доработка по договоренности.
В данный момент реализован функционал:
- Получение адреса ККМ подключенной по bluetooth
- Открытия смены
- Печать чеков
- Закрытие смены с гашением
- Получить текущее состояние ККМ
1. Получение адреса ККМ подключенной по bluetooth
Передаем команду «getArrayAdapter».
В ответ получаем массив наименований и mac адресов сопряженных bluetooth устройств, среди которых должна быть KKM.
#Если МобильноеПриложениеКлиент Тогда НовВз = Новый ЗапускПриложенияМобильногоУстройства; НовВз.Действие = "ru.niko1c.kkm.action.RUN"; НовВз.ДополнительныеДанные.Добавить("command", "getArrayAdapter"); НовВз.Запустить(Истина); Ответ = НовВз.ДополнительныеДанные.Получить("response").Значение; Если ТипЗнч(Ответ) = Тип("Массив") Тогда Для каждого Строка Из Ответ Цикл СтрАдрес = Прав(Строка, СтрДлина(Строка) - СтрНайти(Строка, "||")-2); СтрККМ = Лев(Строка, СтрНайти(Строка, "||")-2); НовСтрока = Устройства.Добавить(); НовСтрока.ККМ = СтрККМ; НовСтрока.Адрес = СтрАдрес; КонецЦикла; КонецЕсли; #КонецЕсли
2. Открытия смены
Передаем команду "openFSDay" и обязательный параметр:
- "kkmAdress" - mac адрес ККМ в виде строки.
В ответ получаем ответ с текущим состоянием ККМ.
#Если МобильноеПриложениеКлиент Тогда НовВз = Новый ЗапускПриложенияМобильногоУстройства; НовВз.Действие = "ru.niko1c.kkm.action.RUN"; НовВз.ДополнительныеДанные.Добавить("command", "openFSDay"); НовВз.ДополнительныеДанные.Добавить("kkmAdress", ПолучитьАдресККМ()); НовВз.Запустить(Истина); Попытка Ответ = НовВз.ДополнительныеДанные.Получить("response").Значение; Если ТипЗнч(Ответ) = Тип("Строка") И ЗначениеЗаполнено(Ответ) Тогда СостояниеККМ = Ответ; КонецЕсли; Исключение КонецПопытки; #КонецЕсли
3. Печать чеков
Передаем команду "printCheck" и дополнительные параметры:
- "kkmAdress" - mac адрес ККМ в виде строки
- "title" - заголовок в чеке
- "data1c" - данные в формате JSON, формируются функцией ПолучитьДанныеВJSON() в определенном формате. Передавать данные требуется строго в виде такой структуры.
ДанныеВJSON = ПолучитьДанныеВJSON(); #Если МобильноеПриложениеКлиент Тогда НовВз = Новый ЗапускПриложенияМобильногоУстройства; НовВз.Действие = "ru.niko1c.kkm.action.RUN"; НовВз.ДополнительныеДанные.Добавить("command", "printCheck"); НовВз.ДополнительныеДанные.Добавить("kkmAdress", ПолучитьАдресККМ()); НовВз.ДополнительныеДанные.Добавить("title", ПроизвольныйТекст); НовВз.ДополнительныеДанные.Добавить("data1c", ДанныеВJSON); НовВз.Запустить(Истина); #КонецЕсли &НаСервере Функция ПолучитьДанныеВJSON() ЗаписьJSON = Новый ЗаписьJSON; ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет); ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON); МассивДанных = Новый Массив; Для каждого Строка Из Товары Цикл ДанныеСтроки = Новый Структура(); ДанныеСтроки.Вставить("name", Строка.Товар); ДанныеСтроки.Вставить("price", Строка.Цена); МассивДанных.Добавить(ДанныеСтроки); КонецЦикла; тДанные = Новый Структура; тДанные.Вставить("arrName", МассивДанных); ЗаписатьJSON(ЗаписьJSON, тДанные); СтрокаJSON = ЗаписьJSON.Закрыть(); Возврат СтрокаJSON; КонецФункции
4. Закрытие смены с гашением
Передаем команду "closeFSDay" и обязательный параметр:
- "kkmAdress" - mac адрес ККМ в виде строки.
В ответ получаем ответ с текущим состоянием ККМ.
#Если МобильноеПриложениеКлиент Тогда НовВз = Новый ЗапускПриложенияМобильногоУстройства; НовВз.Действие = "ru.niko1c.kkm.action.RUN"; НовВз.ДополнительныеДанные.Добавить("command", "closeFSDay"); НовВз.ДополнительныеДанные.Добавить("kkmAdress", ПолучитьАдресККМ()); НовВз.Запустить(Истина); Попытка Ответ = НовВз.ДополнительныеДанные.Получить("response").Значение; Если ТипЗнч(Ответ) = Тип("Строка") И ЗначениеЗаполнено(Ответ) Тогда СостояниеККМ = Ответ; КонецЕсли; Исключение КонецПопытки; #КонецЕсли
5. Получить текущее состояние ККМ.
Передаем команду "getKkmStatus" и обязательный параметр:
- "kkmAdress" - mac адрес ККМ в виде строки.
В ответ получаем ответ с текущим состоянием ККМ.
#Если МобильноеПриложениеКлиент Тогда НовВз = Новый ЗапускПриложенияМобильногоУстройства; НовВз.Действие = "ru.niko1c.kkm.action.RUN"; НовВз.ДополнительныеДанные.Добавить("command", "getKkmStatus"); НовВз.ДополнительныеДанные.Добавить("kkmAdress", ПолучитьАдресККМ()); НовВз.Запустить(Истина); Ответ = НовВз.ДополнительныеДанные.Получить("response").Значение; Если ТипЗнч(Ответ) = Тип("Строка") И ЗначениеЗаполнено(Ответ) Тогда СостояниеККМ = Ответ; КонецЕсли; #КонецЕсли