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

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

Нативное приложение под Android для работы с ККМ ШТРИХ-MOBILE-Ф (ШТРИХ-MOBILE-ПТК) из мобильного приложения на базе платформы 1С

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

  • минимальная версия мобильной платформы - 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").Значение;
    Если ТипЗнч(Ответ) = Тип("Строка") И ЗначениеЗаполнено(Ответ) Тогда
        СостояниеККМ = Ответ;
    КонецЕсли;
    #КонецЕсли

 

Удачи вам! Подписывайтесь на канал Youtube, ставьте лайк под видео.

Я в социальных сетях:

Мой канал в Telegram:
Все для 1С, курс по мобильной разработке 1С, краткие уроки по оптимизации, интеграции и конвертации данных. И небольшие заметки "Как это делалось".


Скачивать материалы могут только зарегестрированные пользователи

Комментарии 0 комментариев

Оставьте комментарий

Оставлять комментарии могут только зарегестрированные пользователи