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

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",ТекстСообшения);
        возврат Данные;
    КонецЕсли;    
КонецФункции

 

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

См. также.

SALE! 25%

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

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

13200 9900 руб.

27.12.2021    35120    90    161    

186

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

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

2880 руб.

03.12.2018    56460    174    103    

167

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 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. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    93560    538    186    

305

Мобильная разработка WEB-интеграция Программист Мобильная платформа Абонемент ($m)

В SimpleWEB добавились средства для работы с графикой и отслеживание событий мыши, в онлайн редактор https://seditor.ru:1555/ добавился «Векторный редактор» на этом API. Теперь можно нарисовать схемы складов на ПК, сделать карты (*.sug-файлы) для мобильной платформы SimpleUI, выводить данные из 1С в графическом виде. Таким образом, API для работы с векторными файлами теперь есть и в веб- и в мобильной платформе, а также средства для создания и редактирования векторных файлов есть тоже в обеих платформах.

1 стартмани

20.03.2024    1874    1    informa1555    1    

44

Мобильная разработка Языки и среды Программист Бесплатно (free)

Flutter может быть использован с 1С:Предприятием для разработки кроссплатформенных мобильных приложений, обеспечивая единый интерфейс и функциональность на устройствах под управлением iOS и Android. Это позволяет создавать приложения с высокой производительностью благодаря использованию собственного движка рендеринга Flutter. Интеграция Flutter с 1С:Предприятием позволяет создавать мобильные приложения любого уровня сложности, интегрировать их в корпоративные информационные системы, а также реализовывать бизнес-логику

19.03.2024    11934    ROk_dev    67    

44

Мобильная разработка Программист Бесплатно (free)

В SimpleUI и SimpleWEB, наряду с обработчиками на python и онлайн (1С и т.д.) добавляется интерпретатор JavaScript. В андроид платформе он скорее играет на поле python, т.к. является оффлайновым решением для самостоятельной обработки и расширяет аудиторию разработчиков для разработки самостоятельных решений. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

12.02.2024    1846    informa1555    0    

25

Мобильная разработка Программист Бесплатно (free)

Я сделал альтернативный способ рисования экранов и списков в виде стандартной xml-разметки (стандартных xml-файлов для Android). Теперь можно рисовать в Android Studio или Figma в визуальном редакторе, прицеплять в симпле и работать дальше как обычно.

27.11.2023    1646    informa1555    1    

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