Трассировщик маршрута мобильного приложения

04.06.24

Разработка - Мобильная разработка

Поиск причины ошибки с мобильного клиента.

Работая с мобильным клиентом, и в частности передавая данные с сервера на ТСД и обратно, часто сталкивался с нарушением (ошибкой) передачи данных. В процессе поиска ошибки в некоторых случаях выяснялось, что ошибка возникает из-за нестабильной сетевой структуры. Возникали ошибки на WI-FI антеннах (WI-FI контур покрытия склада), которые нужно было перезагружать админам. Также ошибки самой сети (отвалился провод, потеря пакетов). А также ошибки на промежуточном оборудовании и серверах.

В связи с чем, для быстрого понимания где возникает ошибка (в коде или сети) был написан "трассировщик" маршрута. Суть данной разработки, это пройти весь путь от клиента/ТСД (места старта), включая внешние базы, и вернуться обратно без ошибок.

На просторах интернета есть функционал ("Использование MS SQL Profiler и 1С" или описанный в статье на //infostart.ru/1c/articles/19127/). Они проводят анализ используя технологический журнал или данные SQL. Это все необходимо "разворачивать", да и полного анализа они все равно не смогут предоставить.

Первое, что необходимо, это на стороне внешней/публикуемой базы прописать функцию HTTP-сервиса для установки факта получения сигнала/данных. Мы используем текстовое сообщение (ТекстСообщения). В эту переменную мы прописывает:
            1) В какой базе мы находимся.
            2) Где мы находимся (на сервере или на клиенте)
            3) На каком компьютере (функция ИмяКомпьютера())
            4) Точное время, когда мы сюда пришли (функция Формат(ТекущаяДата(), "ДЛФ=T"))

"Точное время, когда мы сюда пришли" берется с компьютера, на котором мы сейчас находимся (в данном случае на сервере 1С) и берется время именно этого компьютера.
 

//Функция HTTP-сервиса внешней/публикуемой базы
&НаСервере
Функция ЗамерВремениОтправкиИ_ПередачиДанных(Запрос)
    ТекстСообщения = "";
    
    ИнформационнаяБаза = "УТ";
    ТекстСообщения = ТекстСообщения+ИнформационнаяБаза+"_НаСервере - перешли на сервер "+ИнформационнаяБаза+" :"Символы.ПС+
    "Имя компьютера:"+ИмяКомпьютера()+Символы.ПС+
    Формат(ТекущаяДата(), "ДЛФ=T");
    
    Результат = ТекстСообщения;
    
    HTTPОтветСтруктура = Новый Структура("RequestJSON, ErrorText", Результат, "");
    Возврат Ответ(HTTPОтветСтруктура,Ложь);
КонецФункции

&НаСервере
Функция Ответ(Данные, Ошибка = Ложь)    
    Если Ошибка = Истина Тогда
        Ответ = Новый HTTPСервисОтвет(500);
    Иначе
        Ответ = Новый HTTPСервисОтвет(200);
    КонецЕсли;
    
    Ответ.Заголовки.Вставить("Accept-Charset", "utf-8");
    Ответ.Заголовки.Вставить("Content-Type", "application/json;charset=utf-8");
    Ответ.Заголовки["Cache-Control"] = "no-cache";
    
    Ответ.УстановитьТелоИзСтроки(ДанныеJSON(Данные));
    
    Возврат Ответ;
КонецФункции

&НаСервере
Функция ДанныеJSON(Данные)    

    ЗаписьJSON = Новый ЗаписьJSON;
    ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто," ",Истина,,Истина,Истина,Истина,Истина,Истина);
    ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
    ЗаписатьJSON(ЗаписьJSON, Данные);
    
    Возврат ЗаписьJSON.Закрыть();
КонецФункции


Второе, это в мобильном приложении создаем команду для запуска самого парсинга (ТСД - место старта). Таким образом запуск "Трассировщика" произойдет на стороне мобильного приложения "НаКлиенте". В текстовое сообщение мы прописываем все пройденные этапы. А самое главное - фиксируем время их прохождения.

 

