Мобильное приложение "Оптимальная последовательность обновлений 1C" для android + Нюансы реализации

06.04.16

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

Приложение создано для быстрой оценки трудоёмкости обновления и для определения необходимых релизов.
Позволяет у клиента (offline) определять количество и порядок обновлений.

Скачать файлы

Наименование Файл Версия Размер
Цепочки обновлений релизов 1С
.apk 1,76Mb
1
.apk 1,76Mb 1 Скачать

Синхронизируйтесь, где удобно

Пользуйтесь везде.                   

Ссылка на приложениеplay market 

            

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

Создано приложение исключительно из любопытства к технологиям php, java, soap и благодаря жажде познания )

Поддерживаются конфигурации:

  • "Бухгалтерия Предприятия КОРП 2.0"
    "Бухгалтерия Предприятия 2.0"
    "Бухгалтерия Предприятия 3.0"
    "Управление торговлей 11"
    "Управление торговлей 10.3"
    "Управление производственным предприятием"
    "Управление небольшой фирмой 1.5"
    "Управление небольшой фирмой 1.4"
    "Розница 2.1"
    "Комплексная автоматизация 1.1"
    "Зарплата и Управление Персоналом 3"
    "Зарплата и Управление Персоналом 2.5"

Буду благодарен за комментарии, конструктивную критику и советы!

Неочевидности (для программиста 1С) и этапы реализации

Пару слов уделю выбору именно java для написания приложения (а не мобильной платформы 1С например). Готовое приложение на java вместе с встроеной начальной базой весит 1.7мб, тогда как то же самое на базе 1С от 30мб. Думаю, этого достаточно, но есть ещё и стремление к изучению новых технологий и языков.

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

2) Работа с вебсервисом из java сводится к подключению и использованию класса ksoap2
Вот, например, функция получения новых конфигураций с сервера

