МТС: +7 (917) 449-09-97 Уфа: +7 (347) 25-88-290

ШТРИХ MOBILE ПТК работа в мобильном приложении 1С

Нативное приложение позволяет вести работу с ККМ ШТРИХ MOBILE ПТК из мобильного приложения 1С.

Для работы c ШТРИХ MOBILE ПТК необходимо:

  • минимальная версия мобильной платформы — 8.3.10.51
  • минимальная версия Android на устройстве — 4.0.3.

Код демо конфигурации открыт. Код нативного приложения закрыт и предоставляется в виде собранного APK файла.

Работа только в мобильном приложении. Бесплатная техподдержка в течении месяца.
Обновления бесплатны в течение года. Доработка по договоренности.

В данный момент реализован функционал:

  1. Получение адреса ККМ подключенной по bluetooth
  2. Открытия смены
  3. Печать чеков
  4. Закрытие смены с гашением
  5. Получить текущее состояние ККМ
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").Значение;
Если ТипЗнч(Ответ) = Тип("Строка") И ЗначениеЗаполнено(Ответ) Тогда
СостояниеККМ = Ответ;
КонецЕсли;
#КонецЕсли

Добавить комментарий

Закрыть меню
×
×

Корзина