|   |   | 
| 
 | Материалы по мобильному приложению | ☑ | ||
|---|---|---|---|---|
| 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 тыс. элементов.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |