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

06.04.16

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Цепочки обновлений релизов 1С
.apk 1,76Mb
1
1 Скачать (1 SM) Купить за 1 850 руб.

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

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

Ссылка на приложение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С v8.3 1С:Конвертация данных Платные (руб)

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

13200 руб.

27.12.2021    38198    108    161    

201

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

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

3000 руб.

03.12.2018    59291    192    103    

172

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

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

2000 руб.

22.04.2019    97226    586    189    

321

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

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

3450 руб.

28.04.2023    9470    15    0    

9

Мобильная разработка Платформа 1С v8.3 Конфигурации 1cv8 Финансовые услуги, инвестиции Управленческий учет Платные (руб)

Мобильное приложение и конфигурация 1С для автоматической торговли на бирже через API Тинькофф банка. Достаточно задать настройки, нажать «Пуск», и робот сам торгует ежедневно.

7000 руб.

25.05.2022    4644    1    0    

6

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

Экспериментальный релиз и простенький скрипт к нему закрывает потребности в любых видах синхронизации между устройствами Simple и между Simple и бек-системами (например 1С). По сути – это очень простой python-скрипт, который можно запустить на доступной машине, сервере или VPS и он будет связывать клиентские устройства между собой и с 1С или другими бек-системами. В самой платформе появилось для этого множество доработок для поддержки стабильного постоянного соединения, докачки больших файлов и работе в фоне. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

23.08.2024    1217    6    informa1555    1    

13

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

В этом релизе собрано много нового из области интерфейса, связи, хранения и важные новые способы управления. Дополнение к основной статье https://infostart.ru/1c/tools/1153616/

1 стартмани

25.06.2024    2607    29    informa1555    0    

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