Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Материалы по мобильному приложению

Материалы по мобильному приложению
Я
   alex-79
 
24.10.19 - 13:33
Добрый день!

Выдалось свободное время. Решил подтянуть свои знания по созданию мобильных приложений на платформе 1С.

Если материалы в свободном доступе по нюансам программирования мобильных приложений на 1С?

К примеру вот одна из ситуаций.
Есть мобильное приложение, которое подключается через web-сервис к базе торговли и обмениваться данными.
Я грешу именно на обмен между мобильным приложением и торговлей, потому что в ситуации когда из мобильного приложения выгружаются данные по заказам фоновым задание по расписанию
и в этот момент происходит ещё одно обращение к примеру получить количество бонусных баллов из торговли, то мобильное приложение просто закрывается и на экране сообщение, что приложение было приостановлено. Получается просто оно вылетает и всё.
Причём такая ситуация возникает не всегда, а рандомным образом. Отследить отладчиком невозможно и соответственно предоставить смоделированную ситуацию в техподдержку 1С.  


Поэтому хотелось бы почитать материалы по мобильным приложениям уже для тех, кто пишет мобильные приложения, а не новичков.
 
 
   lucbak
 
1 - 24.10.19 - 14:20
>>Причём такая ситуация возникает не всегда, а рандомным образом

И чем тебе поможет "не новичок" ? Сама разработка на моб.приложении не сильно отличается от обычной разработки  основное отличии это дизайн форм.
   Cyberhawk
 
2 - 24.10.19 - 14:23
С таким подходом к описанию тебе и 1С не поможет
   ejikbeznojek
 
3 - 24.10.19 - 14:38
(0) Понять на какой строчке кода вылетает по идее можно (если это одна и та же строчка).
Сделай запись в лог до и после подозрительных строчек кода.
И проанализируй где есть запись "до" и нет записи "после"
   alex-79
 
4 - 24.10.19 - 17:58
(1) Мне не сама разработка нужна. С ней всё просто. Меня в голове закралось такое предположение, что сам андроид накладывает какие-то ограничения. Если на Windows запускаешь такое же решение, то никаких вылетов нет.

(3) Согласен. Я ставил точки останова, но до них не доходит отладка. Вся сложность в том, что такая ошибка может вылезти в течении дня несколько раз, а может через день. Поэтому говорю, что глюк гуляющий. Я отправлял в 1С копии баз, но они запускают и всё у них работает.

Ещё такая проблема. Создал для клиента мобильное приложение. Клиент проверил. Всё понравилось. Задачку закрыли. Через месяц звонит и говорит, что мобильное приложение не работает. Спрашиваю почему такое произошло. Мобильное приложение было на тестировании не один месяц и проблем не было никаких. Клиент показывает, что при попытке запуска мобильного приложения появляется ошибка, что база разрушена. Я запустил на мобильном устройстве тестирование/исправление базы. Всё заработало. Через месяц опять такая петрушка.
   alex-79
 
5 - 24.10.19 - 17:59
Вот таких мелочей набирается и в итоге не получается отдать конечный продукт клиенту.
   МимохожийОднако
 
6 - 24.10.19 - 18:01
(0) Е. Ю. Хрусталева.Знакомство с разработкой мобильных приложений на платформе "1С:Предприятие 8". Издание 2
читал? Есть в электронном виде и на ИТС
   alex-79
 
7 - 24.10.19 - 18:01
Существуют ли какие-то ограничения, которые накладывает Андроид на разработку мобильного приложения?
   alex-79
 
8 - 24.10.19 - 18:09
(6) Да, но сам механизм обмена я не брал один в один как в этой книге. Надо попробовать сделать также как в книге Хрусталевой расписано.
   alex-79
 
9 - 24.10.19 - 19:15
(6) У Хрусталевой в книге подход к обмену между мобильным приложением и базовой на сервере (к примеру торговлей) другой. Упор делается на выгрузку данных в XML файл и потом перекидання его на сервер. Я же пошёл другим путём. Подключаюсь к веб-сервису торговли из мобильного приложения. Получаю список функций и XDTO пакетов. Заполняю данными и отправляю в торговлю, но не формирую XML файл как у Хрусталевой (посчитал это излишним). Может какое-то ограничение на объем передаваемых данных или какой-то таймаут передачи данных есть.
   Garykom
 
10 - 24.10.19 - 19:20
(9) Не надо XML это сложнее, намного проще JSON через HTTPСоединение.
   alex-79
 
11 - 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, входныеДанные);
   alex-79
 
12 - 24.10.19 - 21:19
Этот способ координально отличается от Хрусталевского
   alex-79
 
13 - 24.10.19 - 21:24
Но когда задалбливает описывать XDTO пакеты можно в мобильном приложении сформировать таблицу значений с данным. Потом сериализовать эту таблицу и отправить через веб-сервис в торговлю, а там уже десериализовать.
   Cyberhawk
 
14 - 25.10.19 - 08:20
(12) Ошибаешься. То что ты фабрику создаешь из прокси и эту же прокси используешь для вызова операции не означает что ты там что-то "напрямую" создаешь в той базе. Наивняк еще тот.
   alex-79
 
15 - 25.10.19 - 10:19
(14) Так понятно, что это не прямой доступ к базе. Обращаясь к базе-приёмнику я получаю набор функций и XDTO. Со стороны базы-источника я только заполняю XDTO и отправляю всё это хозяйство через функцию, которую предоставила база-приёмник. Со стороны базы-приёмника функция читает полученные данные и выполняет код. По сути это не COM-соединение где мы получаем доступ к метаданным базы-приёмника и делаем, что хотим, а работаем с описанной структурой данных и функциями, которые предоставляет база-приёмник.

Дело не в этом.

Я хотел сказать, что в книге Хрусталевой описан пример, когда выгружаются дынные из базы-источника в файл (без разницы формат JSON или XML) и потом этот файл пуляется в базу-приёмник.

А у меня по другой способ. Я не выгружаю файл, а работаю с фабрикой.
   Сияющий в темноте
 
16 - 25.10.19 - 18:38
есть два совершенно разных пути:
первый - получить данные в мобильное приложение,поработать с ними и вернуть результат.
второй - передать данные из мобильного в основную базу,чтобы ввполнить действие там.
   rozer76
 
17 - 26.10.19 - 00:14
(11) я тоже хрусталевские примеры переделал, сначала думал также просто xdto в соединенме кидать но потом решил что лучше dxto в строку xml потом в хранилище значений с макс. сжатием... вроде работает давно на планшетах торговых и объемы гоняют немалые, например начальный обмен данными где только спр. номенклатуры 20 тыс. элементов.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.