![]() |
|
Материалы по мобильному приложению | ☑ | ||
---|---|---|---|---|
0
alex-79
24.10.19
✎
13:33
|
Добрый день!
Выдалось свободное время. Решил подтянуть свои знания по созданию мобильных приложений на платформе 1С. Если материалы в свободном доступе по нюансам программирования мобильных приложений на 1С? К примеру вот одна из ситуаций. Есть мобильное приложение, которое подключается через web-сервис к базе торговли и обмениваться данными. Я грешу именно на обмен между мобильным приложением и торговлей, потому что в ситуации когда из мобильного приложения выгружаются данные по заказам фоновым задание по расписанию и в этот момент происходит ещё одно обращение к примеру получить количество бонусных баллов из торговли, то мобильное приложение просто закрывается и на экране сообщение, что приложение было приостановлено. Получается просто оно вылетает и всё. Причём такая ситуация возникает не всегда, а рандомным образом. Отследить отладчиком невозможно и соответственно предоставить смоделированную ситуацию в техподдержку 1С. Поэтому хотелось бы почитать материалы по мобильным приложениям уже для тех, кто пишет мобильные приложения, а не новичков. |
|||
1
lucbak
24.10.19
✎
14:20
|
>>Причём такая ситуация возникает не всегда, а рандомным образом
И чем тебе поможет "не новичок" ? Сама разработка на моб.приложении не сильно отличается от обычной разработки основное отличии это дизайн форм. |
|||
2
Cyberhawk
24.10.19
✎
14:23
|
С таким подходом к описанию тебе и 1С не поможет
|
|||
3
ejikbeznojek
24.10.19
✎
14:38
|
(0) Понять на какой строчке кода вылетает по идее можно (если это одна и та же строчка).
Сделай запись в лог до и после подозрительных строчек кода. И проанализируй где есть запись "до" и нет записи "после" |
|||
4
alex-79
24.10.19
✎
17:58
|
(1) Мне не сама разработка нужна. С ней всё просто. Меня в голове закралось такое предположение, что сам андроид накладывает какие-то ограничения. Если на Windows запускаешь такое же решение, то никаких вылетов нет.
(3) Согласен. Я ставил точки останова, но до них не доходит отладка. Вся сложность в том, что такая ошибка может вылезти в течении дня несколько раз, а может через день. Поэтому говорю, что глюк гуляющий. Я отправлял в 1С копии баз, но они запускают и всё у них работает. Ещё такая проблема. Создал для клиента мобильное приложение. Клиент проверил. Всё понравилось. Задачку закрыли. Через месяц звонит и говорит, что мобильное приложение не работает. Спрашиваю почему такое произошло. Мобильное приложение было на тестировании не один месяц и проблем не было никаких. Клиент показывает, что при попытке запуска мобильного приложения появляется ошибка, что база разрушена. Я запустил на мобильном устройстве тестирование/исправление базы. Всё заработало. Через месяц опять такая петрушка. |
|||
5
alex-79
24.10.19
✎
17:59
|
Вот таких мелочей набирается и в итоге не получается отдать конечный продукт клиенту.
|
|||
6
Мимохожий Однако
24.10.19
✎
18:01
|
(0) Е. Ю. Хрусталева.Знакомство с разработкой мобильных приложений на платформе "1С:Предприятие 8". Издание 2
читал? Есть в электронном виде и на ИТС |
|||
7
alex-79
24.10.19
✎
18:01
|
Существуют ли какие-то ограничения, которые накладывает Андроид на разработку мобильного приложения?
|
|||
8
alex-79
24.10.19
✎
18:09
|
(6) Да, но сам механизм обмена я не брал один в один как в этой книге. Надо попробовать сделать также как в книге Хрусталевой расписано.
|
|||
9
alex-79
24.10.19
✎
19:15
|
(6) У Хрусталевой в книге подход к обмену между мобильным приложением и базовой на сервере (к примеру торговлей) другой. Упор делается на выгрузку данных в XML файл и потом перекидання его на сервер. Я же пошёл другим путём. Подключаюсь к веб-сервису торговли из мобильного приложения. Получаю список функций и XDTO пакетов. Заполняю данными и отправляю в торговлю, но не формирую XML файл как у Хрусталевой (посчитал это излишним). Может какое-то ограничение на объем передаваемых данных или какой-то таймаут передачи данных есть.
|
|||
10
Garykom
гуру
24.10.19
✎
19:20
|
(9) Не надо XML это сложнее, намного проще JSON через HTTPСоединение.
|
|||
11
alex-79
24.10.19
✎
21:18
|
(10) JSON проще и легче XML. Но суть не в этом.
Я напрямую передаю данные без JSON и XML. Вот кусок кода отправки данных в базу торговли из мобильного приложения. определение = Новый WSОпределения(адрес, пользователь, пароль); cоединение = Новый WSПрокси(определение, определение.Сервисы[0].URIПространстваИмен, определение.Сервисы[0].Имя, определение.Сервисы[0].ТочкиПодключения[0].Имя); cоединение.Пользователь = пользователь; cоединение.Пароль = пароль; входныеДанные = cоединение.ФабрикаXDTO.Создать(cоединение.ФабрикаXDTO.Тип(URLПространстваИмен(), "inData")); входныеДанные.partners = cоединение.ФабрикаXDTO.Создать(cоединение.ФабрикаXDTO.Тип(URLПространстваИмен(), "partnersArray")); тип_partnersItem = cоединение.ФабрикаXDTO.Тип(URLПространстваИмен(), "partnersItem"); Для каждого строкаРегистрации Из таблицаРегистраций Цикл партнер = cоединение.ФабрикаXDTO.Создать(тип_partnersItem); партнер.id = строкаРегистрации.Объект.Идентификатор; партнер.name = строкаРегистрации.Объект.Наименование; партнер.phone = строкаРегистрации.Объект.Телефон; партнер.email = строкаРегистрации.Объект.ЭлектроннаяПочта; входныеДанные.partners.items.Добавить(партнер); КонецЦикла; результат = cоединение.postChanges(id, входныеДанные); |
|||
12
alex-79
24.10.19
✎
21:19
|
Этот способ координально отличается от Хрусталевского
|
|||
13
alex-79
24.10.19
✎
21:24
|
Но когда задалбливает описывать XDTO пакеты можно в мобильном приложении сформировать таблицу значений с данным. Потом сериализовать эту таблицу и отправить через веб-сервис в торговлю, а там уже десериализовать.
|
|||
14
Cyberhawk
25.10.19
✎
08:20
|
(12) Ошибаешься. То что ты фабрику создаешь из прокси и эту же прокси используешь для вызова операции не означает что ты там что-то "напрямую" создаешь в той базе. Наивняк еще тот.
|
|||
15
alex-79
25.10.19
✎
10:19
|
(14) Так понятно, что это не прямой доступ к базе. Обращаясь к базе-приёмнику я получаю набор функций и XDTO. Со стороны базы-источника я только заполняю XDTO и отправляю всё это хозяйство через функцию, которую предоставила база-приёмник. Со стороны базы-приёмника функция читает полученные данные и выполняет код. По сути это не COM-соединение где мы получаем доступ к метаданным базы-приёмника и делаем, что хотим, а работаем с описанной структурой данных и функциями, которые предоставляет база-приёмник.
Дело не в этом. Я хотел сказать, что в книге Хрусталевой описан пример, когда выгружаются дынные из базы-источника в файл (без разницы формат JSON или XML) и потом этот файл пуляется в базу-приёмник. А у меня по другой способ. Я не выгружаю файл, а работаю с фабрикой. |
|||
16
Сияющий в темноте
25.10.19
✎
18:38
|
есть два совершенно разных пути:
первый - получить данные в мобильное приложение,поработать с ними и вернуть результат. второй - передать данные из мобильного в основную базу,чтобы ввполнить действие там. |
|||
17
rozer76
26.10.19
✎
00:14
|
(11) я тоже хрусталевские примеры переделал, сначала думал также просто xdto в соединенме кидать но потом решил что лучше dxto в строку xml потом в хранилище значений с макс. сжатием... вроде работает давно на планшетах торговых и объемы гоняют немалые, например начальный обмен данными где только спр. номенклатуры 20 тыс. элементов.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |