|
Отладка кода мобильного клиента. | ☑ | ||
|---|---|---|---|---|
|
0
lirt82
19.08.26
✎
07:51
|
Всем привет, в базе 1с Розница есть самописная обработка для мобильного клиента на смартфоне/планшете, пользователь на смартфоне/планшете заходит в базу 1С, далее открывается эта самописная обработка на ней есть кнопки с процедурами, не могу отладчиком дойти до нажатия кнопки чтобы проверить код в процедуре, как можно отладить мобильный клиент?
и второй момент если перенести код во внешнюю обработку то он отрабатывает а этот же код в модуле встроенной обработки возвращает Неопределено. &НаКлиенте Процедура ЗаполнитьИзQR(Команда) //сюда уже не могу попасть ОписаниеОповещения = Новый ОписаниеОповещения("ПослеОтветаНаВопрос", ЭтотОбъект); Режим = РежимДиалогаВопрос.ДаНет; ПоказатьВопрос(ОписаниеОповещения, "Отсканировать QR для онлайн меню?", Режим); КонецПроцедуры &НаКлиенте Процедура ПослеОтветаНаВопрос(Результат, Параметры) Экспорт Если Результат = КодВозвратаДиалога.Да Тогда ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации( НСтр("ru = 'Мобильный официант сканер онлайн меню'"), "Информация", "Начало сканирования:",,Истина); #Если МобильныйКлиент Тогда Если СредстваМультимедиа.ПоддерживаетсяСканированиеШтрихКодов() Тогда ОповещенияСканирования = Новый ОписаниеОповещения("ОбработкаОтсканированногоШтрихКода", ЭтаФорма); ОповещениеЗакрытия = Новый ОписаниеОповещения("ОбработкаЗавершенияСканера", ЭтаФорма); СредстваМультимедиа.ПоказатьСканированиеШтрихКодов("Scan Code", ОповещенияСканирования, ОповещениеЗакрытия, ТипШтрихКода.Все); Иначе Сообщить("Не поддерживается сканер штрихкодов"); КонецЕсли; #КонецЕсли КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ОбработкаОтсканированногоШтрихКода(Штрихкод, Результат, Сообщение, ДополнительныеПараметры) Экспорт ОчиститьСообщения(); Если Результат И ЗначениеЗаполнено(Штрихкод) Тогда Если Лев(Штрихкод, 5) <> "30077" Тогда #Если МобильныйКлиент Тогда СредстваМультимедиа.ЗакрытьСканированиеШтрихКодов(); #КонецЕсли рестОбщегоНазначенияКлиент.ВывестиИнформациюДляФронтОфиса("Неверный QR код заказа","Не известный QR заказа из онлайн меню! " + Штрихкод); ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации( НСтр("ru = 'Мобильный официант сканер онлайн меню'"), "Ошибка", "Неверный QR код заказа: " + Штрихкод,,Истина); Штрихкод = ""; Возврат; КонецЕсли; ДобавитьТоварыИзОнлайнМеню(Штрихкод); Иначе рестОбщегоНазначенияКлиент.ВывестиИнформациюДляФронтОфиса("Не удалось отсканировать QR онлайн меню", ОписаниеОшибки() + " " + Сообщение); ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации( НСтр("ru = 'Мобильный официант сканер онлайн меню'"), "Ошибка", "не удалось отсканировать QR онлайн меню: " + Штрихкод + ". " + Объект.Ссылка,,Истина); КонецЕсли; #Если МобильныйКлиент Тогда СредстваМультимедиа.ЗакрытьСканированиеШтрихКодов(); #КонецЕсли КонецПроцедуры &НаСервере Процедура ДобавитьТоварыИзОнлайнМеню(Штрихкод) //вот сюда отладчик не заходит СтруктураСервера = Новый Структура; СтруктураСервера.Вставить("Сервер", "menu.ххххххххххххххх"); СтруктураСервера.Вставить("Порт", 443); СтруктураСервера.Вставить("Ресурс", "/api/offline-order-scan?number=" + Штрихкод); СтруктураСервера.Вставить("SSL", Истина); СтруктураСервера.Вставить("Метод", "GET"); СтруктураСервера.Вставить("Токен", "ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ"); СтрОтвета = Синхронизация.ОтправитьЗапросНаСервер_ВызватьМетод(СтруктураСервера); Если Не СтрОтвета.Успех Тогда Возврат; КонецЕсли; МассивТоваров = Синхронизация.ПолучитьСтруктуруИзJSON(СтрОтвета.ТекстОтвета); вот код из внешней обработки отрабатывает &НаСервере Процедура Команда7НаСервере() Штрихкод = "3007720260818111358898627"; СтруктураСервера = Новый Структура; СтруктураСервера.Вставить("Сервер", "menu.ххххххххххххххххххххххх"); СтруктураСервера.Вставить("Порт", 443); СтруктураСервера.Вставить("Ресурс", "/api/offline-order-scan?number=" + Штрихкод); СтруктураСервера.Вставить("SSL", Истина); СтруктураСервера.Вставить("Метод", "GET"); СтруктураСервера.Вставить("Токен", "ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ"); СтрОтвета = Синхронизация.ОтправитьЗапросНаСервер_ВызватьМетод(СтруктураСервера); Если Не СтрОтвета.Успех Тогда Возврат; КонецЕсли; сама серверная процедура &НаСервере Функция ОтправитьЗапросНаСервер_ВызватьМетод(СтрСервера) Экспорт СтруктураОтвета = Новый Структура("Успех, ТекстОтвета"); ssl1 = Новый ЗащищенноеСоединениеOpenSSL(); Логин = ?(СтрСервера.свойство("Логин"), СтрСервера.Логин, ""); Пароль = ?(СтрСервера.свойство("Пароль"), СтрСервера.Пароль, ""); Попытка Если СтрСервера.SSL Тогда Соединение = Новый HTTPСоединение(СтрСервера.Сервер,,Логин,Пароль,,,ssl1); Иначе Соединение = Новый HTTPСоединение(СтрСервера.Сервер); КонецЕсли; Исключение СтруктураОтвета.Успех = Ложь; СтруктураОтвета.ТекстОтвета = "Нет связи с " + СтрСервера.Сервер + " по причине: " + ОписаниеОшибки(); Возврат СтруктураОтвета; КонецПопытки; // посылаем запрос Попытка ЗаголовокHTTP = Новый Соответствие(); Если СтрСервера.Свойство("Токен") Тогда ЗаголовокHTTP.Вставить("Authorization", "Bearer " + СтрСервера.Токен); КонецЕсли; ЗаголовокHTTP.Вставить("Content-Type","application/json"); Запрос = Новый HTTPЗапрос(СтрСервера.Ресурс, ЗаголовокHTTP); Если СтрСервера.Свойство("СтрокаJSON") Тогда Запрос.УстановитьТелоИзСтроки(СтрСервера.СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); КонецЕсли; Ответ = Соединение.ВызватьHTTPМетод(СтрСервера.Метод, Запрос); ТекстОтвета = Ответ.ПолучитьТелоКакСтроку("UTF-8"); Если Ответ.КодСостояния = 200 или Ответ.КодСостояния = 201 Тогда СтруктураОтвета.Успех = Истина; СтруктураОтвета.ТекстОтвета = ТекстОтвета; Иначе СтруктураОтвета.Успех = Ложь; СтруктураОтвета.ТекстОтвета = "Ошибка отправки запроса по причине по причине: " + ТекстОтвета + " код состояния: " + Ответ.КодСостояния; КонецЕсли; Исключение СтруктураОтвета.Успех = Ложь; СтруктураОтвета.ТекстОтвета = "Ошибка передачи запроса по причине:" + ОписаниеОшибки(); КонецПопытки; Возврат СтруктураОтвета; КонецФункции в итоге получается код в модуле формы обработки не отрабатывает, а если вынести код во внешнюю обработку можно и отладить и код успешно отрабатывает т.е. находит по QR коду нужный состав меню. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |