Серверная часть тиражного мобильного приложения (бекапы, обмены, обновления)

Публикация № 621041

Разработка - Мобильная разработка

79
Создать популярное мобильное массовое приложение – достаточно сложно. В этой статье мы хотим поделиться своим опытом и знаниями в этой сфере.

 

БЭКАПЫ

 Зачем нужны бэкапы на мобильной платформе

Специалисты знают, насколько порой ненадежны мобильные приложения на 1С: в любой момент могут возникнуть ошибки, из-за которых базы пользователей просто разрушатся. Одновременно мы сталкиваемся с ненадежностью самих устройств: их можно разбить, потерять, их могут украсть, а пользователи хотят сохранить свои данные. И вплоть до версии 8.3.9 мы не имели платформенного механизма сохранения бэкапа.

 

Поскольку раньше у пользователей не было кнопки «сохранить копию», разработчикам приложения Boss пришлось самим делать бэкапы. Как мы это сделали?

Сами данные базы мы сохраняем в виде ХML. 

Желательно предложить пользователю несколько вариантов хранения копий - прежде всего, это удобно клиентам, они могут выбрать наилучший для себя вариант: выгрузить в облако, отправить себе на почту, сохранить на устройстве.

Таким образом, разработчики дополнительно себя страхуют. Если что-то пошло не так, и вдруг сломался механизм создания копий на Гугл-Диске или Яндекс-Диске, всегда можно сказать пользователю, что в данный момент разработчик разбирается с ошибкой, а пока он может сохранить данные альтернативным способом. И пользователи остаются довольны, потому что они могут быть спокойны за свои данные.

Обязательно нужно сделать акцент на облачные сервисы, потому что если устройство потеряется или разобьется, а пользователь сохранял копию на этом же устройстве, то данные будут утеряны.

Также мы обязательно напоминаем пользователю о необходимости создания бэкапов.

 

Как сохранять копии, если меняется конфигурация?

 

Когда мы говорим о массовом решении, о приложении, которое постоянно меняется, развивается и дорабатывается, надо учитывать поведение клиентов. Пользователь может захотеть восстановить бэкап, сохраненный в старой версии приложении, где не было каких-то реквизитов. И тогда возникает задача: прочитать данные, затем дозаполнить данные по логике обновления со старой версии приложения. Как это сделать? Помимо данных, сохранить еще и саму структуру данных, чтобы потом знать, как их читать.

 

 

 

Есть несколько вариантов хранения этой структуры данных, в том числе ее можно хранить в самой конфигурации. То есть при выпуске каждой новой версии, сохранять структуру метаданных предыдущей версии в макет в конфигурации. 

Не стоит забывать, что в мобильном приложении конфигурация не должна разрастаться просто так, мы должны дорожить местом в ней, должны делать ее наиболее компактной. Но приложение ведь развивается, и таких макетов будет много и со временем их будет становиться всё больше.

Поэтому в случае с мобильным приложением предпочтителен другой путь - сохранять структуру метаданных непосредственно в файле с данными. На выходе у нас получается вот такой файлик, где вначале мы храним какие-то вспомогательные данные – версию конфигурации, схему конфигурации, границы последовательностей, в уже после записываем сами данные пользователей в формате XML. Причем, в разделе файла "Вспомогательные данные" можно также хранить и другие важные данные, которые по каким-то причинам не получилось записать в XML.

 

 

 

 

 

 

Как читать бэкапы?

Берем ту схему данных, которую сохранили в файл, и на ее основании строим пакет XDTO для чтения файла. Создаем аналогичный объект в базе данных, заполняем его, выполняем обработки по дозаполнению при обновлении, и сохраняем уже готовый объект в базу данных.

Ниже на картинке можно посмотреть подсказку, как красиво записать модель XDTO данных конфигураций. В компании, выпустившей приложение Boss, экспериментировали с этим, находили несколько способов, но остановились именно на таком варианте записывания схемы метаданных. Когда открывается сам файл с данными, там виден обычный  структурированный XML, читабельный, в котором перечислены все метаданные приложения.

 

// Запись схемы конфигурации

МодельXDTO =  ФабрикаXDTO.ЭкспортМоделиXDTO("http://v8.1c.ru/8.1/data/enterprise/current-config");

ФабрикаXDTO.ЗаписатьXML(ФайлВыгрузки, МодельXDTO); 

// Чтение схемы конфигурации

МодельXDTO =  ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/xdto","Model"));

ФабрикаВыгрузки = Новый ФабрикаXDTO(МодельXDTO);

Чтобы обезопасить пользователя, нужно обязательно переспрашивать его, а нужно ли ему восстановление бэкапа. Может, он просто экспериментировал и нажимал на все подряд кнопочки в приложении:) И сейчас текущие данные у него могут потеряться. Поэтому мы всегда при выполнении потенциально "опасных" действий уточняем, а действительно ли он этого хочет, и как это должно происходить. Пользователь должен отдавать себе отчет в своих действиях.

 

Механизм создания бэкапов обязательно должен быть, когда мы говорим об автономном решении, когда у пользователя все данные хранятся исключительно на мобильном устройстве: пользователь может свое устройство потерять, и тогда данные потеряются. И, казалось бы, если приложение работает не автономно, а связано с центральным сервером, то у пользователя не должно быть такой проблемы, ведь в случае утери устройства он подключится к серверу, получит все свои данные с сервера заново, и все будет ок.

Однако пользователи используют бэкапы не всегда так, как мы от них ожидаем:) Они очень часто используют их для того, чтобы просто «откатить» данные назад. Это правда очень странное поведение, но пользователям мобильных приложений лень разбираться, где они могли допустить ошибку при вводе данных, и они просто откатывают данные назад и заново заводят данные за текущий день. Проанализировав статистику работы с приложением Boss, мы осознали, что это нормальная практика и такое поведение пользователей встречается чаще, чем мы могли предположить.

И если у вас используется синхронизация с другими устройствами, то вы должны  это обработать. Здесь есть несколько путей решения:

  • разорвать связь с сервером, уточняя, что данные на нем останутся такими, как были, а копия восстановится только на устройстве пользователя;
  • лучше для пользователя - дать ему восстановить копию сразу на всех устройствах, предварительно прописав такие механизмы.

 

 

Тут есть еще один момент.  До сих пор мы бэкапы сохраняли сами, контролировали весь процесс, прямо в коде отлавливали действия пользователя, когда он нажимал кнопку «сохранить копию». Все это можно потом обработать. В платформе 8.3.9 появилась возможность сохранять бэкапы именно средствами платформы. И пользователь делает это без нашего ведома. Если используется синхронизация с центральной базой, то нужно обязательно обработать такой сценарий. Мы должны как-то на своем сервере узнать, что пользователь восстановил ранее сохраненную копию и должны выдать ему какое-то решение. Мы не можем себе позволить, чтобы данные рассинхронизировались.

 

 

 

 

ОБМЕНЫ

 Когда мы говорим про частное решение на мобильной платформе, то у нас, как правило, есть заказчик, который, например, хочет использовать мобильную платформу для своих торговых агентов, и чтобы они обменивались данными с центральной базой. Здесь все просто: одна база данных, несколько устройств, вы поднимаете сервер, настраиваете связь с ним. Так что проблема обмена между устройствами решается легко.

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

 

 

Как поступить? Тут на помощь приходит механизм разделения данных. Он позволяет организовать единую базу данных, где есть одна общая конфигурация, но при этом в рамках одной общей базы хранится неограниченно много баз пользователей.

 

 

Самое приятное, что можно динамически, программно, без нашего участия добавлять пользователей. Реально пользователи просто нажимают на кнопочку «зарегистрироваться на сервере», и все само происходит: ему создается персональная база на сервере, и он может тут же начинать работать в ней.

Как это сделать? Первое и самое просто решение – написать свою серверную базу с этим механизмом. Когда наша компания начинала делать приложение Boss и обмены в нем, в первой версии мы так и сделали: написали серверную базу с механизмом разделения данных. Все работало, тем более что ничего сложного не было – разделителем баз является общий реквизит.

Но потом мы поняли, что изобретаем велосипед:) На самом деле есть уже готовое решение, причем в нем уже учтены моменты, о которых мы еще даже не думали. Это 1С:Фреш.

 

 

Здесь продуманна масштабируемость сервиса: что делать, когда будет очень много данных и баз, как расти с этим всем. Здесь есть момент о создании резервных копий областей данных: то есть мы не просто делаем бэкап одной общей базы данных, мы делаем копии конкретного пользователя. Причем, механизм там такой, что копии делаются только тогда, когда они реально нужны. Если пользователь не заходил неделю в базу, то мы не делаем ему копии, потому что там ничего не изменилось. Еще одна фишка Фреш – в сервисе реализован механизм для снижения нагрузки на сервер, а это очень важно, когда у вас много баз.

В целом Фреш для нас – что-то новое и интересное. Потихоньку мы пытаемся разобраться в нем, но в большинстве своем мы просто довольны его работой.

 

 

 

Передача данных. Как реализовать ее для обмена между устройствами

Платформа предоставляет два механизма – это SOAP и http сервисы. Тут есть нюансы, как обращаться к этим сервисам, когда задействован механизм  разделения данных. В частности, нужно добавить параметры, которые указывают конкретный номер области, к которой вы обращаетесь, потому что по имени пользователя платформа не может определить, к какой базе обращаться.  Кроме того, один и тот же пользователь может работать с несколькими базами в рамках единой базы (см. картинку).

Что касается сервисов, в приложении Boss реализован мгновенный обмен: один пользователь вводит данные, а другой их получает. Пользователи мобильных приложений привыкли ведь, что все происходит моментально, поэтому мы задумались, каким лучше сервисом пользоваться – SOAP или http. Ключевую роль сыграла скорость соединения. В http скорость соединения гораздо выше, а подключаясь по SOAP, мы получаем описание сервиса, которое тяжелое и долго грузится. У платформы есть способ хранить описание сервиса, но из-за параметров, которые мы добавляем динамически, мы не можем использовать WS-ссылки. Кроме того, обращение к http-сервисам удобнее и гибче, по нашему опыту.

Итак, наша цель – реализовать обмен в режиме реального времени. То есть мы стараемся не делать так, чтобы пользователю пришлось зайти куда-то, нажать на какую-то кнопку, думать о том, насколько актуальные у него данные, должен ли он проводить актуализацию…У пользователей  данные всегда должны быть актуальны. Они так привыкли, работая в мессенджерах – один данные отправил, другой их тут же получил. Все происходит моментально. То же самое касается приложений, касающихся бизнеса: один продавец оформил продажу, другой должен тут же увидеть актуальную ситуацию, никаких действий при этом не совершая.

Поэтому в приложении Boss используются для обменов фоновые задания. После каждой записи данных в базу, запускается фоновое задание, которое инициирует обмен. Первая часть – отправить данные на сервер. Затем другие устройства должны узнать, что есть новые данные. Для этого мы используем PUSH-уведомления. Эта схема уже работающая и она работает достаточно быстро.

Но мы захотели еще быстрее, поскольку работаем в режиме реального времени и данных у нас, как правило, немного. У нас маленькие XML, но при этом мы отправляем с первого устройства на сервер сообщение с этими данными, сервер отправляет PUSH на другое устройство, а то второе устройство после получения PUSH-а инициирует обмен со своей стороны, обращается к серверу и запрашивает данные, получает эти данные и затем отправляет ответ, что данные получены. Это долго, а ведь самих данных было совсем немного.

Мы задумались, как этот процесс можно ускорить.

Для этого мы разобрались, что содержит в себе PUSH, как его можно еще использовать. Оказалось, что PUSH содержит такие поля, как данные и текст. В документации iOS и Android указаны ограничения по размеру PUSH-сообщений, но нам этого показалось мало и мы захотели сами опытным путем во всем разобраться. И мы проверили, что для iOS сумма допустимых символов составляет 981 знак, а для Android – 3832 символа. В последнем случае ограничением вполне можно пользоваться, в такой объем можно впихнуть один или несколько объектов базы. И тогда разработчики компании изменили немного схему. Когда данных немного, мы отправляем их с одного устройства, получаем их на сервере, там упаковываем их в PUSH и прямо в нем же отправляем на другое устройство. Схема стала короче, а обмен стал происходить еще быстрее:)

 

 

 

 

Важный момент использования PUSH – не раздражаем пользователей. 

 

Очень легко избавиться от такой ситуации: просто не отправлять пользователю много PUSH-сообщений:) Если он работает сейчас в приложении, отправлять много сообщений можно. Когда платформа работает, пользователь не видит PUSH, у него все происходит автоматически. А вот когда приложение закрыто, у клиента появляется много непрочитанных сообщений. Поэтому ни в коем случае нельзя  отправлять следующие PUSH, пока не получен ответ от устройства, что приложение работает, активно и предыдущий PUSH уже обработан.

Еще один нюанс обмена – это работа через веб. Нам нужно использовать асинхронность максимально. Вы не можете работать как обычно – написали код – вызвали функцию – подождали, пока она выполнится – получили ответ – и все ок. Если вы работаете через веб, вы все равно столкнетесь с определенными ограничениями, например, с нестабильным интернетом, срабатываением таймаутов при выполнении длительных операций. Поэтому надо заранее продумывать архитектуру.

 

 

Посмотрим на примере регистрации устройства, что происходит в приложении, когда пользователь хочет зарегистрироваться. Он ведет учет какое-то время, он ввел достаточно много данных, но потом он хочет, чтобы продавец тоже работал с этой базой. Пользователь нажимает на кнопку «зарегистрироваться». Вначале все было очень просто: взяли его данные, записали на сервере, и, пожалуйста, можно работать и подключать пользователей. Но потом мы столкнулись с ситуацией, когда у некоторых пользователей базы данных на устройстве к моменту регистрации уже сильно разростались. И эта схема уже не работала, т.к. пока шла запись всей базы на сервере, срабатывал таймаут соединения или просто обрывался интернет. Поэтому мы заменили один синхронный вызов на множество коротких. Сейчас данные делятся, а не передаются все за один раз. Мы не ждем ни в коем случае, пока сервер будет обрабатывать и записывать данные. Отправили данные, получили ответ, что данные получены, закрыли соединение. Периодически надо опрашивать сервер, что там и как происходит, а тем временем на сервере работает фоновое задание, которое записывает полученные данные. Таким образом, получается много вызовов сервера, но у нас есть гарантия того, что все пройдет хорошо. И ни таймауты, ни нестабильность интернета не помешают произвести выгрузку всех данных на сервер.

 

 

 

ОБНОВЛЕНИЯ

 

Обмен между устройствами с разными версиями приложения

Поскольку мы говорим о массовом приложении, которое выпускается в маркеты, надо учитывать некоторые особенности процесса обновлений и обмена данными.

Если вы выпустили приложение для одного предприятия и решили его обновить, то обычно вы просто даете команду, чтобы все сотрудники дружно установили новое приложение. С пользователями, которые скачали приложение из маркета, так сделать нельзя. Вы вообще не можете им указывать, что им делать. К примеру, они работают в приложении и не хотят обновлять его ни сейчас, ни вообще никогда. У них не стоит автообновление, поэтому совершенно обычная ситуация, когда к центральной базе подключено несколько устройств, и все они с разными версиями. Еще одна причина такого явления – время публикации в маркетах: оно разное для iOS и Android. Мы часто внедряем ключевые штуки, например, исправляем критические ошибки, и не хотим ждать, пока iOS проверяет две недели новую версию, мы хотим хотя бы только для Android, но выпустить обновление прямо сейчас.

Мы не имеем права командовать пользователями. Если они хотят, то обновляются, а если нет – то ничего не делают. На картинке видно соотношение установок приложения Boss по версиям в GooglePlay, а также статистика с нашего сервера - реальное соотношение версий приложения, которые установлены на устройствах, обменивавшихся с сервером данными в течение последней недели. Вот такой набор, с которым надо работать. Это разные версии и разные метаданные. И нам надо организовать нормальный обмен при этом:)

 

 

Перед разработчиками стоят следующие задачи:

  • Надо, чтобы все это работало. Пользователи не должны чувствовать дискомфорта от того, что они забыли обновиться. Они вообще не должны этого замечать. Обновились – стало лучше, ну и хорошо.
  • Мы должны обеспечить сохранность данных. Например, у одного пользователя появился справочник и новый реквизит, а у другого еще нет.  При этом если пользователь, у которого новых реквизитов нет, изменит у себя на устройстве что-то, то на других устройствах данные не должны пропасть. 
  • Надо обеспечить актуализацию данных, когда мы переходим на новую версию. Когда пользователь решит, что он готов обновиться, у него автоматически должны появиться все новые сведения, которых у него не было только потому, что у него была старая версия.

 

 

 

Как мы это сделали?

1.      Мы используем на сервере 2 плана обмена. Первый – для обмена между устройствами, а второй – для обновлений. Например, мы отправили справочник пользователю, но у него нет единиц измерения, то есть неполные данные. Мы должны запомнить это. А когда он обновится, мы должны отправить ему все те сведения, которых у него не было. Для этого и нужен второй план обмена.

2.      Для записи и чтения объектов мы используем тот же механизм, который используется для бэкапов, то есть сохраняем версию метаданных. В данном случае мы работаем с сервером, и мы можем позволить себе прямо в конфигурацию добавлять все, что угодно, поэтому просто в виде макетов добавляем в конфигурацию схемы метаданных по мере развития приложения.

 

 

Как мониторить массовые ошибки при обмене и на сервере

Во-первых, надо контролировать доступность самого сервера. С серверами такое бывает – они падают. Мы не выдумывали ничего особенного для мониторинга, а просто нашли бота в телеграмме, который кричит, если что-то не так. Он каждую минуту проверяет работоспособность сервера, и если вдруг сервер недоступен, начинает кричать, админы это видят и поднимают сервер.

Также мы собираем лог ошибок из журнала регистрации. Тоже ничего сверхъестественного – просто каждые три часа собираем лог ошибок, отправляем их на почту, периодически их просматриваем. Это помогает видеть частые проблемы и какие-то исключительные ситуации. Не сложно просматривать почту, отслеживать и быстро исправлять ошибки. Но это позволяет оперативно выявлять и решать проблемы, которые могут разрастаться с ростом баз данных.

 

 

Еще важный момент – обязательно давать пользователю возможность "пожаловаться". Это улучшает наш статус в их глазах и спасает нас. Есть пользователи, как мы их называем, "истерички", которые при малейшей ошибке начинают отправлять нам на почту кучу сообщений, что ничего не работает, база не загружается, все страшно плохо. Но иногда они реально нас спасают, потому что находят порой такие баги, которые остальные еще чудом не обнаружили, серьезные баги.

Пользователя нельзя пугать. Ни страшными сообщениями, ничем другим. Им надо красиво все объяснять и предлагать пожаловаться. А мы обещаем все решить. Тогда и пользователи довольные, ведь они видят, что о них заботятся, и сразу верят, что им помогут:)

 

***************

Данная статья написана на основе доклада, представленного автором на конференции Infostart в 2016 году.

Больше статей можно прочитать здесь.
Приглашаем вас на новую конференцию INFOSTART EVENT 2019!

79

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. frkbvfnjh 557 02.06.17 06:51 Сейчас в теме
2. apic 02.06.17 06:52 Сейчас в теме
Т.е. судя по вступлению про бэкапы, Вы выложили этот материал только по тому, что он теперь не актуален? теперь есть платформенный механизм... В статье как я понял рассказывается, о том как сделать удобное приложение с точки зрения пользователя, но нет никакого примера кода, что очень прискорбно, потому как на бумаге можно и получше вашего на фантазировать, по моему куда более важно рассказать о том как это реализовать с помощью программных механизмов 1С. Как по мне, так это "пустая" статья без исходников.
alest; iliabvf; Yakud3a; +3 Ответить
5. DitriX 1713 03.06.17 00:14 Сейчас в теме
(2)это не совсем статья, это транскрипция доклада с прошлой конференции, все тонкости обсуждались там в кулуарах :)
6. Dach 279 05.06.17 12:03 Сейчас в теме
(5) я знал, что без Вас тут не обошлось ))) к сожалению, тонкости как раз нигде и не описаны, а именно они - самое интересное)))

Например, "Поэтому в приложении Boss используются для обменов фоновые задания. После каждой записи данных в базу, запускается фоновое задание, которое инициирует обмен."

Моблиьное приложение - по сути, аналог файловой базы. Значит не фоновЫЕ задания, а фоновоОЕ задание, так как в файловой базе одновременно может выполняться только ОДНО фоновое задание
7. DitriX 1713 05.06.17 12:06 Сейчас в теме
(6) все намного и намного хитрее. Во-первых - используются разные фоновые задания, отсюда и фоновЫЕ, хотя и последовательно.
Но, помимо них еще есть обмен по событию, и регламент. Так что тут все достаточно сложно, на самом деле.
8. Dach 279 05.06.17 17:11 Сейчас в теме
(7) На самом деле, кстати, пуши - не панацея. Потому что что такое пуш на самом деле? По сути, на устройстве крутится служба гугл, которая раз в каком-то промежуток времени шлет запрос гугл-сервер на предмет "я ИД такой-то, есть что для меня?". И это именно так, потому что иначе как? Если бы сервер гугла иницировал обмен, то он по факту должен знать связку "ИД гугла - мак-адрес телефона в конкретной сети конкретного оператора СОСС". Чтобы послать месседж конкретному устройству, на котором авторизован в своей гугл-учетке конкретный юзер. Конечно же, он такими данными не обладает.

Поэтому, банальное

Пока Истина Цикл 
Если НаступилоВремяОбменаДанными() Тогда
ПослатьЗапросНаНашСервер()
КонецЕсли;
КонецЦикла;


завернутое в фоновое задание - тоже самое, что пуши.
Главное, чтобы 1С могла фоново работать, а для этого надо ей это разрешить в настройках устройства.

Тестировал, такой код ни разу не "сажает батарею".
11. SnegSneg 79 06.06.17 19:51 Сейчас в теме
(8) ну не совсем то же самое, т.к. в таком случае нам нужно с какой-то периодичностью "дергать" наш сервер и спрашивать его "есть чё для меня", и когда накапливается несколько тысяч баз по несколько устройств в базе, то как-то сервер уже будет не очень-то рад такой популярности:) А чтобы обмен происходил именно быстро с точки зрения пользователя, дергать придется еще и очень часто.
А так мы без острой необходимости к серверу не обращаемся, и перекладываем ответственност на службу гугл и пуши. А дергаем сервер, грубо говоря, в двух случаях: когда что-то записали на этом устройстве (чтобы отправить новые данные на сервер) и когда получили пуш, что на сервере появилось что-то новое с другого устройства.
13. SnegSneg 79 06.06.17 20:35 Сейчас в теме
(2) насчет бекапов: платформенный механизм хоть и есть, но очень уж "далеко" спрятан для рядового пользователя, и особенно далеким он становится, когда после поломки базы платформа просто сообщает об ошибке и закрывается, т.е. "список приложений" в мобильном приложении 1С уже никак не достать; + он сохраняет копии на том же устройстве, и пользователю тогда нужно самостоятельно те копии доставать и переносить в облако, если он сильно обеспокоен сохранностью данных:)
Ну и когда используется синхронизация с сервером, та платформенная копия (аналог dt в настольной 1С) тоже не особо поможет, т.к. тут разве что разрывать связь с сервером и заново регистрировать восстановленную базу и подключать другие устройства.

А насчет примеров кода: в докладе ставилась цель хотя бы "на пальцах" успеть рассказать идеи и предоставить пищу для размышлений, изначально это не статья и точно не мануал:)

Но интересно, какая именно часть не до конца понятна/недостаточно подробно изложена и требует примеров кода?
30. inf012 11.09.17 11:38 Сейчас в теме
(13) А не подскажете, какая функция делает выгрузку базы средствами платформы?
Полистал хелп, прочитал список изменений в 8.3.9?
О какой программной выгрузке базы идет речь?

Нашел только выгрузку журнала регистрации и выгрузку конфы в файлы xml, но это ведь не то?
Надо ведь на выходе получить dt?
31. SnegSneg 79 24.09.17 00:41 Сейчас в теме
(30) речь не о программной выгрузке, а о том, что пользователь теперь может самостоятельно делать бекап, до 8.3.9 этого не было. Правда спрятали эту функцию так далеко, что пользователи ее и не находят, что в нашем случае и хорошо:) А пройти пользователю нужно вот такой путь - список приложений - меню этой базы - Изменить - Администрирование - Резервное копирование. На выходе если заглянуть в папку с бекапом - там 1CD файл с кучей служебных, вот только просто открыть такой файл на настольной платформе не получится.
Программно создать такой бекап нельзя, как и узнать, что пользователь его развернул. Поэтому чтобы перестраховаться в случае, если используете синхронизацию, нужно добавить свою какую-то проверку: например, записывать дату последней синхронизации на мобильном и на сервере для каждого устройства, и сверять эти даты.
3. Dach 279 02.06.17 09:29 Сейчас в теме
Крутая статья.

"Что касается сервисов, в приложении Boss реализован мгновенный обмен: один пользователь вводит данные, а другой их получает."

Скажите, а как у Вас в центральной (стационарной базе) организован план обмена? Что "сидит" в узле плана - пользователь или устройство? Иными словами, для рассылки пушей надо хранить идентификаторы устройств GCMsg. На конкретном устройстве может быть авторизован только один пользователь или любой? К примеру, месседжинг. Пользователь ГравБух написал в чат "Бухгалтерия". Все юзеры из чата "Бухгалтерия" должны получить это сообщение. Для этого надо отобрать ИД, которым отправить пуши. Чтобы их отобрать, надо знать кто из юзеров на каком устройстве авторизован.

Надеюсь, мой вопрос понятн, хотя несколько сумбурно написал...
10. SnegSneg 79 06.06.17 19:39 Сейчас в теме
(3) в узле плана обмена "сидит" даже не устройство, а конкретная база на конкретном устройстве - на сервере соответственно храним ИдентификаторПодписчикаДоставляемыхУведомлений этой базы (см. метод ПолучитьИдентификаторПодписчикаУведомлений() ) и какой пользователь там работает, чтобы знать какие куда отправлять данные.
14. Dach 279 07.06.17 07:44 Сейчас в теме
(10) а когда пользователи авторизуются в программе на устройстве - связку "база на устройстве - пользователь" - обновляете, отправив данные с устройства на сервер? И связка наверняка в регистре сведений))) я также делал, собственно говоря. Насчёт нескольких тысяч мобильных пользователей - таких объёмов объёмов, честно говоря, никогда не видел. Скорее всего, при такой нагрузке сервер для обменов данными надо выносить в отдельную базу и синхронизировать с продакшном регламентном.
4. Prometeus2011 88 02.06.17 15:45 Сейчас в теме
А что у вас за фирма? Интересно работаете.
9. iliabvf 05.06.17 19:18 Сейчас в теме
Делал похожее решение, пришел к отказу от планов обмена так как xml слишком громоздкий и планы обменов просто взрывали мозг. Проверку новых данных делали простым http сервисом.
12. SnegSneg 79 06.06.17 20:18 Сейчас в теме
(9) не очень понимаю, в чем связь плана обмена, xml и http-сервиса - это же 3 отдельных никак не связанных вещи, и уж точно не взаимозаменяемые :)
А в каком формате вы передаете данные вместо xml? json?
15. iliabvf 07.06.17 08:22 Сейчас в теме
(12)
(9) не очень понимаю, в чем связь плана обмена, xml и http-сервиса - это же 3 отдельных никак не связанных вещи, и уж точно не взаимозаменяемые :)
А в каком формате вы передаете данные вместо xml? json?

А я и не говоил об их связи, я имел ввиду что:
1.Отказался от планов обмена
2.Для обмена использовал свой очень сжатый формат
3.HTTP сервисы использовал для определения новых данных на сервере
16. SnegSneg 79 07.06.17 11:58 Сейчас в теме
(15) просто в вашей первой формулировке прослеживалась связь, значит не так прочитала)
17. DitriX 1713 07.06.17 16:49 Сейчас в теме
(15)
Отказался от планов обмена

Мне уже прям интересно - каким образов вы фиксируете удаленные объекты и регистры сведений. Жуть как интересно.

Для обмена использовал свой очень сжатый формат

Что значит сжатый формат? Текст хорошо сжимается хранилищем значений. JSON поддерживается и на сервере и в мобильнике. Куда еще "сжатее"?

HTTP сервисы использовал для определения новых данных на сервере

А старых? А удаленных? А измененных? А блокировки данных? А данные которые вдруг стали не доступны, или наоборот - доступны, когда по РЛС склад не доступен, а потом поменяли склад на другой в документе?

В ваших словах, как мне кажется, затаилось очень-очень узкоспециализированное решение. Которое уж никак не может претендовать на нечто "универсальное, что можно советовать всем". ИМХО
18. iliabvf 07.06.17 20:58 Сейчас в теме
(17)
Мне уже прям интересно - каким образов вы фиксируете удаленные объекты и регистры сведений. Жуть как интересно.

нормально их фиксируем по ObjectID, а как по вашему их фиксирует механизм РИБ?

(17)
Что значит сжатый формат? Текст хорошо сжимается хранилищем значений. JSON поддерживается и на сервере и в мобильнике. Куда еще "сжатее"?

Ну вы серьезно? Есть более сжатые форматы чем JSON. Мой формат похож на csv.
Кстати хранилищем значений сжимается в веб-сервисах, а они не приемлемо тормозят. А насчет HTTP сервисов недавно открыл вариант сжатия в хранилище и предачу по Base64, но я еще не тестировал его, думаю выйгрыш будет не большой.

(17)
А старых? А удаленных? А измененных? А блокировки данных? А данные которые вдруг стали не доступны, или наоборот - доступны, когда по РЛС склад не доступен, а потом поменяли склад на другой в документе?

RLS не требовался в реализованных решенях т.к. обмен Сервер - Терминал

(17)
В ваших словах, как мне кажется, затаилось очень-очень узкоспециализированное решение. Которое уж никак не может претендовать на нечто "универсальное, что можно советовать всем". ИМХО

Заметьте мы обсуждаем тут решение Сервер <-> Мобильная платформа.
Решение универсальное и план обмена может менять сам пользователь на лету. Так же их может существовать сколько угодно и для разных мобильных (переферийных) баз свой план.
Так же бинарные данные и картинки тоже переносятся.
19. DitriX 1713 08.06.17 00:25 Сейчас в теме
(18)
нормально их фиксируем по ObjectID, а как по вашему их фиксирует механизм РИБ?

А какой ID у регистра сведений? И это получается, что при каждом удалении/изменении регистра и т.д. - у вас вызываются обработчики которые фиксируют все это куда-то. Где потом 100% узкое место лдя блокировок, причем по всей системе в куче.

Ну вы серьезно? Есть более сжатые форматы чем JSON. Мой формат похож на csv.

csv - это вообще не формат обмена данными, чтобы его использовать - систему надо покрывать кучей тестов, из серии, а что если разделитель попадется в наименовании. А также следить за порядком данных в нем, и вообще - csv, это уже давно частный случай JSON. Это раз, два - в csv вы выигрываете только в том, что не именуете теги, но так этогда просто массив данных того же json, но система уже сама может контролировать запрещенные символы и кучу всего другого. Два - хранилище - это арзиватор, архиватор отлично сжимает тексты, которые повторяются очень часто, а значит сжав JSON и CSV вы получите мизерный прирост, который вообще не стоит затраченных усилий. Три - json парситься платформой, а csv - мы мучаете сами, т.е. напрягаете не платформенные механизмы для парсинга, а прикладные, что всегда плохо.
Та и в целом - JSON это хороший тон.

А насчет HTTP сервисов недавно открыл вариант сжатия в хранилище и предачу по Base64, но я еще не тестировал его, думаю выйгрыш будет не большой.

А еще хранилище можно записать в текст и передать просто в теле запроса текстом, а можно вернуть бинарные данные.

RLS не требовался в реализованных решенях т.к. обмен Сервер - Терминал

РЛС не требовался - это понятно, но как это связано с сервером терминалом?

Заметьте мы обсуждаем тут решение Сервер <-> Мобильная платформа.

А я где то говорил про стационарную 1С?

Решение универсальное и план обмена может менять сам пользователь на лету. Так же их может существовать сколько угодно и для разных мобильных (переферийных) баз свой план.
Так же бинарные данные и картинки тоже переносятся.

Меня не покидает чувство, что вы просто не захотели разбираться досконально в планах обмена и прочих механизмах, потому что то о чем вы говорите - вообще никак не связано с тем, как это все делается.

P.S. Я согласен, что бывают старые проекты, которым уже 3 года, или больше, и там иногда требовалось отказаться от планов и прочей ахинеи в мобильной 1С, но это не из-за того, что по другому - круто, а из-за того, что раньше по другому просто не работало в принципе.
Сейчас же - все работает отлично. Поэтому не нужно выдумывать велосипеды :)
20. iliabvf 08.06.17 08:44 Сейчас в теме
(19)
А какой ID у регистра сведений? И это получается, что при каждом удалении/изменении регистра и т.д. - у вас вызываются обработчики которые фиксируют все это куда-то. Где потом 100% узкое место лдя блокировок, причем по всей системе в куче.

Фиксируются в отдельный регистр под каждый объект, так же как и в РИБ


(19)
csv - это вообще не формат обмена данными

все спец символы контролируются тегами для HTML, в данном решении парсить данные не нужно так как они уже структурированы по колонкам, теги тоже не нужны


(19)
А еще хранилище можно записать в текст и передать просто в теле запроса текстом

Я это и имел ввиду когда написал BASE64 :) Вопрос по выйгрышу остается открытым


(19)
РЛС не требовался - это понятно, но как это связано с сервером терминалом?

В момент формирования пакета данных для терминала фильтрация происходит по нужным правилам


(19)
Меня не покидает чувство, что вы просто не захотели разбираться досконально в планах обмена

В обычных решениях 1С я везде использовать РИБ. Но в данном случае были взвешены во внимание скорость, ограничения РИБ и гибкость нужная клиентам и было принято решение сделать свой механизм.

(19)
Сейчас же - все работает отлично.

У меня тоже все работает отлично, разница в том что я контролирую весь процесс полностью.

(19)
Поэтому не нужно выдумывать велосипеды

В мире ИТ всегда выдумываются велосипеды, благодаря этому мы имеем C++, Java. а сейчас Kotlin для мобильной разработки и кучу всяких JS-фреймворков и я считаю это прекрасно.
21. DitriX 1713 08.06.17 14:17 Сейчас в теме
(20)
В обычных решениях 1С я везде использовать РИБ. Но в данном случае были взвешены во внимание скорость, ограничения РИБ и гибкость нужная клиентам и было принято решение сделать свой механизм.

Почему вы используете термин РИБ? Он тут вообще не применим, в принципе, и опять я повторюсь - вы не разобрались в механизмах. Вам никто не мешает регистрировать планами, а потом делать выборки из планов.
Если честно - я понимаю о чем вы пишите, я сам так когда делал, пока не научился делать это правильно.
Вы смотрели бесплатный курс по мобильной платформе?
22. iliabvf 08.06.17 21:41 Сейчас в теме
(21)
Почему вы используете термин РИБ? Он тут вообще не применим, в принципе, и опять я повторюсь - вы не разобрались в механизмах. Вам никто не мешает регистрировать планами, а потом делать выборки из планов.
Если честно - я понимаю о чем вы пишите, я сам ак когда делал, пока не научился делать это правильно.

Ок, механизм распреленных баз данных используя планы обмена. Да я в курсе что можно самостоятельно регистрировать изменения в план, меня все же не устраивает этот механизм от платформы, мне нужен полный контроль.
Нет бесплатный курс не смотрел.
23. DitriX 1713 09.06.17 01:17 Сейчас в теме
(22) есть планы обмена, их задача регистрировать изменения данных, с возможностью дальнейшего переноса данных куда угодно и в каком угодно виде.
Есть РИБ - риб, это частный случай использования планов обмена, который подразумевает одно ключевое упрощение - у вас все базы входящие в риб должны быть идентичны, так как риб переносит вместе с данными и конфигурацию.
Мобильная платформа вообще не поддерживает риб и это логично.
Отсюда вопрос - зачем писать свой велосипед обмена данными, если есть стандартный.

Советую посмотреть курс, тогда большая часть вопросов отпадет сама собой.
24. iliabvf 09.06.17 08:49 Сейчас в теме
(23)
Мобильная платформа вообще не поддерживает риб и это логично.
Отсюда вопрос - зачем писать свой велосипед обмена данными, если есть стандартный.

Не вижу в этом ничего логичного. Зачем писать я ответил выше.
25. iliabvf 09.06.17 09:50 Сейчас в теме
(23)
оветую посмотреть курс, тогда большая часть вопросов отпадет сама собой


Посмотрел бесплатный курс... я конечно понимаю, что это своего рода реклама для полного курса, но все же просмотрев готовое решение и сам курс я сделал вывод, что как и 99% вводных курсов по всем технологиям, он имеет мало общего с реальностью.
Я никому не рекомендую читать этот вводный курс, а про полный и не знаю что сказать, спасибо вам и удачи.
26. DitriX 1713 09.06.17 13:30 Сейчас в теме
(24) Как это не видите, т.е. вы считаете, что при написании заказов для торговых агентов - база мобильной должна полностью соответствовать стационарной 1С? Та еще и обновляться при каждом обновлении стационарной? Я вас правильно понял?

(25) При чем тут платный, в бесплатном курсе хорошо разобраны планы обмена, причем в платном - про них ни слова нету. Но раз вы даже из этой информации ничего не смогли вынести (где рассказано про планы, про то, почему именно они, как работать с ними, как преобразовывать данные и т.д.), то да, наверное я зря стараюсь, когда пытаюсь чтобы было по меньше велосипедов в мире 1С.
Ну ок, пусть будет так. Тогда и вам удачи :)
27. borrman 18.06.17 12:24 Сейчас в теме
(26) Ссылку на курс дайте плиз. И на платный , и на бесплатный
28. DitriX 1713 18.06.17 19:41 Сейчас в теме
(27) там смотрите раздел по мобильным, там три курса.
29. DitriX 1713 18.06.17 22:44 Сейчас в теме
32. spezc 587 24.09.17 06:00 Сейчас в теме
Когда уже будет БСП для мобильной платформы?..
nomadon; Rustavelli; +2 Ответить
33. iliabvf 24.01.18 15:05 Сейчас в теме
Добрый день Снежана,
Каким образом вы посылаете PUSH на клиентские андроид / iOS терминалы?
Какой сервис вы используете? Google или 1С или другой?

Сразу говорю что я не ваш конкурент так как работаю в другой стране и создаю узкоспециализированные решения. Заранее спасибо за ответ.

С Уважением, Василий.
Оставьте свое сообщение

См. также

Оффлайн-режимы в Simple WMS: полностью автономные приложения, отложенная отправка, гибридный режим 18

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

Теперь Simple WMS имеет базу данных и можно создавать конфигурации для полностью автономных приложений, не зависящий от веб-сервера на стороне учетной системы, в выполнением логики на устройстве а не на стороне веб сервера. А также можно реализовывать другие гибридные режимы работы с использованием хранилища устройства. Тестировалось на платформе 1С 8.3.13.1865.

15.08.2019    1761    informa1555    3       

Как разработать успешное мобильное приложение на платформе 1С 36

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Мобильные приложения становятся все популярнее, но многие программисты считают, что создавать их не сложнее, чем настольные. В итоге появляются продукты, которые не приносят разработчикам ни удовольствия, ни денег. Какие особенности надо учитывать при разработке мобильного приложения, в главное – как добиться, чтобы оно было прибыльным, участникам конференции Infostart Event 2018 Education рассказал руководитель отдела мобильной разработки на платформе 1С в компании 1С-Рарус Никита Бакшеев.

09.08.2019    3991    Baksheev-Nikita    3       

Большой пакет дополнений для Simple WMS 8

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

Обычно описание дополнений я публикую в конце основной статьи, но сейчас накопился большой пакет изменений о котором хотелось бы рассказать более развернуто. В этом дополнении: работа с произвольными таблицами везде в приложении, переработанный механизм запуска процессов из процессов и другое. Тестировалось на 8.3.13.1865

15.07.2019    1482    informa1555    2       

Мобильный клиент 1С 45

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Мобильный клиент 1С только начинает развиваться, поэтому в этой сфере больше вопросов, чем ответов. Но некоторые разработчики уже познакомились с его возможностями и преимуществами. Среди них - руководитель отдела разработок Bilist Дмитрий Шерстобитов, который дал коллегам несколько полезных советов, как работать с мобильным клиентом.

12.07.2019    10113    DitriX    31       

Диеты: Ваш личный проводник в мир здорового питания 5

Статья no Нет файла v8 Развлечения, искусство, спорт Бесплатно (free) Пользователю системы Мобильная разработка

Приложение “Диеты” разработано на платформе 1С 8.3.14. Однако, мы переписали большинство интерфейсов, используя языки HTML, CSS и JavaScript.

04.07.2019    1647    Baksheev-Nikita    5       

Фитнес 2.0. Прокачался по полной! 5

Статья no Нет файла v8 Развлечения, искусство, спорт Бесплатно (free) Пользователю системы Мобильная разработка

Приложение Фитнес преобразилось за счет нового решения, позволяющего нам отойти от использования 1С интерфейсов. Достигать наилучших результатов от тренировок теперь будет еще проще!

29.06.2019    2030    Baksheev-Nikita    13       

Сжатие данных в мобильном приложении 1С:Предприятие 42

Статья Программист Нет файла v8 v8::Mobile 1cv8.cf УУ Розничная торговля Бесплатно (free) Мобильная разработка

Эту небольшую статью я планировал опубликовать у себя на сайте, чтобы такие любители мобильного приложения от 1С:Предприятие, как я, могли использовать её без дополнительно потраченных двух дней на поиски вариантов написания алгоритма. Во-первых, хотел сказать, что я небольшой разработчик, который начинал делать свои первые шаги ещё на заре правления "Семерки". Новая платформа версии 8 была как глоток свежего воздуха - бодрящий и легко воспринимаемый организмом. Я был очень удивлен, да что сказать, до сих пор удивляюсь как элементарные вещи можно делать на 1С, и как это стремно делается на других языках программирования. Во-вторых, обилие разнообразных интерпретаций платформы позволяет развернуться на все 360 градусов, захватив своими проектами, наверное, любые ветки бизнеса. Так вот, о небольшом нюансе работы с новой мобильной платформой я и хотел рассказать... Сам додумался, так сказать.

27.05.2019    7558    yarsort    27       

Расширение конструктора мобильного рабочего места для варианта "клиент 1С+RDP" (для любых wi-fi терминалов). Экосистема решений Simple WMS 20

Статья Программист Бизнес-аналитик Руководитель проекта Нет файла v8::УФ УУ Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Бесплатно (free) Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Универсальные функции Мобильная разработка

Развитие проекта «Конструктор мобильного клиента на Android» https://infostart.ru/public/976636/ для устройств не на Андроиде (работающих в режиме RDP). В отличие от варианта Android работа на терминалах происходит в режиме 1С:Предприятие через RDP а конфигурации мобильных клиентов полностью совместимы для обоих версий. Т.е. конфигурация единая, создается один раз и ее может читать как Android -устройство, так и 1С-клиент на RDP без необходимости какой либо переделки.

05.02.2019    5817    informa1555    0       

Мобильное приложение, управление фокусом ввода. Тем, кто не смог победить с помощью "НачатьРедактированиеЭлемента" 48

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Для того, чтобы пользователю не приходилось тапать по полю ввода, чтобы ввести в него значение с клавиатуры (или сканера штрихкода, что весьма актуально), разработчики 1С реализовали функцию "НачатьРедактированиеЭлемента", которая, по-хорошему, должна это делать программно. Однако, отрабатывает эта функция некорректно...

24.12.2018    5511    Crazy_Max    20       

Мобильная платформа 1С - практическая разработка -1

Статья Программист Нет файла v8::Mobile Украина Android Бесплатно (free) Мобильная разработка

Несколько слов о актуальных возможностях мобильной платформы 1С.

12.12.2018    4719    user605751_svyatishenko.aleksey    10       

Публикация приложения на платформе 1С в App store и Play market 107

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Инструкция о том, как опубликовать свое приложение в App store и Play market.

20.10.2018    10187    fr13    15       

Максимально простая установка своего мобильного приложения(базы) 1С на iOS (iPhone) 67

Статья Программист Нет файла v8::Mobile Россия iOS Бесплатно (free) Мобильная разработка

Установка на iPhone своей мобильной конфигурации, опубликованной на веб-сервере, без аккаунта разработчика Apple Store и без танцев с бубном? Легко!

09.10.2018    12515    Rabot    44       

Как мы проводим свободное время - 2. Хакатон по технологии BlockChain и интеграция в корпоративный мессенджер ZERO 12

Статья Программист Нет файла v8::Mobile Бесплатно (free) Практика программирования Мобильная разработка

Продолжая развивать наш мессенджер и исследовать технологию BlockChain, которой были посвящены наши хакатоны, мы постепенно подбираемся к пониманию того, зачем это все нам надо (и , возможно, вам, уважаемые читатели, тоже). P.S.: Текст содержит интимные подробности, которые могут вызвать "течь крыши" из-за сопутствующей тематике сложности, так что будьте осторожны и храните себя.

25.06.2018    6787    starik-2005    3       

Boss - комплексное решение для управления бизнесом 3

Статья Пользователь Руководитель проекта Нет файла v8::Mobile УУ Бесплатно (free) Мобильная разработка

Любому, даже самому малому бизнесу для оценивания положения дел, для дальнейшего процветания и роста необходим полный и строгий учет. Boss позволит вести ваше дело и отслеживать его состояние - быстро и просто. Вы сможете: оформлять заказы и продажи, выставлять счета на оплату, делать закупки, проводить инвентаризацию и переоценку, вести учет товаров и контролировать остатки на складе и в магазинах, вести взаиморасчеты с клиентами и поставщиками, отслеживать долги, вести учет денег в кассах/на счетах в нескольких валютах, формировать прайс-листы, отражать в учете расходы и доходы, оценивать прибыль - кажется, весь функционал приложения трудно уместить в одной статье :)

22.06.2018    5831    Baksheev-Nikita    4       

slendergo - стройные идут! 3

Статья no Нет файла v8::Mobile Домашние учет и финансы Android Бесплатно (free) Мобильная разработка

Вам необходимо приложение для подсчета БЖУ и дальнейшей корректировки своего рациона питания? И оно должно работать, даже когда рядом нет интернет-соединения? Slender Go - то, что вам действительно подойдет, а также обязательно понравится как по функционалу, так и по дизайну.  Достаточно скачать это приложение по счетчику калорий к себе на Android и запустить его, как первый намеченный шаг к сбросу или набору веса уже будет сделан.

05.06.2018    6101    pavelru4    12       

Мобильный клиент: установка, отладка, сборка под Android" 134

Статья Программист Нет файла v8::Mobile Android Бесплатно (free) Мобильная разработка

Это статья для тех, кто интересуется мобильным клиентом. Мы рассмотрим установку мобильного клиента на Android, подключение отладки и сборку apk приложения в конфигурации «Сборщик мобильных приложений».

10.03.2018    40671    davealone    40       

Создание мобильного клиента 1С на Android с использованием HTTP-сервисов 144

Статья Программист Нет файла v8 v8::Mobile Android Бесплатно (free) Внешние источники данных Мобильная разработка

Краткий курс по созданию мобильного приложения на Android, который связывается с сервером 1С через HTTP-сервис. Публикация рассчитана на тех, кто хорошо знаком с программированием на платформе 1С и владеет основами программирования на платформе Android (умеет создавать Activity и знает, как устроена структура проекта).

03.11.2017    26172    cdiamond    15       

«Встречают по одежке...» vs «Интерфейс и мобильная платформа» 74

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Мобильные приложения на платформе 1С набирают популярность, их становится все больше. Как выиграть в этой конкурентной борьбе и получить много постоянных и довольных клиентов? Поскольку все функции, необходимые для учета торговли уже реализованы в существующих приложениях - остается "брать" пользователей удобным и простым для понимания интерфейсом. Но так ли это просто? Разберемся на примере нашего приложения «Boss: 1С Торговля + 1С Склад».

26.06.2017    32229    aleksandra_krivenok    25       

Writer 8

Статья no Нет файла v8::Mobile Развлечения, искусство, спорт Домашние учет и финансы Android Бесплатно (free) Мобильная разработка

Writer - это приложение для всех, кто любит писать. Записывайте свои статьи, рассказы, идеи и мечты красиво!

21.06.2017    11094    FEAS88    19       

Мобильная платформа 1С. Обо всём и ни о чём 90

Статья Программист Нет файла v8::Mobile Бесплатно (free) Мобильная разработка

Предлагаемая статья условно делится на две части: • В первой части я собираюсь напомнить вам о том, что вообще собой представляет мобильная платформа не только в контексте разработки и программирования как такового. Избавить вас от страхов перед мобильной платформой. Это – одна из основных целей статьи. • А во второй части я хотел бы вернуться к тем «подводным камням», которые пока еще есть в мобильной платформе. И вернуть вам этот страх обратно.

26.05.2017    28337    DitriX    44       

Мобильное приложение 1С и приложение Java. Совместная работа через Intent. Часть 3. Передаем данные из 1С в приложение Java 35

Статья Программист Нет файла v8::Mobile Россия Android Бесплатно (free) Практика программирования Мобильная разработка

Пишем два приложения - конфигурацию на мобильной платформе 1С и приложение Java Android Studio. На примере рассматриваем совместное использование двух приложений через Intent. Публикация состоит из 3 частей: Часть 1. Запуск приложения Java из 1С Часть 2. Получаем данные в 1С из приложения Java Часть 3. Отправляем данные в приложение Java из 1С.

24.04.2017    14201    user621724_Dimav1979    23       

Мобильное приложение 1С и приложение Java. Совместная работа через Intent. Часть 2. Получаем данные в 1С из приложения Java 36

Статья Программист Нет файла v8::Mobile 1cv8.cf Россия Android Бесплатно (free) Мобильная разработка

Пишем два приложения - конфигурацию на мобильной платформе 1С и приложение Java Android Studio. На примере рассматриваем совместное использование двух приложений через Intent. Публикация состоит из 3 частей: Часть 1. Запуск приложения Java из 1С Часть 2. Получаем данные в 1С из приложения Java Часть 3. Отправляем данные в приложение Java из 1С.

20.04.2017    17495    user621724_Dimav1979    20       

Отображение картинок в рамках мобильной платформы 16

Статья Программист Нет файла v8::Mobile Windows Бесплатно (free) Работа с интерфейсом Мобильная разработка

Решение проблемы с отображением картинок в формате JPEG в рамках мобильной платформы. Показ "тяжелых" картинок и анимации.

19.04.2017    13646    fr13    7       

Разработка мобильного приложения. Запрещаем открытие просмотра строки табличной части в новом окне, редактирование табличной части из формы документов 21

Статья Программист Нет файла v8::Mobile Бесплатно (free) Практика программирования Мобильная разработка

Думаю, все, кто писал приложения на мобильной платформе, столкнулись с такой особенностью, что редактирование строк табличной части осуществляется в новом окне. Кто - то решил эту проблему, кто - то смирился. Выкладываю своё видение решения этой задачи.

28.03.2017    16851    agent00mouse    18       

Не все почтовые клиенты одинаково полезны 2

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

Тем, кто столкнулся с проблемой отображения текста в сообщениях электронной почты на мобильных почтовых клиентах.

27.10.2016    8347    alexander.v.kozhukhov    0       

Публикация конфигурации мобильного приложения на стороннем web-сервере 21

Статья Программист Нет файла v8 v8::Mobile Россия Бесплатно (free) Мобильная разработка

Как разработчику вручную опубликовать конфигурацию мобильного приложения на веб-сервере в Интернете.

26.10.2016    15487    alexander.v.kozhukhov    5       

Отладка конфигураций на мобильной платформе 107

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

Настройка и подключение отладчика для отладки конфигураций на мобильной платформе.

25.09.2016    34926    spezc    44       

Включение обновления мобильных конфигураций via http 37

Статья Программист Нет файла v8 Android Бесплатно (free) Мобильная разработка

Включение возможности быстрого обновления конфигурации мобильной платформы для конечного приложения через http.

10.05.2016    14520    SirStefan    11       

Арифметический тренажер 16

Инструменты и обработки no Конфигурация (md, cf) v8 Россия Android Бесплатно (free) Мобильная разработка

Программа позволяет создавать и выполнять арифметические упражнения различной сложности.

1 стартмани

08.05.2016    11264    van_za    3       

Фитнес – твой личный тренер в зале и дома 57

Статья no Нет файла v8 Развлечения, искусство, спорт Бесплатно (free) Пользователю системы Мобильная разработка

Хочешь быть здоровым, прекрасно выглядеть и неустанно стремишься к совершенству? Фитнес поможет достигнуть реальных результатов на пути к идеальной фигуре и здоровому телу.

15.04.2016    31311    Baksheev-Nikita    54       

Отображение рекламы в мобильном приложении 1С 54

Статья Программист Нет файла v8 Windows Бесплатно (free) Мобильная разработка

Краткий how-to по настройке новой "фичи" мобильной платформы

05.03.2016    9732    vano-ekt    0       

Работа с ftp из мобильного приложения 1С 53

Статья Программист Нет файла v8 Android Бесплатно (free) Мобильная разработка

Работа с ftp из мобильного приложения 1С с использованием сторонней программы

05.11.2015    20271    NekoZver    22       

Сравнение производительности FBA Toolkit c мобильной платформой 1С 8.3 6

Статья Программист Нет файла v8 Android Бесплатно (free) Мобильная разработка

В статье произведен сравнительный анализ производительности при работе с локальной базой мобильного приложения

17.09.2015    10707    begsha    2       

Горизонты мобильной платформы 1С 128

Статья Программист Нет файла v8 1cv8.cf Android Бесплатно (free) Мобильная разработка

Однажды я изучил комментарии к моим курсам по мобильной платформе, чтобы понять: как люди видят мобильную платформу, как хотят ее использовать? В результате рейтинг получился таким: большая часть говорила, что они видят разработки под мобильную платформу в качестве инструмента для инвентаризации, на втором месте – заказы, на третьем – монитор руководителя. Все остальное было практически в единичных экземплярах. Я увидел, что есть проблема, которая заключается в том, что мы привыкли работать со стационарной 1С, привыкли к ее архитектуре, к методам работы с ней. И когда 1С-нику говорят: «установи мне 1С» – это сразу подразумевает под собой: «приди, настрой мне принтер, поставь антивирусник, проверь, не битый ли у меня жесткий диск». И мы это принимаем, как должное. А вот с мобильными телефонами все совсем не так.

02.06.2015    31643    DitriX    39       

Как с помощью конкретной технологии решить конкретную задачу? Или опыт разработки мобильного приложения на платформе 8.3. 13

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

Если существует технология и задача, то ответ напрашивается сам собой – взять и решить поставленную задачу. Именно об этом я бы и хотел рассказать вам в этой статье. Сравнительно недавно передо мной встала задача автоматизации деятельности торговых агентов крупного оптового дистрибьютора. Казалось бы, что может быть проще? Существует множество готовых решений, бери и пользуйся, но все было бы хорошо, если бы не ряд требований заказчика.

31.03.2015    15146    Leo_A    22       

Быстрое прототипирование веб и мобильных приложений 45

Статья Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Мобильная разработка

В статье я хочу рассказать о быстром прототипировании мобильных веб-приложений, а также про их интеграцию с 1С:Предприятием. Сразу оговорюсь, что я ничего не буду говорить про мобильную платформу 1С, я буду касаться только прототипирования гибридных приложений (нативных приложений, использующих веб-технологии) и непосредственно веб-приложений. Данная статья написана по материалам доклада, прочитанного автором на Конференции Инфостарта IE 2014 29-31 октября 2014 года

17.03.2015    16775    antonbezrukov    14       

Мобильная платформа 1С 8.3.6. Что нового? 96

Статья Программист Нет файла v8 Android Бесплатно (free) Мобильная разработка

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

02.03.2015    46404    DitriX    96       

Сказ о том, как мы мобильное приложение писали. Часть 1. Двойной заголовок 69

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Мобильная разработка

Делимся опытом, как мы обходим ограничения мобильной платформы.

31.01.2015    20661    vadnevzorov    50       

Печать с мобильного приложения 42

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Мобильная разработка

В рамках разработки мобильного приложения кладовщика столкнулись с необходимостью печати этикеток для обклейки заказа. В данном посте я поделюсь подходами, которые удалось реализовать для решения поставленной задачи. Так как задача решалась постепенно с разным набором оборудования получилось в результате два метода: Отправка на печать через запущенную сессию 1с на компьютере. Отправка на печать с мобильного приложения.

07.10.2014    20233    DanilaDru    8       

Как я спотыкался в конфигурации "Сборщик мобильных приложений" 13

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Мобильная разработка

Как-то тихо и без особых описаний работы 1С выпустила конфигурацию «Сборщик мобильных приложений», которая призвана стать этаким органайзером для разработки мобильных приложений. В текущей последней версии 1.0.3.17 существует несколько не больших проблем, которые на первый взгляд выглядят как баги.

26.09.2014    25821    rotting    6       

Мобильное приложение "Учет магазина склада" 12

Статья no Нет файла v8 Россия УУ Android Оптовая торговля Учет ТМЦ Бесплатно (free) Мобильная разработка

Простое и удобное мобильное приложение для учета в вашем магазине. Интересная особенность программы – простое создание сети розничных точек. Об этом в этой статье.

02.09.2014    17842    flyer    3       

Управляемая форма списка с данными двух таблиц - иерархического справочника и регистра сведений для мобильной платформы 2

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом Мобильная разработка

Суть проблемы в отсутствии возможности делать запросы на мобильной платформе 8.3 - дерево (иерархия если)/таблица значений, выборка справочника, срез регистра сведений. В остальных клиентах эта проблема легко решается динамическим списком со своим запросом, это не является предметом данной статьи. Если нужна иерархия, то приходится использовать рекурсию. Предлагаю свой рабочий код для тестовой конфигурации. Простой случай без иерархии, надеюсь, рассматривать смысла нет.

16.11.2012    24750    kitaevay    1       

SMS через ActiveSync (бета) 11

Инструменты и обработки Программист Приложение (exe) v8 1cv8.cf 1cv7.md Бесплатно (free) SMS рассылки Мобильная разработка

Отправка SMS с компьютера через смартфоны/коммуникаторы, подключенные через Active Sync.

05.12.2008    12147    105    Salvador Limones    9