Нативное приложение позволяет вести работу с ККМ ШТРИХ MOBILE ПТК из мобильного приложения 1С.
Для работы c ШТРИХ MOBILE ПТК необходимо:
- минимальная версия мобильной платформы — 8.3.10.51
- минимальная версия Android на устройстве — 4.0.3.
Код демо конфигурации открыт. Код нативного приложения закрыт и предоставляется в виде собранного APK файла.
Работа только в мобильном приложении. Бесплатная техподдержка в течении месяца.
Обновления бесплатны в течение года. Доработка по договоренности.
В данный момент реализован функционал:
- Получение адреса ККМ подключенной по bluetooth
- Открытия смены
- Печать чеков
- Закрытие смены с гашением
- Получить текущее состояние ККМ
#Если МобильноеПриложениеКлиент Тогда
НовВз = Новый ЗапускПриложенияМобильногоУстройства;
НовВз.Действие = "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").Значение;
Если ТипЗнч(Ответ) = Тип("Строка") И ЗначениеЗаполнено(Ответ) Тогда
СостояниеККМ = Ответ;
КонецЕсли;
#КонецЕсли