public void getNewConfFromServer(Vector<String> arrconf,final DB db) {
        SoapObject soapclient = new SoapObject(NAMESPACE,METHOD_NAME2);
        SoapObject parameters = new SoapObject(NAMESPACE, METHOD_NAME2);
        parameters.addProperty("oldConfArr",arrconf);
        soapclient.addProperty(METHOD_NAME2, parameters);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(soapclient);
        HttpTransportSE httpTransportSE = new HttpTransportSE(URL);
        try {
            httpTransportSE.call(METHOD_NAME2, envelope);
            SoapObject response=(SoapObject)envelope.bodyIn;
            Object property= response.getProperty("return");
            Vector vector = (Vector)property;
            for(int ii=0;ii<vector.size();ii++){
                SoapObject response1 =(SoapObject)vector.get(ii);
                int idconf = (int)response1.getProperty("id");
                String nameconf = (String)response1.getProperty("name");
                String fnameconf = (String)response1.getProperty("fname");
                Log.v("soap""idconf = " + idconf + " name=" + nameconf+ " fname=" + fnameconf);
                db.addNewConf(idconf, nameconf, fnameconf);
                getDataConfFromServer(String.valueOf(idconf)"0", db);
            }
        catch (IOException e) {
            e.printStackTrace();
        catch (XmlPullParserException e) {
            e.printStackTrace();
        }
    }

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

Thread thread = new Thread() {
public void run () {

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

а) Создаём и наполняем базу SQLite (я для этого использовал SQLiteStudio). Удобно в случае небольшой начальной базы, или если она нужна нам для тестирования

Можно пойти и другим путём: скопировать заполненную базу с устройства (после синхронизации с сервером). Это удобно, когда начальная база огромна (например, перед публикацией готового приложения).

Скопировать базу можно с помощью adb, набрав в командной строке (устройство естественно должно быть подключено в режиме отладки)

C:\WINDOWS\system32>adb pull /data/data/ПОЛНОЕИМЯВАШЕГОПРИЛОЖЕНИЯ/databases/1cvers.db C:\

в данном случае база скопируется в корень C:\  (лучше все же копировать не в корень диска С:\ т.к. один раз потратил полдня из-за отсутствия прав на запись туда) 

б) Создаём папку assets в структуре нашего проекта и кладём туда файл базы

2

в) В классе, который работает с БД (а работу с БД имеет смысл выделить в отдельный класс) пишем что-то вроде этого

boolean dbexist = checkdatabase();
if (dbexist) {
Log.i("Database","База данных существует");
opendatabase();
else {
Log.i("Database","База данных не существует!");
createdatabase();
}

и функции проверки наличия базы и копирования базы из файла

private boolean checkdatabase() {
            boolean checkdb = false;
            try {
                String myPath = DB_PATH + DB_NAME1;
                File dbfile = new File(myPath);
                checkdb = dbfile.exists();
            catch(SQLiteException e) {
                Log.i("Database""База данных не существует!");                
            }
            return checkdb;
        }

        private void copydatabase()
        {
            Log.i("Database","Новая база данных копируется на устройство!");
            byte[] buffer = new byte[1024];
            OutputStream myOutput = null;
            int length;
            // Открываем локальную БД как входящий поток
            InputStream myInput = null;
            try
            {
                myInput = mycontext.getAssets().open(DB_NAME1);
                // Передаем данные из inputfile в outputfile
                myOutput = new FileOutputStream(DB_PATH + DB_NAME1);
                while((length = myInput.read(buffer)) 0)
                {
                    myOutput.write(buffer, 0, length);
                }
                myOutput.close();
                myOutput.flush();
                myInput.close();
                Log.i("Database","Новая база данных скопирована на устройство");
            }
            catch(IOException e)
            {
                e.printStackTrace();
            }
        }

Как видно, в коде встречается Log.i , намеренно оставил логи, чтобы подчеркунуть их важность для отладки. особенно для заядлого одинэсника, привыкшего держать всё под контролем с помощью отладчика.

 Спасибо за внимание!

P.S.  В java я недавно, поэтому если что приврал, поправьте в комментариях.

Если общественности будет интересно, то опубликую вторую часть, где планирую описать:

  1. Публикацию подписанного приложения
  2. Вставка рекламмы в приложение
  3. Публикация на google play
  4. То, что будет интересно народу и мне.

the end

android Обновления Цепочка Релизы Версии

См. также

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн. Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

2880 руб.

03.12.2018    54601    137    102    

161

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    33275    80    157    

174

"Мобильный ТСД" - инвентаризация и сбор штрихкодов для iOS и Android

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный терминал сбора данных для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    91931    511    186    

293

Магазин 15 - приемка товара по штрихкодам или инвентаризация в торговом зале

Логистика, склад и ТМЦ Мобильная разработка Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

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

12950 руб.

30.05.2023    3387    2    0    

4

Работа с графикой в браузере (SimpleWEB). Векторный редактор

Мобильная разработка WEB-интеграция Мобильная платформа Абонемент ($m)

В SimpleWEB добавились средства для работы с графикой и отслеживание событий мыши, в онлайн редактор https://seditor.ru:1555/ добавился «Векторный редактор» на этом API. Теперь можно нарисовать схемы складов на ПК, сделать карты (*.sug-файлы) для мобильной платформы SimpleUI, выводить данные из 1С в графическом виде. Таким образом, API для работы с векторными файлами теперь есть и в веб- и в мобильной платформе, а также средства для создания и редактирования векторных файлов есть тоже в обеих платформах.

1 стартмани

20.03.2024    1464    0    informa1555    1    

39

Зачем нам 1С:Элемент

Мобильная разработка Языки и среды Бесплатно (free)

Flutter может быть использован с 1С:Предприятием для разработки кроссплатформенных мобильных приложений, обеспечивая единый интерфейс и функциональность на устройствах под управлением iOS и Android. Это позволяет создавать приложения с высокой производительностью благодаря использованию собственного движка рендеринга Flutter. Интеграция Flutter с 1С:Предприятием позволяет создавать мобильные приложения любого уровня сложности, интегрировать их в корпоративные информационные системы, а также реализовывать бизнес-логику

19.03.2024    6803    ROk_dev    56    

37

JavaScript в Simple

Мобильная разработка Бесплатно (free)

В SimpleUI и SimpleWEB, наряду с обработчиками на python и онлайн (1С и т.д.) добавляется интерпретатор JavaScript. В андроид платформе он скорее играет на поле python, т.к. является оффлайновым решением для самостоятельной обработки и расширяет аудиторию разработчиков для разработки самостоятельных решений. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

12.02.2024    1626    informa1555    0    

25
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Ibrogim 1311 05.03.16 11:02 Сейчас в теме
2. WizaXxX 360 01.04.16 10:27 Сейчас в теме
Жду вторую часть. Хоть этой информации и полно на просторах сети, тут её не так много, и лишним не будет.
3. Ibrogim 1311 01.04.16 12:35 Сейчас в теме
(2) WizaXxX, Как только будет время. Сейчас дорабатываю онлайн версию
Оставьте свое сообщение