//Процедуры мобильного приложения (ТСД - место старта)
&НаКлиенте
Процедура ЗамерВремениОтправкиИ_ПередачиДанных_НаКлиенте(Команда)
    ТекстСообщения = "Имя ТСД: "+ИмяКомпьютера();
    
    ТекстСообщения = ТекстСообщения+Символы.ПС+
    "ТСД_НаКлиенте - нажата кнопка:"+Символы.ПС+
    Формат(ТекущаяДата(), "ДЛФ=T");
    
    ЗамерВремениОтправкиИ_ПередачиДанныхНаСервере(ТекстСообщения);
    
    ТекстСообщения = ТекстСообщения+Символы.ПС+
    "ТСД_НаКлиенте - выведено сообщение:"+Символы.ПС+
    Формат(ТекущаяДата(), "ДЛФ=T");
    
    Сообщить(ТекстСообщения);
КонецПроцедуры

Саму процедуру передачи текстового сообщения (где так же фексируются все пройденные этапы и их время) создаем на сервере.

//Процедуры мобильного приложения (ТСД - место передачи данных во внешние системы/базы)
&НаСервере
Процедура ЗамерВремениОтправкиИ_ПередачиДанныхНаСервере(ТекстСообщения)
    ТекстСообщения = ТекстСообщения+Символы.ПС+
    "ТСД_НаСервере - перешли на сервер ТСД:"+Символы.ПС+
    "Имя компьютера:"+ИмяКомпьютера()+Символы.ПС+
    Формат(ТекущаяДата(), "ДЛФ=T");
    
    ЗамерВремениОтправкиИ_ПередачиДанных(ТекстСообщения);
КонецПроцедуры

Передача текстового сообщения осуществляется через HTTP запрос методом GET, через параметр "MeasuringTheTimeOfSendingAndTransferringData".

&НаСервере
Функция ЗамерВремениОтправкиИ_ПередачиДанных(ТекстСообщения) Экспорт
    Попытка
        ТекстСообщения = ТекстСообщения+Символы.ПС+
        "ТСД_НаСервере - отправили данные с ТСД:"+Символы.ПС+
        Формат(ТекущаяДата(), "ДЛФ=T");
        
        Путь = "hs/TSD/MeasuringTheTimeOfSendingAndTransferringData";
        Ответ = Запрос_HTTP_GET(Путь);
        Если Ответ["ErrorText"] <> "" Тогда
            ТекстСообщения = ТекстСообщения+Символы.ПС+
            "ТСД_НаСервере - получили ответ от УТ:"+Символы.ПС+
            Формат(ТекущаяДата(), "ДЛФ=T");

            ТекстСообщения = ТекстСообщения+Символы.ПС+
            ("Ошибка отправки данных из ТСД. КодСостояния = "+Ответ.КодСостояния+Символы.ПС+
            Ответ.ПолучитьТелоКакСтроку());

            Возврат ТекстСообщения;
        КонецЕсли;
        
        Данные = Ответ["RequestJSON"];
        ТекстСообщения = ТекстСообщения+Символы.ПС+
        Данные;

        ТекстСообщения = ТекстСообщения+Символы.ПС+
        "ТСД_НаСервере - получили ответ от УТ:"+Символы.ПС+
        Формат(ТекущаяДата(), "ДЛФ=T");

    Исключение
        ТекстСообщения = ТекстСообщения+Символы.ПС+
        "Произошла ошибка при отправке данных из ТСД:"+Символы.ПС+
        Формат(ТекущаяДата(), "ДЛФ=T");

        ТекстСообщения = ТекстСообщения+Символы.ПС+ОписаниеОшибки();
    КонецПопытки;
    
    Возврат ТекстСообщения;
КонецФункции



//Константы:
//Сайт - указан сайт/домен подключения
//ВнешняяБаза - указана база подключения
&НаСервере
Функция Запрос_HTTP_GET(Путь) Экспорт    
    Сайт = Константы.Сайт.Получить();//Имя сервера внешней базы (например: Сервер_1С-1)
    ВнешняяБаза = Константы.ВнешняяБаза.Получить();// Имя внешней базы (например: УТ)  
    ПолныйПуть = СубДоменБазы + Путь;
    
    ФайлРезультата = ПолучитьИмяВременногоФайла();
    Соед = Новый HTTPСоединение(Сайт,,,,,1800);
    
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
    
    Ответ = Соед.Получить(Новый HTTPЗапрос(ПолныйПуть),ФайлРезультата);
    
    Если Ответ.КодСостояния = 200 Тогда    
        Текст = Новый ЧтениеТекста(ФайлРезультата, КодировкаТекста.UTF8);
        СодRaw = Текст.Прочитать();
        Чтение = Новый ЧтениеJSON();
        Чтение.УстановитьСтроку(СодRaw);
        Данные = ПрочитатьJSON(Чтение,Истина);

        возврат Данные;
    Иначе
        Данные = Новый Структура();
        ТекстСообшения = "Произошла ошибка. Код состояния: "+Ответ.КодСостояния;
        Данные.Вставить("ErrorText",ТекстСообшения);
        возврат Данные;
    КонецЕсли;    
КонецФункции

 

Вступайте в нашу телеграмм-группу Инфостарт

Мобильный МобильныйКлиент ТСД Трассировка Трассировщик ПередачаДанных ПоискОшибок

См. также

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3000 руб.

03.12.2018    64100    218    105    

183

Логистика, склад и ТМЦ Мобильная разработка Программист Руководитель проекта 1С v8.3 1С:Управление торговлей 11 Управленческий учет Платные (руб)

«Склад 15 ПРОДУКТОВЫЙ» - специализированное программное обеспечение для терминалов сбора данных со встроенным сканером штрихкода, объединяет в себе несколько товарных групп маркированного товара (АЛКОГОЛЬ, ПИВО, ТАБАК, ШИНЫ, ОБУВЬ, ОДЕЖДА, ПАРФЮМ, МОЛОКО, ВОДА), которые чаще всего встречаются в складской логистике вместе. Предназначено для автоматизации всех товароучетных операций на складах, обычных и адресного хранения различной сложности. Позволяет ускорить и упростить действия линейного персонала, а также снизить вероятность ошибок при работе, обусловленных человеческим фактором.

48000 руб.

30.05.2023    4583    2    0    

1

Мобильная разработка Мессенджеры и боты 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 руб.

27.12.2021    45245    124    172    

219

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

3000 руб.

22.04.2019    107077    650    198    

349

Логистика, склад и ТМЦ Мобильная разработка 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Специализированное программное обеспечение для мобильных устройств со встроенным сканером штрихкодов. Позволяет быстро автоматизировать, оптимизировать рабочие места и бизнес процессы по учету товара в магазине. Например, приемку товара по штрихкодам или инвентаризацию прямо в торговом зале.

18500 руб.

30.05.2023    4577    3    0    

5

Логистика, склад и ТМЦ Сканер штрих-кода Терминал сбора данных Мобильная разработка 1С v8.3 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Вашему вниманию предлагается специализированное программное обеспечение для терминалов сбора данных со встроенным сканером штрихкода. Предназначено для цифровизации всех товароучетных операций на любых складах, в том числе с адресным хранением различной сложности. Позволяет ускорить и упростить работу кладовщиков, а также снизить вероятность ошибок при работе, обусловленных человеческим фактором.

19000 руб.

28.04.2023    11548    18    4    

11

Мобильная разработка 1С v8.3 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

"МРМ:Маркировка" для работы с конфигурациями 1С - готовое решение, позволяющее быстро автоматизировать работу учетной системы 1С на ордерном и безордерном складе при работе как с товарами, подлежащими обязательной маркировке, так и с товарами, учет которых построен на базе линейных штрих-кодов. Решение поддерживает большинство распространенных складских документов, необходимых для работы кладовщику на терминале сбора данных. Для начинающих пользователей имеется подробная инструкция по работе с приложением в разрезе видов документов.

15000 руб.

24.06.2025    751    1    0    

2
Оставьте свое сообщение