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

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

Разработка - Системная интеграция - Внешние источники данных

Android Kotlin HTTP Retrofit

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

На Инфостарте есть несколько публикаций на тему создания приложений для Android и его связке с 1С через Web-сервис. Но на дворе сейчас конец 2017 года, и пришла пора освежить свои навыки.

Во-первых, с выходом Android Studio 3.0.0 в корпорации Google уже окончательно определились с будущим основным языком программирования, и это будет Kotlin. В данной публикации будем использовать именно этот язык. Он совместим с Java и с переходом у вас никаких проблем не будет, получите только позитивные эмоции.

Во-вторых, не стоит вкладывать свои силы в разработку Web-сервисов. Этому есть несколько причин:

  • На платформе 1С 8.3 им на смену пришли HTTP-сервисы
  • Протокол SOAP, используемый веб-сервисами дорого обходится и для сервера, и для клиента
  • Для платформы Android нет хорошей библиотеки для работы с SOAP (по крайней мере бесплатных). Библиотека ksoap2 хороша ровно до того момента, когда вы от простых примеров перейдёте к реальным задачам и на сложных структурах данных поймаете Double ID Exception, для лечения которого надо обладать исключительными знаниями протокола, схемы XML-разметок, рыться в исходниках библиотеки. Оно вам надо? Парсинг полученных данных в ksoap - это отдельный ад программиста
  • Для создания клиента HTTP-сервисов существуют замечательные библиотеки, в том числе для платформы Android
  • В конце концов, при помощи HTTP-сервиса в 1С вы можете сами написать собственную реализацию протокола SOAP

В данной публикации я не буду подробно рассматривать создание HTTP-сервиса, т.к. на эту тему уже есть публикации, например эти: HTTP-сервисы для тех, кто ничего не понимает в WEB и HTTP-сервисы в 1С Предприятие 8.3 . В качестве упражнения, руководствуясь этими публикациями, создайте самостоятельно HTTP-сервис с базовым URL "wms" и шаблоном /tables/{ИмяТаблицы}, возвращающий список складов в формате JSON. Формат JSON лучше XML хотя бы тем, что в нём меньше букв. Код модуля сервиса должен у вас получиться примерно такой:

Функция ТаблицыПолучить(Запрос)
	
	ИмяТаблицы = Запрос.ПараметрыURL["ИмяТаблицы"];
	Данные = Новый ЗаписьJSON;
	Данные.ПроверятьСтруктуру = Ложь;
	Данные.УстановитьСтроку(Новый ПараметрыЗаписиJSON(,Символы.Таб));
	Данные.ЗаписатьНачалоОбъекта();
	Данные.ЗаписатьИмяСвойства(ИмяТаблицы);
	Данные.ЗаписатьНачалоМассива();
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	Склады.Код,
	               |	Склады.Наименование КАК Наименование
	               |ИЗ
	               |	Справочник.Склады КАК Склады
	               |ГДЕ
	               |	Склады.ПометкаУдаления = ЛОЖЬ
	               |	И Склады.ЭтоГруппа = ЛОЖЬ";
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		Данные.ЗаписатьНачалоОбъекта();
		Данные.ЗаписатьИмяСвойства("id");
		Данные.ЗаписатьЗначение(Выборка.Код);
		Данные.ЗаписатьИмяСвойства("name");
		Данные.ЗаписатьЗначение(Выборка.Наименование);
		Данные.ЗаписатьИмяСвойства("isFifo");
		Данные.ЗаписатьЗначение(Ложь);
		Данные.ЗаписатьКонецОбъекта();
	КонецЦикла;	

	Данные.ЗаписатьКонецМассива();
	Данные.ЗаписатьКонецОбъекта();
	Тело = Данные.Закрыть();
	Ответ = Новый HTTPСервисОтвет(200);
	Ответ.УстановитьТелоИзСтроки(Тело, КодировкаТекста.UTF8);
	
	Возврат Ответ;
	
КонецФункции

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

В браузере вы должны получить от сервиса такую структуру данных в формате JSON, где "stores" - это параметр, передаваемый в адресной строке вместо {ИмяТаблицы}, сохраните её в блокноте, пригодится нам в дальнейшем:

{
	"stores": [
		{
			"id": "000000008",
			"name": "Изолятор брака",
			"isFifo": false
		},
		{
			"id": "000000007",
			"name": "Производственный склад",
			"isFifo": false
		},
		{
			"id": "000000002",
			"name": "Склад готовой продукции",
			"isFifo": false
		}	]
}

А теперь переходим к клиенту: в Android Studio 3 создайте новый проект, включите поддержку языка Kotlin. Укажите минимальный SDK 25 уровня. В файле build.gradle вашего проекта добавьте следующие зависимости:

dependencies {
    // эти зависимости уже могут быть в вашем проекте, их не трогайте:
    implementation fileTree(include: ["*.jar"], dir: "libs")
    implementation "com.android.support:appcompat-v7:26.+"
    implementation "com.android.support:design:26.+"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
   
    // а эти зависимости вы добавляете сами:
    implementation "com.squareup.retrofit2:retrofit:2.+"
    implementation "com.squareup.retrofit2:converter-gson:2.+"
    implementation "org.jetbrains.anko:anko-sdk25:$anko_version"
    implementation "org.jetbrains.anko:anko-sdk25-listeners:$anko_version"
    implementation "org.jetbrains.anko:anko-commons:$anko_version"
}

Последними строками в файле конфигурации вы добавляете библиотеку Retrofit и парсер GSON, который нам понадобиться в проекте, а также очень полезные расширения языка Kotlin для Android под названием Anko - с ним ваш код будет еще более кратким и понятным.

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

package test.App

import android.app.Service
import android.content.Intent
import android.os.Binder
import android.os.IBinder
import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

class BLService : Service() {

    private val mUrl = "http://server/Database1c/hs/wms"  // Базовый URL в 1С указан как wms
    lateinit private var rf: Retrofit   // Объект, который содержит все настройки нашего
                                        // соединения с сервером и выполняет всю работу
    lateinit private var wms: WmsApi    // Это API нашего HTTP-сервиса, напишем его позже

    private var binder = BLBinder()     // Нужен для доступа к сервису из любой Activity

    inner class BLBinder : Binder() {
        fun getService(): BLService? {
            return this@BLService
        }
    }

    override fun onCreate() {

        super.onCreate()

        val okHttpClient = OkHttpClient.Builder()
                .addInterceptor(BasicAuthInterceptor("Иванов", "СуперПароль")) 
                                // напишем этот Interceptor позже, нужен для авторизации в 1С
                .build()
        rf = Retrofit.Builder()
                .baseUrl(mUrl)
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .build()
        wms = rf.create(WmsApi::class.java)

    }

    // обязательные переопределяемые методы:
    override fun onBind(intent: Intent?): IBinder {
        return binder
    }

    override fun onUnbind(intent: Intent?): Boolean {
        return true
    }

}

Не могу удержаться и покажу, как теперь стало просто запускать сервис из главной Activity при помощи расширения языка Anko:

override fun onCreate(savedInstanceState: Bundle?) {

        super.onCreate(savedInstanceState)
        // здесь может быть еще код

        // запуск сервиса с помощью расширения языка Anko:  
        startService<BLService>()
}

По умолчанию Retrofit не использует авторизацию на HTTP-сервере, но к счастью его легко добавить. Для этого нам необходимо написать класс для авторизации на сервере 1С методом BASIC, так называемый интерцептор, вот его полный код:

package test.App

import okhttp3.Credentials
import okhttp3.Interceptor
import okhttp3.Response

class BasicAuthInterceptor(user: String, password: String) : Interceptor {

    private val credentials : String = Credentials.basic(user, password)

    override fun intercept(p0: Interceptor.Chain?): Response {
        val request = p0!!.request()
        val authenticatedRequest = request
                .newBuilder()
                .header("Authorization", credentials)
                .build()
        return p0.proceed(authenticatedRequest)
    }

}

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

Теперь необходимо написать интерфейс API нашего HTTP-сервиса. Для начала возьмем блокнот и посмотрим на структуру данных, полученную ранее. Этот файл поможет нам создать классы Java, в которые будут завёрнуты наши данные. В случае использования ksoap2 вы бы на этом пункте хорошенько вспотели. Но ничего не бойтесь, с нами Retrofit, поэтому идем на сайт www.jsonschema2pojo.org/ и в левой его части вставляем содержание вашего JSON-пакета. В правой части заполняем как на рисунке:

На основе введеных данных этот сайт бесплатно сгенерирует нам два класса на языке Java в 2 файлах:

-----------------------------------test.App.Store.java-----------------------------------

package test.App;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Store {

@SerializedName("id")
@Expose
private String id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("isFifo")
@Expose
private Boolean isFifo;

public String getId() {
  return id;
}

public void setId(String id) {
  this.id = id;
}

public String getName() {
  return name;
}

public void setName(String name) {
this.name = name;
 }

public Boolean getIsFifo() {
return isFifo;
 }

public void setIsFifo(Boolean isFifo) {
  this.isFifo = isFifo;
}

}
-----------------------------------test.App.Stores.java-----------------------------------

package test.App;

import java.util.List;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class Stores {

@SerializedName("stores")
@Expose
private List<Store> stores = null;

public List<Store> getStores() {
  return stores;
}

public void setStores(List<Store> stores) {
  this.stores = stores;
}

}

Добавьте эти 2 файла в свой проект, и через меню Code -> Convert Java file to Kotlin file переведите на язык Kotlin, в результате получатся совсем простые классы, избавленные от геттеров и сеттеров, которые в языке Kotlin вдобавок еще можно объединить в одном файле:

package test.App

import com.google.gson.annotations.Expose
import com.google.gson.annotations.SerializedName

class Store {

    @SerializedName("id")
    @Expose
    var id: String? = null
    
    @SerializedName("name")
    @Expose
    var name: String? = null
    
    @SerializedName("isFifo")
    @Expose
    var isFifo: Boolean? = null

}

class Stores {

    @SerializedName("stores")
    @Expose
    var stores: List<Store>? = null

}

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

Добавим в наш сервисный класс BLService переменную для хранения массива полученных из 1С данных:

var dbStores : Stores? = null

А теперь переходим непосредственно к написанию интерфейса API. Звучит угрожающе, но на самом деле для нашего HTTP-сервиса это будет такой простой код;

package test.App

import retrofit2.Call
import retrofit2.http.GET

interface WmsApi {

    @GET("table/stores")
    fun getStores() : Call<Stores>

}

Полный URL в браузере, соответствующий функции getStore() выглядел бы с учётом вышенаписанного кода так: http://server/Database1c/hs/wms/table/stores. Функции в интерфейсе всегда должны возвращать тип Call с указанием получаемого от HTTP-сервиса класса-обертки в угловых скобках. Параметры в строке @GET можно точно так же как в 1С заключать в фигурные скобки и указывать их в параметре функции, например вот так:

interface GitHubService {
  @GET("users/{user}/repos")
  fun listRepos(@Path("user") user: String) : Call<List<Repo>>
}

Интерфейс API инициализируется в коде нашего класса BLService такой строкой:

wms = rf.create(WmsApi::class.java)

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

dbStores = wms.getStores().execute().body()

До скорых встреч!

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Mi11er 82 03.11.17 09:33 Сейчас в теме
Буквально месяц назад, загорелся такой идеей, сделать для андройда что то похожее, но потом бысро понял, что пока что не хватит навыков по Java, спасибо за статью =)

Будем учить =) и разбираться. Как раз впереди для этого 3 выходных.
2. Dzenn 415 03.11.17 10:47 Сейчас в теме
В этой публикации прекрасно всё. За исключением меня, не шарящего в andriod.
kolessov_a; Lyolik; Jeka44; zannv; maksa2005; zhenianik; AlexSvt; Марго; Liris; Nuobu; AlexKo84; Muzik92; dj_serega; user597616_i.d.kravchenko; ZUL_MTFKA; DrAku1a; KroVladS; гыук320; Сурикат; +19 Ответить
3. ylyas 25 03.11.17 12:21 Сейчас в теме
Вопрос автору.
А чем Java оказался плох?
Или в чем, в данном случае(для данной задачи) профит Kotlin??
4. cdiamond 176 03.11.17 12:42 Сейчас в теме
(3) В моем реальном проекте количество написанного кода сократилось примерно в 2 раза, он стал хорошо читабельным, потому что издалека напоминает мне Object Pascal (Delphi), которым я увлекался в юности. Кто-то видит в нём похожесть на C# и даже на Swift.
Ну и как я сказал в преамбуле - Гугл официально взял курс на Kotlin, а это значит что в скором времени официальная документация и курсы по программированию на Android будут переписаны на этом языке, а Java останется в роли поддержки старого кода.
5. ylyas 25 03.11.17 12:59 Сейчас в теме
(4)
Это с точки зрения удобства разработчика. А с точки зрения эксплуатации самого решения, реализованного на kotlin? есть ли преимущества перед JAVA? Производительность, устойчивость, отсутствие проблемы утечки памяти? или что то еще...
6. cdiamond 176 03.11.17 13:06 Сейчас в теме
(5) Kotlin транслируется в байт-код виртуальной машины ART, так что никаких принципиальных отличий от Java пока нет, кроме небольшого увеличения размера рантайм-библиотек + подключаемые расширения языка. В случае изготовления интерфейса без XML-разметки с помощью Anko значительно возрастатет скорость генерации интерфейса. Так что с утечками бороться точно так же как в Java. Но больше всего доставляет null safety.
7. ltfriend 546 04.11.17 10:16 Сейчас в теме
(4) То, что kotlin теперь официально включен в новую версии android studio не означает, что Гугл сделало его основным. Да и общего с java у него только то, что он генерирует тот же байт код для jvm. Соответственно ни на java, ни на c# (который создавался под влиянием java и также имеет С подобный синтаксис) котлин не особо похож. А вот со swift'ом действительно очень схожий синтаксис.
8. victor_k 04.11.17 18:19 Сейчас в теме
Слабинько, да и похоже муторно, что то стоящее сделать...
9. Brawler 472 05.11.17 10:38 Сейчас в теме
Точно так же как и для Web-сервисов, я не рекомендую вам писать бизнес-логику в модуле HTTP-сервиса, так как в нём отсутствует проверка кода на ошибки. Я вам привел плохой пример исключительно для простоты изложения. Вместо этого старайтесь максимально переносить свой код в общие модули.


Сталкивались с этой бородой уже.
Это фича такая или ошибка в платформе?
Если фича, то по каким вразумениям она сделана?
Если ошибка, в 1С кто-то писал?
10. smit1c 105 08.11.17 13:05 Сейчас в теме
Если с 0 учить программирование под Андроид, то лучше начинать с JAVA или всё таки Kotlin ?
11. Mi11er 82 08.11.17 14:12 Сейчас в теме
(10)
Думаю что то вроде того
JAVA + ООП -> Kotlin

Хотя Kotlin может быть полностью сольным языком в проекте.
12. Dementor 720 08.11.17 15:14 Сейчас в теме
(10) Начинать проще с языка, на котором есть учебники для начинающих. Сейчас это Java. В будущем, возможно, появятся учебники на Kotlin. А вы уже сами решайте когда хотите учить программирование для Android - сейчас или в будущем. Рекомендую startandroid.ru
Stan; smit1c; +2 Ответить
13. ylyas 25 20.11.17 10:14 Сейчас в теме
кстати вопрос.
а ошибки у вас не выдает вот в этом месте?? : .baseUrl(mUrl)
у меня ,например,ретрофит "хочет" чтобы базовый URL заканчивался слешем.
у вас, выше по тексту если смотреть - окончание без слеша...
14. ylyas 25 20.11.17 18:48 Сейчас в теме
И да, реализовал таки тоже самое на JAVA в андроид студио 2.3...
Особого увеличения кода не увидел. Разницу только в нотации увидел.
Для меня,например, менее очевидны объявления переменных в Kotlin.
Не знаю. мое мнение, что Kotlin - прослойка между Java и разработчиком.. не особо нужная..
Пока вот так
15. 🅵🅾️🆇 14.03.18 14:44 Сейчас в теме
(0) > Google взял курс на Kotlin

Не совсем так, многое (включая и интерфейс будующей ос фуксия и реклама, которая и делает им основной доход) делается на flutter + dart.
Флаттер, кстати, позволяет просто делать очень шустрые приложения сразу под ведро и огрызок. Так что извращенцы любители JS могут не грустить, а помаленьку переучиваться.

Так что немного покривили душой. А так статью в закладки, тк дай боже в ближайшем будующем снова вернусь к дружбе мобильников и 1с'ки)))
Оставьте свое сообщение

См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Администрирование данных 1С Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    61128    user700211_a.straltsou    27    

Воспроизведение аудиофайлов в мобильной платформе

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

Корректное добавление аудиоинформации при сборке мобильного приложения.

17.09.2020    304    QuirkyKot    1    

Team: Торговля + Склад + Производство (Мобильное приложение на платформе 1С)

Мобильная разработка Производство готовой продукции (работ, услуг) Учет ТМЦ Управление торговлей v8::Mobile УУ Бесплатно (free)

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

14.09.2020    318    naypak    0    

Мобильное приложение Goods info

Мобильная разработка v8 УТ11 Оптовая торговля, дистрибуция, логистика Бесплатно (free)

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

04.09.2020    1323    hpi    9    

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

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

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

15.04.2016    36686    Baksheev-Nikita    54    

Авто-ежедневник (мобильное приложение на платформе 1С)

Мобильная разработка v8::Mobile Автомобили, автосервисы Бесплатно (free)

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

25.08.2020    2481    capitan    27    

Загрузка данных из Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21) "

Розничная торговля Внешние источники данных v8 БП3.0 Розничная и сетевая торговля (FMCG) Фармацевтика, аптеки Россия Бесплатно (free)

В статье представлен шаблон обработки для загрузки некоторых данных из программы Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21)

04.08.2020    1166    RPGrigorev    0    

Чат и задачи с интерактивными объектами через PostgREST. Новый подход к управлению бизнес-процессами и интерфейсу

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

В новой версии Simple UI появилась возможность организовать свой корпоративный мессенджер и список задач с 1С, но не напрямую, а через PostgreSQL, чтобы не забивать 1С всякими пустяками. Причем не просто чат и задачи, а с множеством уникальных фишек: прием задач прямо из ленты чата, формат статусов в сообщении, старт процессов из задач с предопределенным состоянием переменных и сохранение переменной в задаче, отправка сообщений и задач из процессов и другое. Т.е. это такой новый способ доставки и контроля задач до исполнителя. Кроме того, в этом паке обновлений еще полный инструментарий для работы с JSON.

17.07.2020    2235    informa1555    8    

Мобильный корпоративный мессенджер (или чем мы занимаемся в свободное время) Промо

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

Корпоративный мессенджер, пробы пера на мобильной платформе 1С.

18.12.2017    21278    starik-2005    70    

Отладка мобильного клиента

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

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

07.07.2020    1846    DmitrySinichnikov    2    

Интеграции с сервером SQL. Быстро и просто

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Решаем вопросы экспорта/импорта данных в базы отличного от 1С происхождения.

06.07.2020    1809    Infector    4    

Структура обработки загрузки цен и остатков поставщика с примерами и комментариями

Внешние источники данных WEB v8 1cv8.cf Россия Бесплатно (free)

В статье опишу структуру обработки по загрузке цен и остатков от поставщика с примерами.

27.06.2020    1558    malikov_pro    0    

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

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

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

25.09.2016    47308    spezc    47    

Как сделать телефонный справочник компании на мобильном телефоне для iOS

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

При разработке мобильных приложений под iOS возникает много трудностей, решение которых не очевидно. Как упростить разработку под iPhone и снизить стоимость лицензий Apple с учетом лицензионной политики 1С на конференции Infostart Event 2019 Inception рассказал главный специалист ФАУ «РМРС» Ракитин Александр.

26.06.2020    2172    rujiy_kot    5    

Диадок. Подключаемый модуль. Отладка

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    3580    John_d    1    

Безопасность мобильных приложений 1С, взгляд по диагонали

Информационная безопасность Мобильная разработка v8::Mobile 1cv8.cf Бесплатно (free)

Что приходит первое в голову при словах «1С Предприятие»? Даже тем, кто далек от ИТ, представляется большущий компьютер (а тем, кто недалек, стойка двух-юнитных серверов), рядом слушает музыку сервера (как вариант просто музыку) сисадмин, за стеной в опен-спейсе менеджеры принимают заказы и бухгалтерия, сдающая отчетность. «Зарплата, зарплата!»: слышны их радостные крики. «И кадры»: уточняет HR. Да, все верно. Это 1С. Кто в теме, напомнит про крики не совсем приятные: «Все тормозит! Сделайте что-нибудь, #тыжпрограммист». И борющихся за живучесть ИТ-шников. В обычном офисном потоке дел, редко кто задумывается о безопасности. А тех, кто задумывается, прошу под кат…

05.06.2020    3252    capitan    32    

HTTP-сервисы в 1С Предприятие 8.3 Промо

Практика программирования WEB v8 1cv8.cf Абонемент ($m)

В платформе 1С Предприятие 8.3 появилась возможность создавать HTTP-сервисы. Пример работы.

1 стартмани

17.09.2014    83406    231    vano-ekt    59    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    4848    chernenko_vv    25    

Интеграция СуперОкна7 и УНФ

Интеграция Внешние источники данных v8 УНФ Россия Бесплатно (free)

Изучаем базу данных СуперОкна7, смотрим возможности передачи и получения информации.

08.05.2020    2107    vostok1.dz    3    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    3882    RPGrigorev    0    

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    41249    YPermitin    41    

Хранение статистики публикаций автора сообщества Инфостарт ® (мобильное приложение И ++)

Мобильная разработка WEB v8 1cv8.cf Бесплатно (free)

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

24.04.2020    2292    capitan    15    

Автоматизация распределительных центров компании "Вкусвилл" на мобильной платформе 1С

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

Мобильная платформа 1С многим кажется неготовой к масштабным проектам. Ее опасаются использовать из-за нестабильности работы, багов, проблем со связью, сложностью при подборе оборудования и драйверов. Но доклад руководителя проектов в компании «Автоматизация и Консалтинг» Алексея Матюшкина на конференции INFOSTART EVENT 2019 Inception показал, что не все так плохо. За последние несколько лет мобильная платформа 1С сильно эволюционировала, ее функционал расширился, и теперь это хорошая основа для самого смелого проекта автоматизации.

13.04.2020    5448    Potroshitel    21    

Диеты: качество и креатив нового уровня

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

Приложение “Диеты” вернулось этой весной с мощным обновлением, в которое команда вложила не только время, но упорство и креативную идею.

06.04.2020    2138    Baksheev-Nikita    1    

Перенос данных из учетных программ Парус в конфигурации 1С Промо

Внешние источники данных v7.7 v8 БП2.0 ЗУП2.5 ЗКБУ БГУ 1С7:Бух 1С7:ЗиК 1С7:ББУ Россия БУ Госбюджет Бесплатно (free)

Статья посвящена анализу процессов переноса данных из учетных программ Парус в конфигурации 1С.

05.11.2012    51502    sklowsky    16    

Повышение удобства использования мобильного приложения

Мобильная разработка v8::Mobile 1cv8.cf Казахстан Бесплатно (free)

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

03.04.2020    3449    user602678_maxipunchik    5    

Как я собрал для себя высокопроизводительный и бесплатный облачный бекенд для 1С на PosgreSQL + PostgREST

Производительность и оптимизация (HighLoad) WEB Интеграция Мобильная разработка Администрирование веб-серверов v8 Бесплатно (free)

В этой статье я расскажу о проблемах бека для мобильных приложений или другого фронта, который требует производительности, быстрой реакции и отказоустойчивости, и как я решил это благодаря opensource проекту PostgREST и СУБД Postgre SQL 12. Проведу простой тест производительности для сравнения 1С с данным решением. Это может быть полезно всем, кто разрабатывает мобильные приложения либо фронтсайд-приложения для 1С на чем угодно - на мобильной платформе или на нативном языке или на Simple UI. И также обзор новых функций SimpleUI для связи с этим бекендом.

31.03.2020    12594    informa1555    31    

Мобильная платформа 1С 8.3: чтение СМС, журнала звонков и т.д. и т.п.

SMS рассылки Мобильная разработка v8 v8::Mobile Россия Бесплатно (free)

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

27.02.2020    4639    kras_71    7    

Сканируем без сканера или MXL to JPG Промо

Внешние источники данных Универсальные функции Печатные формы документов v8 1cv8.cf Бесплатно (free)

Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.

24.05.2012    34086    shakmaev    47    

Цена победы, или Матчасть мобильного приложения "ТОИР Магнит"

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

Проект по созданию мобильного приложения «ТОИР Магнит» стал победителем конкурса 1С:Проект года-2018. В чем его особенность, рассказал участникам конференции INFOSTART EVENT 2019 Inception директор по маркетингу и продажам группы компаний «Деснол Софт» Сергей Ребрин.

04.02.2020    3485    RebrinSG    13    

Простой и красивый интерфейс

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

Разработчики мобильных приложений на платформе 1С сталкиваются с проблемой адаптации сгенерированного платформой интерфейса под удобство использования. О том, какие приемы помогут сделать интерфейс красивым и удобным, на конференции Infostart Event 2019 Inception рассказал руководитель отдела мобильной разработки компании «1С-Рарус» Никита Бакшеев.

30.01.2020    12264    Baksheev-Nikita    33    

Январский пак Simple UI: диаграммы и индикаторы, глобальные переменные,константы и многое другое

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

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

20.01.2020    3107    informa1555    5    

Собираем и запускаем приложение на Android (.apk файл)

Мобильная разработка v8::Mobile 1cv8.cf Бесплатно (free)

Пригодится тем, кто решит собрать 1С приложение на Android.

31.12.2019    21824    John_d    58    

Получение данных из Сигур

Внешние источники данных v8 1cv8.cf Бесплатно (free)

Получение данных из СКУД Сигур (без танцов с бубном)

25.12.2019    4098    skaoxy    5    

Большой декабрьский пак дополнений Simple UI (Simple WMS): распознавание текста в обычных экранах и документах, отправка голосового сообщения на устройство даже в фоне и многое другое. Видео в конце поста

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

Теперь распознание текста, которое тестировалось вот тут https://infostart.ru/public/1159499/ встроено в конструктор экранов и документов, а также многие другие новые возможности Simple UI.

11.12.2019    3369    informa1555    0    

Бюджет-революция свершилась!

Пользователю системы Финансовый учет и бюджетирование (FRP) Мобильная разработка v8 v8::Mobile 1cv8.cf Домашние учет и финансы УУ Бесплатно (free)

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

08.11.2019    7852    Baksheev-Nikita    16    

Выгрузка из 1С номенклатуры со штрихкодами без программирования

Загрузка и выгрузка в Excel Внешние источники данных v8 УТ11 Россия Бесплатно (free)

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019    11667    user1114182    4    

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

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

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

15.08.2019    6093    informa1555    3    

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

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

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

09.08.2019    9777    Baksheev-Nikita    10    

Вставка BLOB в таблицы ORACLE средствами 1С 8.х с использованием Microsoft OLEDB Provider

Внешние источники данных v8 1cv8.cf Россия Бесплатно (free)

Столкнулся с необходимостью выгружать картинки из 1С 8 в ORACLE-таблицу.

08.08.2019    4736    nomad_irk    0    

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

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

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

15.07.2019    5444    informa1555    2    

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

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

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

12.07.2019    23615    DitriX    32    

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

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

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

04.07.2019    6112    Baksheev-Nikita    5    

Выгрузка данных в таблицу MS SQL SERVER

Внешние источники данных v8 Бесплатно (free)

Процедура по выгрузке данных из 1C (таблица значений) в таблицу MS SQL SERVER через COM.

02.07.2019    8186    EvgenSav    18    

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

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

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

29.06.2019    5740    Baksheev-Nikita    13    

1С и компьютерное зрение: новый подход к контролю за ассортиментом магазина

Розничная торговля Внешние источники данных Розничная торговля v8 1С:Франчайзи, автоматизация бизнеса УУ Бесплатно (free)

Машинное зрение в магазинах и 1С. Как поднять эффективность торгового предприятия (магазин. кафе, шоурум и т.д.) с совершенно неожиданной стороны? Как получить реальные демографические данные покупателей и, самое главное, как это использовать в повседневной работе магазина? Как можно расширить привычные ABC и XYZ анализ, добавив в них пласт данных о трафике и демографии покупателей? Что необходимо для 1С, чтобы использовать данные видеоанализа людского трафика?

20.06.2019    8982    osipov_cvizi    16    

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

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

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

27.05.2019    13587    yarsort    27