Mobilna aplikacija 1c za android. Savjeti za automatizaciju

28. septembra ove godine 1C je bez puno buke i patetike objavio evaluacijsku verziju platforme 8.3.2.163 koja je bila namijenjena za testiranje. Svako može pročitati potpunu listu promjena i poboljšanja ili, ako ima pretplatu,.
Od gore navedenih poboljšanja, mislim da je "1C: Enterprise 8 Mobile Platform" prilično "ukusna", što vam omogućava da kreirate aplikaciju za Android ili iOS mobilne operativne sisteme koristeći uobičajene 1C alate.

Mobilna platforma, kako pišu sami programeri, "Ovo je opći naziv za tehnologiju koja vam omogućava da kreirate aplikacije koje rade na mobilnim uređajima koji koriste Android ili iOS operativni sistem."
„Mobilna aplikacija instalirana na uređaju kombinacija je mobilne platforme i baza podataka.».

Odnosno, jednostavnije rečeno, svoju pisanu konfiguraciju možete kompajlirati u aplikaciju za Android (.apk) ili iOS (.zip). Tada se sva ova dobrota može izložiti Google play ili AppStore. Istina, ako se program za Android može potpisati ključem kreiranim na istom mjestu odmah u 1C, i odmah će biti spreman za objavljivanje, tada će se, da bi se aplikacija objavila u AppStoreu, prvo morati kompajlirati pomoću program Xcode na računaru sa operativnim sistemom. Mac sistem OS X. I, naravno, potrebna vam je licenca programera za objavljivanje u bilo kojoj od ovih prodavnica.
Sve zvuči dobro, i prirodno sam želio isprobati nove funkcije na djelu.

Kreacija mobilna aplikacija na 1C

Za ovo nam je potrebno nova verzija platforme (), fajl koji se preuzima, android SDK i JDK.
Odmah ću vas upozoriti: sada ne postavljam sebi zadatak da prikažem proces razvoja nečeg specifičnog na 1C, već samo želim provjeriti i pokazati vam da - da, svijet je poludio i na 1C je stvarno moguće napisati program za Android.
Pa, hajde da pokušamo da napišemo neku vrstu "helloWorld" za Googlephone. Napravimo program za potrebe testiranja - konfiguraciju sa jednom uobičajenom formom, koju ćemo staviti na "desktop".
Dakle, kreiramo novu konfiguraciju u kontrolirani način rada, a prva stvar koju moramo učiniti, ako pišemo za mobilnu platformu, je da navedemo "Svrhu upotrebe" u svojstvima same konfiguracije.

I ovdje odmah primjećujemo da su mnogi konfiguracijski objekti postali nedostupni za korištenje. Više nećemo moći koristiti podsisteme, zakazane zadatke, XDTO pakete, web servise, izvještaje, poslovne procese i još mnogo toga. Također, mnoge procedure i metode za neke objekte su nedostupne. Ovo treba uzeti u obzir prilikom razvoja.
Pravimo "formu", kreiramo string atribut sa naslovom: "Zdravo, Habr!" - i baci na formular. Kreirajmo i dugme. U obradi klika, napišimo npr. izlaz poruke.

& OnClient Procedure Command1 (Command) Upozorenje ("Radi!"); Kraj procedure

Ovo nam je dovoljno da provjerimo performanse, pa pređimo na ono najzanimljivije. Konfiguraciju spremamo u datoteku za mobilnu aplikaciju (Konfiguracija-> Mobilna aplikacija-> Zapiši u datoteku), pokrećemo u kontroliranom načinu i počinjemo s obradom MobileAppWizard.epf. Ovaj fajl se nalazi u mobile.zip arhivi, koju smo preuzeli na samom početku.
A sada nam se nudi da ispunimo početne postavke, gdje su sva potrebna polja podvučena crvenom bojom.

Lokacija mobilne platforme - direktorij u kojem se nalaze android.zip i ios.zip datoteke koje su potrebne za formiranje isporuke mobilne aplikacije. Svi su u istoj mobile.zip arhivi.
Označavamo folder u koji smo instalirali Android SDK(možete ga preuzeti). 1C postavlja sljedeće zahtjeve:
verzija Android SDK alata - najmanje 20.0.3;
Android SDK Platform-tools verzija - najmanje 14;
Verzija SDK platforme - API 8 (ne niža od verzije 8.3).
Takođe nam je potreban Java SDK (možete ga nabaviti na ovoj adresi) Štaviše, 1C nas upozorava da JDK7 ne radi zajedno sa Android SDK.
Naznačavamo mape u koje će biti smještena naša .apk datoteka, lokaciju ključa potpisa i alias sa lozinkom. Ako ovo radite prvi put, a nemate ključ, tada možete popuniti "ključne parametre" i generirati ključ za sebe (u ovom slučaju, u polju "key file" morate navesti folder u kojem će se kreirati ovaj ključ).
Kliknite na "OK" i idite na drugi prozor.

U njemu, prije svega, označavamo "Konfiguraciju mobilne aplikacije" - istu datoteku koju smo spremili. Zatim jezik, pa tek onda pritisnemo dugme sa "lupom" i tu unesemo prikaz. Naznačavamo "Identifikator aplikacije" - jedinstveno ime Java klase, koje će se koristiti u budućnosti za obavljanje ažuriranja. Identifikator mora biti napisan latiničnim pismom, a 1C preporučuje da njegovo ime počinje sa "com.e1c". Unesite verziju i broj verzije i kliknite na dugme "Kreiraj". Ako sve prođe kako treba, sistem će vas obavijestiti o uspješnom kreiranju .apk datoteke.
Dobijeni fajl spuštamo na telefon i instaliramo ga sa vašim omiljenim menadžerom, nakon što dozvolimo instalaciju u sistemskim postavkama aplikacije trećih strana... Ili instalirajte program na emulatoru putem adb-a. Odmah ću reći: sve se užasno usporava na emulatoru, ali na telefonu (provjerio sam samo na Htc wildfire S) stvari su mnogo bolje, ali i dalje ima problema. Na primjer, dobio sam datoteku od čak 34 Mb, pa je instalacija dugo trajala. Nakon pokretanja, dočeka nas splash screen, a nakon nekog vremena kreće i sama konfiguracija. (izvinite na fotografiji: fotkal na kalkulatoru)

Do sada, nove karakteristike izgledaju vrlo "sirovo": ograničena funkcionalnost 1C, nemogućnost direktnog korištenja SDK-a, plus velika veličina i neke "kočnice"... Ali sama mogućnost pisanja programa za mobilnu platformu na 1C je malo iznenađujuće! Lično imam dvojako mišljenje o ovome. S jedne strane, ova "osobina" je ipak više kao igračka, jer nema mogućnosti da se uradi nešto zaista vrijedno. Ali s druge strane, ovo je očito veliki korak 1C prema mobilnosti, i ako ovom pravcuće se aktivno razvijati, može donijeti mnogo koristi. Na primjer, možete opremiti skladištare tabletima. Ako postane moguće koristiti "ugrađene" kamere, tada se možete riješiti čitača i skenirati kodove direktno s tableta, možete njima opremiti vozače automobila i poslati zadatke za transport ili pratiti rutu automobila i vrijeme u pokretu. Općenito, postoji mnogo opcija, a činjenica da će sve to biti u jednom informacionom sistemu jako će oduševiti kupce/menadžere, jer iz nekog razloga uvijek imaju paničan strah od korištenja veliki broj različitim sistemima, žele da koriste sve funkcionalnosti na jednoj platformi.

Mobilna platforma 1C: Enterprise je skup alata i tehnologija za brzi razvoj aplikacija za mobilne OS iOS, Android, Windows Phone/ 8.1 / 10, koristeći ista razvojna okruženja (Konfigurator ili 1C: Entrprise Development Tools) i iste razvojne tehnike koje se koriste za "obične" 1C aplikacije. Rezultat su autonomne, offline aplikacije, ali sa mogućnošću razmjene informacija sa vanjskim svijetom korištenjem širokog spektra integracijskih alata koje pruža platforma: Web i HTTP usluge, e-mail, itd. Budući da su protokoli za razmjenu nezavisni od platforme, mobilna platforma 1C, između ostalog, predstavlja sredstvo za brzo kreiranje mobilni front-end za gotovo svako serversko rješenje.

Pozadina

Još u danima 1C: Enterprise verzije 8.0 (i novijih verzija), postojao je softverski proizvod pod nazivom „Proširenje za ručni računari". Ekstenzija vam je omogućila da kreirate proizvode samo za OS Windows Mobile, Windows CE, itd. Proizvod je imao vlastiti konfigurator i server i bio je podržan do izdanja 1C: Enterprise verzije 8.3. Najnoviju verziju proširenje (8.2.9) objavljeno je u oktobru 2013., a puna podrška je završila 1. januara 2015. godine.
Ekstenzija je imala ograničenu upotrebu čak i za vrijeme procvata komunikatora na Windows Mobile-u, a odlazak takvih uređaja sa tržišta mobilnih uređaja očigledno nije doprinio ovoj popularnosti. softverski proizvod... IOS i Android uređaji zauzeli su gotovo cijelo tržište mobilnih uređaja i postalo je očigledno da je podrška ovim operativnim sistemima jedna od ključnih tačaka za sistem koji mora funkcionirati u modernom mobilnom svijetu. Također se činilo očiglednim da bi se glavni pristup postojeće platforme 1C: Enterprise trebao koristiti i na mobilnim uređajima: programer aplikacije prije svega treba razmišljati o rješavanju primijenjenih problema, a drugo, o tome koje mogućnosti operativnog sistema koristi za rješavanje ovi problemi.... Drugim riječima, potreban vam je alat koji izoluje programera aplikacije od specifičnosti specifičnog mobilnog OS-a i razvojnog alata.

Mobilna platforma

Na osnovu iskustva u razvoju i funkcionisanju ekstenzije za džepne računare, odlučeno je da se razvije specijalizovani sistem koji bi zadovoljio nekoliko zahteva:
  • trebao bi podržavati moderne popularne mobilne telefone OS i uređaja pod njihovom kontrolom. Prije svega, to su iOS od Apple-a i Android od Google-a.
  • ovaj sistem treba da omogući korišćenje razvijenih aplikacija u stilu prihvaćenom na savremenim mobilnim uređajima. Posebno se treba oslanjati na interfejs ručna kontrola(bukvalno) koristeći ekrane na dodir.
  • sistem treba da obezbedi jedinstven programski interfejs za implementaciju različitih specifičnih mehanizama, bez obzira na mobilni OS koji se koristi.
  • programer mora koristiti isti alat i razvojne pristupe kao kada razvija aplikacije za „običan“ računar.
  • programer aplikacije mora razviti primenjeno rešenje u poznatom razvojnom okruženju, koristeći isti kod za desktop i mobilne sisteme kad god je to moguće.
  • sučelje aplikativnog rješenja koje radi na mobilnom uređaju treba biti slično za različite platforme i, u cjelini, nedvosmisleno prepoznatljivo.
Rezultat razvoja bila je takozvana mobilna platforma, koja je objavljena 29. maja 2013. u verzijama za iOS i Android. 1C: Enterprise mobilna platforma je skup alata i tehnologija koji vam omogućavaju kreiranje aplikacija za iOS, Android, Windows Phone / 8.1 / 10 mobilne operativne sisteme koristeći isto razvojno okruženje (Konfigurator) i iste metode razvoja kao i za konvencionalne aplikacije na platformi 1C: Enterprise. Rezultat su autonomne, vanmrežne aplikacije, ali sa mogućnošću razmjene informacija sa vanjskim svijetom korištenjem širokog spektra integracijskih alata koje pruža platforma: Web i HTTP usluge, Email itd.
Zajednica je prilično dobro prihvatila mobilnu platformu, počeli su se pojavljivati ​​razni članci na ovu temu (na primjer, i). Da bi se razvila potpuno funkcionalna aplikacija koja radi istovremeno na velikoj većini mobilnih uređaja, sada je bilo potrebno minimalno vrijeme i znanje, koje se suštinski nije razlikovalo od znanja "običnog" programera aplikacija na platformi 1C: Enterprise. . Nesumnjivo, tako nizak prag ulaska privlači programere koji trebaju osigurati neke osnovne funkcionalnosti za terenske radnike, šefove i druge mobilne zaposlenike koji trebaju raditi s korporativnim sistemom.
Lako je započeti razvoj mobilne aplikacije na platformi 1C: Enterprise. U konfiguratoru postavite svojstvo "Svrha upotrebe" na vrijednost "Mobilni uređaj" u konfiguraciji. U tom slučaju će neki od primijenjenih konfiguracijskih objekata postati nedostupni (karteci tipova karakteristika, kontni planovi itd.), ali će postati dostupna svojstva specifična za mobilne aplikacije (na primjer, ugrađena multimedija i geolokacija mobilni uređaj itd.).


Istovremeno, možete otkloniti greške u glavnim algoritmima aplikacije (koji se ne odnose direktno na mobilne specifičnosti) direktno u konfiguratoru na računaru programera. Istovremeno, preporučljivo je da se sekcije koda u kojima se poziva "mobilna" funkcionalnost uokvire odgovarajućim uputstvima pretprocesoru kako bi se izbjegle greške pri izvršavanju koda na osobnom računalu:
# Ako je MobileApplication klijent, onda su podaci = GeolocationServer.GetProviderName (); #EndIf
Počevši od verzije mobilne platforme 8.3.7, postalo je dostupno otklanjanje grešaka aplikacije direktno na mobilnom uređaju (više o tome u nastavku).

Razvoj na mobilnoj platformi može pratiti različite pristupe, ali se može istaknuti nekoliko ključnih tačaka. Sa stanovišta izgradnje stvarne mobilne aplikacije, njenog funkcionalnog bogatstva i uloge u IT infrastrukturi preduzeća:

  • mobilna aplikacija može biti sastavni i sastavni dio postojećeg informacionog sistema preduzeća. Mobilna aplikacija će pružiti interfejs i druge mogućnosti (uključujući razmjenu podataka) prilagođene mogućnostima postojećeg informacionog sistema. U ovom slučaju, mobilna aplikacija je vrlo usko povezana s "običnom" informacioni sistem i ne može se raditi odvojeno od njega.
  • mobilna aplikacija obavlja specifične zadatke koji praktično nisu povezani sa informacionim sistemom preduzeća. Postoji samo minimalan skup podataka koji se razmjenjuju između mobilne aplikacije i informacionog sistema. U ovom slučaju, najvjerovatnije će mobilna aplikacija izvršiti razmjenu prema nekom standardiziranom protokolu, što omogućava korištenje ove mobilne aplikacije u potpuno različitim slučajevima i situacijama.
Dvije gore opisane situacije mogu se smatrati ekstremnim opcijama. Ali to nisu jedine mogućnosti razvoja. Programer aplikacije može samostalno izabrati opcije integracije između mobilne aplikacije i informacionog sistema koji joj služi kao back office.
Mobilna aplikacija je razvijena kao potpuno samostalna konfiguracija, ali može dijeliti dio izvornog koda s "roditeljskom" konfiguracijom. Usput, "roditeljska" konfiguracija možda fizički ne postoji (na primjer, ako razvijate neku univerzalna primjena sa kojima se može raditi različiti sistemi prema univerzalnom protokolu).

Uređaj sa mobilnom platformom

Šta je mobilna platforma i šta može?
Iskreno rečeno, mobilna platforma je samo jedna od komponenti cijelog kompleksa, zahvaljujući kojoj "1C: Enterprise 8" radi na mobilnim uređajima. Dakle, primijenjeni programer radi sa sljedećim komponentama:
  1. Sama mobilna platforma je mobilni dio okvira 1C: Enterprise. Može biti obična (koja se koristi prilikom izrade aplikacije za objavljivanje u prodavnici aplikacija) i platforma za razvoj mobilnih uređaja, koja se koristi (iznenađenje) tokom razvoja mobilne aplikacije.
  2. Mobilna konfiguracija je konfiguracija softverskog sistema 1C: Enterprise napisana u obliku XML datoteke.
  3. Kombinacija mobilne platforme i mobilne konfiguracije rezultira mobilnom aplikacijom.
  4. Kreator mobilnih aplikacija je specijalizirano rješenje aplikacije koje može napraviti od mobilne platforme, konfiguracije, splash screena, ikona i drugih komponenti, spreman fajl mobilna aplikacija koja se može preuzeti na Apple AppStore, Google Play, Windows Phone aplikacije / Windows aplikacije.
Zašto je sve tako teško? Zašto se to ne može uraditi na mobilnom uređaju baš kao što se radi na velikoj platformi? One. instalirati jednu mobilnu platformu na uređaj i učitati bilo koji broj konfiguracija/aplikacija u njega? Ovo je zabranjeno ograničenjima licenciranja za aplikacije koje se distribuiraju putem prodavnica aplikacija. Na primjer, ako vaša aplikacija preuzima izvršni kod (u obliku skripte) preko Interneta, tada se nikada neće pojaviti u Apple App Store-u. Međutim, treba shvatiti da mogućnost preuzimanja bilo koje konfiguracije koja se nalazi na mobilnoj platformi programera nije namijenjena distribuciji mobilnih aplikacija čak ni unutar jedne kompanije, a kamoli distribuciji klijentima programera.
Nakon što je mobilna aplikacija na ciljnom mobilnom uređaju, postaje potrebno koristiti neku vrstu baze podataka (podaci moraju biti negdje pohranjeni). Kao motor baze podataka, mobilna platforma koristi vlastiti mehanizam baze podataka, koji se prenosi na mobilnu platformu sa platforme za PC... Kompaktan je i dovoljno brz, ali glavna stvar je da pruža potpuno isto ponašanje na koje su programeri aplikacija navikli kada rade na platformi za personalne računare.
Također je vrijedno napomenuti da je mobilna aplikacija unutar sebe izgrađena prema istoj shemi kao i rad konvencionalne platforme s informacijskom bazom zasnovanom na datotekama: postoji klijentski dio, postoji serverski dio, postoji baza podataka i postoji interakcija klijent-server.
Sama mobilna platforma je napisana kao izvorna aplikacija, kompajlirana u binarni kod za glavne procesorske arhitekture koje se trenutno koriste u mobilnom svijetu: to su ARM v5 i noviji i x86 arhitektura.
Osim toga, mogu biti potrebne posebne dozvole za interakciju s određenim mogućnostima mobilnog uređaja (telefonija, GPS, rad s ugrađenom kamerom itd.). Za iOS se postavljaju direktno tokom rada same aplikacije, a za Android dozvole se specificiraju prilikom kreiranja aplikacije. Potrebne dozvole su specificirane prilikom razvoja mobilne aplikacije i koristi ih kreator mobilnih aplikacija, ali više o kreatoru kasnije.

Malo o platformi za programere

Dok razvijamo mobilnu aplikaciju, nismo vezani licencnim ograničenjima nametnutim mobilnim aplikacijama koje se distribuiraju putem prodavnica aplikacija. To znači da mobilnu platformu 1C možemo koristiti na isti način kao što koristimo "veliku" platformu na osobnom računalu - instalirajte samu mobilnu platformu na pametni telefon/tablet i u nju učitajte konfiguracije mobilnih aplikacija. Nakon pokretanja, platforma će nam pokazati listu aplikacija registrovanih u njoj:

Da biste dodali novu aplikaciju na platformu, potrebno je postaviti XML datoteku sa njenim opisom na resurs kojem se može pristupiti s mobilnog uređaja putem HTTP protokola. Najprikladniji način da to učinite je iz Konfiguratora, preko menija "Konfiguracija \ Mobilna aplikacija \ Objava". U ovom slučaju, XML datoteka sa konfiguracijom aplikacije se postavlja na web server na računaru programera (prema tome, ovaj računar mora imati web server - IIS ili Apache).

Ako navedete opciju "Ponovo pokreni iz konfiguratora" za aplikaciju, tada će se aplikacija na mobilnom uređaju automatski ažurirati s računala programera svaki put kada programer ažurira hostiranu na web serveru XML fajl konfiguraciju.
Kada je omogućena opcija "Otklanjanje grešaka je dozvoljeno", moguće je korak-po-korak otklanjanje grešaka aplikacije na mobilnom uređaju iz konfiguratora na računaru programera (u konfiguratoru opcija "Otklanjanje grešaka putem HTTP-a" u "Servis \ Options" meni mora biti odabran). Ako stavite tačke prekida u kodu u konfiguratoru i odaberete naredbu "Mobilna aplikacija - počni otklanjanje grešaka", mobilna aplikacija na uređaju će se zaustaviti kada izvršni kod dostigne tačku prekida, a u konfiguratoru možete vidjeti vrijednosti varijable, stek poziva, itd.

šta to može učiniti?

Dakle, šta radi mobilna platforma? Dosta:)
Ako ne koristite posebne termine "1C: Enterprise", tada mobilna platforma pruža priliku za rad sa regulatornim i referentnim informacijama, sastavljanje dokumenata koji opisuju neke vanjske radnje, pregled izvještaja, komunikaciju sa vanjskim svijetom koristeći internetske usluge i još mnogo toga. više. One. pruža programeru aplikacija mogućnost da napiše dovoljno funkcionalnu aplikaciju, na primjer, računovodstveni program kućnih financija, program za trgovinu na otvorenom i slično.
Ali pored uobičajene funkcionalnosti koja se nalazi na platformi za personalni računar, mobilna platforma treba da obezbedi rad sa specifičnim mogućnostima koje su inherentne samo mobilnim uređajima:
  • rad sa pozivima i evidencijom poziva;
  • rad sa kratkim porukama (SMS) i njihovom listom;
  • kontakti;
  • kalendari;
  • geolokacija (bez rutiranja);
  • omogućava snimanje fotografija, kao i video i audio snimanje;
  • reagovati na promjene u orijentaciji ekrana;
  • rad sa obavještenjima (lokalni i PUSH, kako direktno tako i preko posebne posredničke usluge);
  • skenirajte barkodove i QR kodove kamerom
  • Monetizacija mobilnih aplikacija (tj. način da se programeru mobilnih aplikacija daju prilike za dodatni prihod):
    • Rad sa Apple In-App Purchase (za iOS) i Google Play In-App Billing (za Android), koji se mogu koristiti za organiziranje raznih vrsta pretplata, kupovine funkcionalnosti itd.
    • Prikazivanje oglasa u mobilnim aplikacijama (iAd za iOS i AdMob za Android su još uvijek podržani).
  • itd.
Jasno je da neke funkcije možda neće biti dostupne na svakom određeni uređaj, dakle, da se utvrdi šta se može učiniti na uređaju na kojem je pokrenuta mobilna aplikacija, posebne metode koja vas obavještava da je dostupna na ovaj uređaj kao što je mogućnost biranja ili ne. Tako se implementira otprilike sljedeća shema korištenja: provjeravamo da li je moguće iskoristiti neku mogućnost ili ne i ako je moguće koristimo:
Ako telefonija znači Podržani broj biranja () Onda telefonija znači. broj biranja (broj telefona, odmah pozovi); EndIf;
Za nas je važan zadatak da sakrijemo detalje o korištenom mobilnom OS-u od programera aplikacije, da mu pružimo objedinjene mehanizme za korištenje mobilnih funkcionalnosti. Vjerujemo da uspješno rješavamo problem. Razlike u implementiranim mehanizmima ili izostaju ili su minimizirane. Osim, naravno, kada u nekom od OS-a uopće nema funkcionalnosti.
Na primjer, tehnika rada s PUSH obavijestima je vrlo različita za Google i Apple. Uložili smo mnogo napora da objedinimo mehanizam za rad sa PUSH notifikacijama iz koda aplikacije. U slučaju mobilne aplikacije uspjeli smo gotovo 100%: isti kod aplikacije na mobilnom uređaju upravlja primanjem PUSH obavijesti i na iOS-u i na Androidu. I kod za slanje PUSH obavijesti u serverskoj aplikaciji također izgleda isto. Ali da bismo postigli takvo ujedinjenje, morali smo razviti poseban proxy server https://pushnotifications.1c.com/, koji od programera skriva različite tehnike za rad sa Apple Push Notification Service (APNS) i Google Cloud Messaging (GCM). Čitava razlika je različite postavke direktno na proxy stranici https://pushnotifications.1c.com/; da biste radili sa APNS-om, potrebno je da učitate SSL sertifikat na sajt (koji Apple izdaje za aplikaciju na zahtev programera), da biste radili sa GCM, navedite jedinstveni identifikator aplikacije.
Očigledno je nemoguće odmah implementirati sve funkcije koje želite imati u mobilnoj aplikaciji. I uvijek morate pronaći kompromis između nekoliko vrlo korisnih stvari. A ako vam nešto nedostaje, pišite nam koje poslovne zadatke (uostalom, platforma je prvenstveno alat za implementaciju poslovnih zadataka!) ne možete riješiti i koji mehanizam bi vam pomogao u tome.

Kako izgleda?

Grafički interfejs mobilne platforme je posebna tema. U 1C: Enterprise, kao što znate, sučelje je opisano deklarativno. S jedne strane, ovo nameće određena ograničenja razvoju korisničkog sučelja (na primjer, ne postoji mogućnost pozicioniranja piksel po piksel), ali, s druge strane, omogućava platformi da ujednačeno prikazuje sučelje na ekranima. različitih veličina, u tankom klijentu i web klijentu. Pokušali smo da se pridržavamo istog principa i na mobilnoj platformi. Koliko dobro smo to uradili? Pokušajmo to shvatiti.
U prvim verzijama mobilne platforme (uključivo do 8.3.5) grafički interfejs aplikacije su izgledale vrlo poznato sofisticiranim korisnicima 1C; u stvari, on je prenio sučelje poznato iz "desktop" verzija 1C u mobilni svijet. Ali sa stanovišta korisnika koji ranije nisu bili upoznati sa 1C, interfejs je izgledao pomalo arhaično.
Uzimajući u obzir komentare i sugestije, radikalno smo revidirali naš pristup mobilnom interfejsu u verziji 8.3.6. Možemo reći da smo napravili potpuno novo mobilno sučelje za naše aplikacije. Ima mnogo toga zajedničkog sa našim Taxi interfejsom. Model razvoja za programere mobilnih aplikacija odgovara modelu razvoja u Taxi-u. Istovremeno, mobilni interfejs je u potpunosti konzistentan sa pristupima dizajnu i prihvaćen u mobilnim aplikacijama. Interfejs u potpunosti uzima u obzir specifičnosti mobilnog svijeta: mala veličina ekrana (što znači da bi dizajn grafičkih elemenata trebao postati asketskiji - bez sjenki, gradijenata), postoji podrška za pokrete prstiju itd. Zanimljiva činjenica: novi mehanizam platforme zadužen za postavljanje elemenata u formu (layouter) pokazao se toliko uspješnim i pravovremenim za mobilnu platformu da je objavljen ranije (u verziji 8.3.6) nego u platformi za PC (u verziji 8.3 .7), za koji je prvenstveno bio namijenjen.
Na slici možete vidjeti kako se naš interfejs promijenio.
Aplikacija "Upravljanje malom kompanijom" na mobilnoj platformi verzija 8.3.5:


Isto je i na verziji 8.3.6:

A ovako izgleda sučelje mobilne platforme uživo:

Kolekcionar - a šta je ovo zver?

Kao što je ranije spomenuto, mobilna aplikacija se sastoji od nekoliko komponenti (stvarna mobilna platforma, konfiguracija, različiti resursi), koje moraju biti jedinstvena cjelina za postavljanje aplikacije u prodavnicu. Kako bi se olakšalo pretvaranje komponenti u aplikaciju, razvijen je kreator mobilnih aplikacija. Ovo je konfiguracija (aplikacija) kreirana na platformi 1C: Enterprise, koja u svojoj bazi podataka pohranjuje sve komponente potrebne za formiranje mobilne aplikacije. Da bi kolektor radio svoj posao, potrebno je preuzeti i instalirati razne softverski paketi koji su mu potrebni za rad (Java i Android SDK, itd.), zatim odredite putanje do ovih paketa u postavkama kolektora i postavite neke Dodatne opcije(ključevi programera, itd.).


Kada je konfigurisan, kolektor je spreman za rad. Općenito, rad sa kolektorom izgleda ovako:
  1. Preuzmite verziju 1C mobilne platforme na kojoj ćemo izgraditi aplikaciju
  2. Učitavamo konfiguraciju iz koje ćemo napraviti mobilnu aplikaciju
  3. Kreiramo mobilnu aplikaciju, u kojoj naznačimo za koje platforme (Android, iOS, Windows) treba izvršiti montažu, koju konfiguraciju i platformu treba koristiti (posebno naznačimo koji certifikat koristiti za sklapanje za iOS ako aplikacija radi sa PUSH) obavještenjima).
  4. Vršimo "jedan klik" montažu mobilne aplikacije za sve odabrane platforme
  5. "Još jednim klikom" šaljemo prikupljene mobilne aplikacije u prodavnice aplikacija (ako se radi o aplikaciji za iOS ili Android). V Windows prodavnice Aplikacije / Windows Phone Apps app morate ga preuzeti ručno, jer Microsoft još uvijek ne nudi API za postavljanje aplikacije u prodavnicu.
Posebno treba napomenuti da kolektor nije potreban za razvoj i otklanjanje grešaka u mobilnoj aplikaciji. Da biste to učinili, možete koristiti platformu mobilnog programera i alate konfiguratora za prijenos konfiguracije na mobilni uređaj. Ali da biste distribuirali mobilnu aplikaciju, potreban vam je sakupljač.

Aplikacije na mobilnoj platformi

Sama kompanija 1C izdaje niz aplikacija na mobilnoj platformi koje su mobilni klijenti 1C serverskih aplikacija (1C: Upravljanje dokumentima, 1C: Upravljanje malim preduzećima, itd.). Ove aplikacije implementiraju podskup funkcionalnosti "običnih" klijenata. Kada mobilna verzija Funkcionalnost "1C: Upravljanje malom firmom" dovoljna je za potpuno korištenje programa, a često smo viđali situaciju kada je mobilna verzija aplikacije dovoljna za poslovanje klijenata.
Naši partneri koriste mobilnu platformu kako za razvoj masovno proizvedenih mobilnih aplikacija koje se distribuiraju putem prodavnica aplikacija, tako i za prilagođene aplikacije kreirane na zahtjev određenih kupaca. Među aplikacijama koje kruže, postoje aplikacije koje koriste back-end koji nije 1C kao centralno skladište podataka.
Među mobilnim aplikacijama kreiranim po narudžbi kupaca, možemo spomenuti mobilni klijent za 1C: Manufacturing Enterprise Management, kreiran po narudžbi velikog mašinskog holdinga. Stotinjak zaposlenih u holdingu koristi mobilnu aplikaciju u toplim radnjama, gdje iz sigurnosnih razloga stacionarni računari nemoguće. Ugrađena kamera mobilnog uređaja koristi se za čitanje bar kodova proizvoda i njihovo traženje na listi zaliha, mobilna aplikacija vam omogućava da shvatite u kojoj se fazi tehnološkog lanca ovaj proizvod nalazi, da označite prolazak sljedeće operacije po proizvodu itd.

Zaključak

Pokušali smo vrlo površno opisati mobilnu platformu, šta vam ona omogućava i zašto je ispala onakva kakva je. U ovom članku se praktično ništa ne govori mobilni Windows... Postoji nekoliko razloga za to: prvo, verzija mobilne platforme za Windows izašla je relativno nedavno („1C: Enterprise“ verzija 8.3.7), a drugo, ova verzija mobilne platforme nema značajnih razlika od implementacija za druge mobilne operativne sisteme... Naravno, povećaćemo funkcionalnost za Windows OS. Kao i povećanje funkcionalnosti mobilne platforme u cjelini. Dakle, u bliskoj budućnosti imamo podršku na mobilnoj platformi vanjske komponente; ovaj mehanizam (dugo dostupan na "velikoj" platformi) će omogućiti programerima da implementiraju funkcionalnost koja iz bilo kojeg razloga nije dostupna na mobilnoj platformi.
Tradicionalno snage tehnološke platforme "1C: Enterprise" su lakoća razvoja za programere i brzina kreiranja i modifikacije poslovnih aplikacija. 1C mobilna platforma donijela je oba ova aduta u mobilni svijet. 1C mobilna platforma je prilika da se brzo razvije aplikacija koja radi na tri najpopularnije mobilne platforme (iOS, Android, Windows Phone/8.1/10). A zahvaljujući širokom spektru dostupnih alata za integraciju neovisno o platformi (Web i HTTP usluge, itd.), 1C mobilna platforma je prilika za brzo kreiranje mobilnog klijenta za tri mobilne platforme za gotovo svaku serversku aplikaciju koja podržava bilo koju od dostupne metode integracije u 1C platformu (Web i HTTP usluge, razmjena datoteka, itd.).

Samo registrovani korisnici mogu učestvovati u anketi. Uđite, molim vas.

Razvoj mobilnih aplikacija uvijek je povezan s potrebom učenja dodatnih tehnologija. Šta ako se vratite na pitanje i koristite alate koje već poznajete?

Prvi put je 1C pokušao da uđe tržište mobilni razvoj 2006. godine. U to vrijeme vladalo je pravo uzbuđenje oko automatizacije rada udaljenih zaposlenika koristeći PDA. Novi programi za rješavanje ovakvih problema pojavili su se kao gljive, a takav dobavljač kao što je 1C s uspješnim proizvodima za automatizaciju različitih područja poslovanja nije mogao propustiti priliku da uđe na profitabilno tržište.

Sredinom 2006. godine kompanija je predstavila izdanje novog proizvoda sa obećavajućim imenom "1C: Enterprise 8. Proširenje za džepne računare". Programeri 1C, koji su vidjeli izglede 8. platforme, imali su nadu da je sada postalo moguće razvijati na jednom alatu bez većih poteškoća za mobilni operativni sistem "Windows Mobile", koji je bio popularan tih godina.

U praksi je sve izgledalo mnogo gore. Inkarnacija originalne ideje ovaj alat nije dozvoljavao. Paket" Pocket PC Extension”Bio je više dodatak za određene tipične konfiguracije nego kompletno razvojno rješenje. Nije planirano proširenje funkcionalnosti konfiguracije dodavanjem novih metapodataka objekata. Sasvim jednostavne stvari ostale su na milost i nemilost programerima trećih strana: kreiranje novih formi za interakciju s korisnikom, rukovanje korisničkim događajima.

Da, bilo je raznih zaobilaženja ograničenja, ali čak ni ona nisu dozvolila da se istinski razviju. Pored tehničkih ograničenja, potrošači su iskusili značajnu finansijsku prepreku. Kompanije koje su odlučile da implementiraju rešenje iz "1C" bile su obavezne da kupe produktivne PDA uređaje, nabave licence za Windows Mobile, a takođe plate "1C" za isporuku rešenja i finalnu aplikaciju.

Rješenje iz 1C bilo je preskupo. Kompanije navikle na štednju nastavile su koristiti alternativna rješenja. Štaviše, programeri alternativa uspjeli su svojim proizvodima pružiti funkcionalnost za interakciju sa standardnim 1C rješenjima.

Tehnička ograničenja i visoka cijena nisu dozvolili proizvodu da ponovi kolosalan uspjeh desktop platforme. Ideja za osvajanje mobilnog tržišta corp.

aplikacije nisu uspjele.

Korak naprijed

Gubici i gubici od neuspješnog projekta nisu stavili tačku na razvoj obećavajućeg smjera. Kompanija 1C je 2013. godine predstavila prvu stabilnu verziju nove platforme 8.3, koja ima funkciju razvoja mobilnih aplikacija.

1C je potpuno preispitao pristup rješavanju mobilne "teoreme" i uzeo u obzir greške prethodnog neuspješnog proizvoda. Rezultat je bio potpuno novi alat koji nema nikakve veze sa prethodnikom i fokusiran je na najsavremenije mobilne platforme – Android i iOS.

Mobilne aplikacije u 1C stilu

Za potpuno upoznavanje sa mogućnostima razvoja mobilnih platformi, pokušaćemo da razvijemo malu konfiguraciju. Koristeći end-to-end primjer, moći ćete bolje procijeniti dostupnu funkcionalnost i odlučiti se o mogućnosti korištenja 1C platforme za rješavanje problema.

Da biste radili, potrebna vam je najnovija verzija platforme 1C: Enterprise 8.3. Obrazovna verzija distribucije dostupna je na službenoj web stranici 1C. Rekreirati primjer njegovih mogućnosti je više nego dovoljno.

Pored platforme 1C: Enterprise 8.3, potrebni su nam brojni dodatni alati. U članku će se razmotriti primjer razvoja Android aplikacije. U tom smislu, moraćete da preuzmete: Android SDK i Apache WEB server. Prva komponenta sadrži sve što vam je potrebno za izradu aplikacije i emulator za testiranje, a WEB server je koristan za brzo učitavanje aplikacije za mobilni OS.

Također nam je potrebna isporuka "Mobilne Developer Platforme". Sadrži konfiguraciju za pojednostavljenje procesa izrade kreirane mobilne aplikacije, kao i platforme za razvoj mobilnih uređaja. Mora biti instaliran na mobilnom uređaju ili emulatoru.

Da biste napravili aplikaciju spremnu za distribuciju putem Google Play-a, morat ćete je preuzeti Apacheant i JavaJDK... Ova tema je izvan okvira članka, tako da možete saznati detalje o radu s ovim alatima i izgradnji aplikacije u odgovarajućem mom dijelu.

Alati za konfigurisanje

platforma " 1C: Preduzeće 8.3»A Apache web server se isporučuje sa instalaterima i instalirani su na standardni način. Android SDK samo ga trebate raspakirati u poseban direktorij i pokrenuti “ sdk manager.exe”. Vidjet ćete prozor sa izborom dostupnih paketa za instalaciju. Za testiranje, koje se razmatra u okviru primjera članka, morat ćete odabrati i instalirati: Android SDK Alati, A ndroid Platform Tools, API za SDK platformu 17.

Posljednji korak je kreiranje nove baze podataka. Za one koji nisu povezani sa razvojem " 1C: Enterprise»Objasniću da se svako rješenje za ovu platformu sastoji od infobaze i konfiguracije. Dodavanje nove baze podataka vrši se klikom na dugme " Dodati»Početni prozor. Nakon što dodate bazu, otvorite je u " Konfigurator».

Prva mobilna konfiguracija

U glavnom meniju konfiguratora naći ćemo odjeljak “ Konfiguracija"I odaberite stavku" Otvori konfiguraciju ". Stablo konfiguracije (objekti koji će činiti buduću aplikaciju) će biti prikazano na lijevoj strani prozora. Odaberite korijen konfiguracije u njemu i pritisnite kombinaciju tipki " Alt + Enter". Uređivač svojstava će se otvoriti na desnoj strani prozora konfiguratora.

Nazovimo konfiguraciju “ URADITI"I u posjedu" Svrha upotrebe "naznačavamo" Mobilni uređaj". Obratite pažnju radeći poslednja akcija, neki čvorovi stabla konfiguracije će postati neaktivni. Nažalost, nećete moći koristiti sve objekte metapodataka na mobilnoj platformi.

Da bismo riješili naš problem, u stablu konfiguracije moramo kreirati nekoliko metapodataka objekata:


Procedura AddTask (Task) ExportRecordManager = CreateRecordManager (); RecordManager.Period = CurrentDate (); Record Manager.Task = Zadatak; ManagerRecords.Status = Task.Status; ManagerRecord.Record (); Kraj procedure

Listing 2. Kod funkcije "GetList of Unclosed Tasks ()

Funkcija GetList of UnclosedTasks () Zahtjev za izvoz = Novi zahtjev; Query.Text = "SELECT | TasksStatusLast Slice.Task AS Task, | TasksStatusLast Slice.<>VALUE (Enumeration.Tasks.Finished)) AS TasksStatusSliceLast | ORDER BY | ExecutionDateDATE "; Request.SetParameter (" CurrentDate ", CurrentDate ()); Vrati Request.Run (). Unload (); EndFunction

Shvatili smo prijem podataka iz registra informacija i njihovo evidentiranje, sada ćemo našu referentnu knjigu naučiti da radi sa registrom. Da biste to učinili, dodajte zajednički modul pod nazivom " Rad sa zadacima". Možete i bez toga, ali odmah želim da se fokusiram na mogućnost razbijanja koda u module. Mnogi programeri 1C i dalje zanemaruju ovu preporuku i opisuju svu logiku na jednom mjestu, komplicirajući na taj način naknadno održavanje koda. Kreirajmo novu proceduru u modulu “ Kreirajte novi zadatak"(Vidi listing 3).

Listing 3. Kodeks procedure "Kreiraj novi zadatak"

Procedura CreateNewTask (Link) Export If Link.ThisGroup Then Return; EndIf; Zahtjev = Novi zahtjev; Query.Text = "SELECT | TasksStatusLastSlice .Status | FROM | InformationRegister.TasksStatus.Last Slice (& CurrentDate, Task = & Task) AS TasksStatusLast Slice"; Request.SetParameter ("CurrentDate", CurrentDate ()); Request.SetParameter ("Task", Link); Rezultat = Query.Run (). Odaberite (); If Result.Next () Onda If Result.Status<>Ref.Status Zatim Information Registers.TasksStatus.Add a Task (Link); EndIf; Inače Informacije Registers.TasksStatus.AddTask (Link); EndIf; Kraj procedure

Prije kreiranja novog zapisa, vrši se provjera prisutnosti postojećih zapisa za zadatak. Ako zapis već postoji, potrebno je uporediti statuse zadataka. Ako se status iz registra ne razlikuje od statusa jedinice koja se upisuje, nema potrebe za kreiranjem dodatnog zapisa.

Sa završnim dodirom, otvorite obrazac stavke kataloga "Zadaci" i kreirajte rukovalac događaja za " AfterRecording na serveru". U njemu ćemo napisati poziv na proceduru opisanu u trećem listingu:

WorkWithTasks.Kreirajte novi zadatak (CurrentObject.Link);

Rad na interfejsu

Glavna funkcionalnost aplikacije je spremna - korisnik može kreirati zadatke, a svaki novi zadatak formira unos u registar periodičnih informacija. Hajdemo sada na interfejs. Stavimo rad sa zadacima u prvi plan. Uostalom, logično je prikazati listu odmah nakon pokretanja aplikacije. zatvoreni zadaci i mogućnost kreiranja novog?

Pronađite u stablu konfiguracije čvor " Uobičajeni oblici„I dodaj nova forma sa imenom " Desktop". Otvorimo kreirani obrazac u konstruktoru sučelja i dodamo props kao što je " Tabela vrijednosti". Nazovimo to "OpenZachi". Tabela će sadržavati dvije kolone - " Zadatak"(ReferenceLink.Tasks) i" Datum izvršenja" (Datum).

Sljedeći korak je prevlačenje dodanih rekvizita na obrazac. Trebali bismo imati interfejs najjednostavniji sto... Nećemo navoditi nikakve veličine, prepustićemo brigu oko skaliranja interfejsa platformi.

Za kreiranu tabelu, u inspektoru svojstava, postavite potvrdni okvir za „ Samo pogled", i imanje" Položaj komandne ploče"Označavamo vrijednost" Ne ". Tabelu ćemo popuniti dinamičkim informacijama, tako da nema smisla uređivanje od strane korisnika.

Sada hajde da opišemo obrađivač događaja "OnCreateAtServer" za obrazac. Dodajmo mu jednu liniju koda:

OpenTasks.Load (Information Registers.TasksStatus.Get a List of Not ClosedTasks ());

U kodu se pozivamo na proceduru koju smo opisali " GetList of UnclosedTasks»I rezultat njegovog izvršenja nalazi se u tabeli.

Vratimo se na konstruktor obrasca i dodajmo grupu tipa "Normalna grupa bez prikaza" sa dva dugmeta: " Stvoriti" i " Osvježiti". Nekretnina " Grupisanje"Za dodanu grupu postavite vrijednost" Horizontalno ". Za izražajniji dizajn dugmadi, dodajmo slike i promijenimo zadani font.

Sada odaberimo dugme “ Stvoriti„I pitaj je globalni tim « Zadaci: kreirati". Ovo će vam omogućiti da kreirate zadatke bez potrebe da ulazite u sam direktorij. Pritiskom na drugo dugme ažurirat ćemo sadržaj tabele sa zadacima. Da biste to učinili, morate kreirati dodatna komanda forme.

Sve nove komande obrasca kreiraju se na kartici istog imena “ Komande". Princip je jednostavan - dodajemo novu naredbu, opisujemo kod akcije u njoj, a zatim povezujemo komandu sa interfejsom, u našem slučaju sa dugmetom.

Također, imajte na umu da razvijamo upravljanu aplikaciju, tako da moramo jasno razlikovati klijentski i serverski kod. Kada se pritisne dugme, pojaviće se kontekst " On Client", I mi ćemo primati podatke iz baze podataka sa servera. U kodu to izgleda ovako:

& OnClient procedura UpdateTasksList (Command) UpdateList (); EndProcedure & AtServer procedura OnCreateAtServer (Failure, StandardProcessing) OpenTasks.Load (Information Registers.TaskStatus.GetList of Not ClosedTasks ()); Kraj procedure

Sada definirajmo oblik radne površine kao područje početna stranica... Otvorite svojstva konfiguracije (odaberite najviši čvor i kliknite " Alt + Enter") I postavite vrijednost" Jedna kolona", Nakon što na listu dodamo naš obrazac" Desktop».

Aplikacija je potpuno spremna i vrijeme je da je testiramo u radu. Pokušajte pokrenuti primjer i kreirati nekoliko zadataka sa statusom koji nije " Završeno". Registar informacija je dopunjen novim unosima (ovo se može pogledati kroz stavku menija " Sve funkcije") A neki od njih su prikazani na radnoj površini.

Slijetanje na Android

Konfiguracija odlično radi na desktopu, a sada je vrijeme da je testirate na mobilnom OS emulatoru. Da pripremite novi emulator, pokrenite interpreter komandi ( cmd.exe) i idite na "toos" direktorij distribucije sa Android SDK-om. Pokrenite naredbu " android.bat avd", koji će pokrenuti virtuelno Android uređaji... U njemu kliknite na dugme "Kreiraj" i u prozoru koji se pojavi navedite parametre virtuelnog uređaja. U svom radnom okruženju odlučio sam da se ugledam Nexus S sa Androidom verzija 4.2.2. (API nivo 17).

Nakon kreiranja uređaja, odmah ćemo ga pokrenuti. Dok se android učitava, vratimo se na konfigurator i objavimo našu aplikaciju na web serveru. U glavnom meniju konfiguratora izaberite stavku " Konfiguracija» -> « Mobilna aplikacija» -> « Objavi". U prozoru postavki publikacije navedite naziv aplikacije (može biti bilo koji), web server (u našem okruženju bi trebao biti samo jedan) i direktorij za pohranjivanje postavki.

Navodeći kao ime " todo-mobile", Aplikacija će biti dostupna na adresi -" http: // host / todo-mobile". Kliknite na "ok" i pokušajte pristupiti objavljenoj aplikaciji pomoću pretraživača. Ako je uspješan, server će vratiti generirani konfiguracijski XML-kod.

Vraćamo se na emulator i učitavamo aplikaciju sa platformom za razvoj mobilnih uređaja u nju. Sam fajl aplikacije dostupan je zajedno sa isporukom razvojne mobilne platforme i zove se "1cem-arm.apk". Za instaliranje ove aplikacije u emulatoru, koristit ćemo uslužni program " adb.exe"Iz imenika" platformski alati»: adb.exe install –r 1cem-arm.apk.

Nakon uspješne instalacije, otvorite listu aplikacija u emulatoru i pokrenite platformu za razvoj mobilnih uređaja. U prozoru koji se otvori kliknite na " Dodaj aplikaciju"I u polju" adresa "navedite URL našeg web servera. Imam ga http://192.0.168.106/todo-mobile... Kliknite na " Dodati”I naša konfiguracija je uspješno migrirana na mobilnu platformu. Aplikacija je spremna za rad. Testirajte rezultat i vratite se u konfigurator, vrijeme je da aplikacijama omogućite "mobilnu funkcionalnost".

Slanje SMS/MMS poruka

Funkcije za rad sa SMS/MMS-om mobilne platforme za razmjenu poruka podržane su na različite načine. Na primjer, kada aplikacija radi na Androidu, programer ima priliku da se pretplati na SMS i pristupi novim porukama odmah po prijemu. Nažalost, ova funkcija nije dostupna na iOS-u, tako da bi dokumentacija trebala biti pri ruci tokom razvoja.

Za slanje SMS-a poruke dostavljenog objekta SMS poruka... Razmotrimo primjer:

& OnClient Procedura SendSMSMmessage (Primalac, MessageText) NewMessage = Nova SMSMessage (); NewMessage.Text = Tekst poruke; NewMessage.Recipients.Add (Primalac); MeansTelephony.SendSMS (NewMessage); Kraj procedure

Kod je dovoljno jednostavan i jedva da mu treba komentar. Pogledajmo sada pretplatu na dolazne poruke:

& OnClient procedura ConnectMessageReceivingHandler () SubscribeOnMessages = NewNotificationDescription ("Upravljač novim porukama", ThisObject); MeansTelephony.ConnectSMSMessages rukovalac (SubscribeMessages); EndProcedure & AtClient Procedura Rukovanje novim porukama (poruka, dodatni parametri) // Obrada nove poruke //Message.Send, Message.Text; Kraj procedure

Procedura " Obrada novih poruka„Biće pozvan svaki put kada primite novi SMS. Kroz parametar " Poruka"Objekat tipa" SMS poruka»I lako možemo dobiti tekst poruke i podatke o pošiljaocu.

Rad sa MMS porukama se izvodi na sličan način. Prvo kreiramo SMS poruku, a zatim joj dodamo prilog (na primjer, slike). Ovako jednostavnom radnjom, SMS se pretvara u MMS:

Nova poruka = ​​Nova SMS poruka (); Prilog = Novi MMS prilog; Attachment.Data = Slika; Attachment.ContentType = "image / jpeg"; MMS poruka Prilozi Dodaj (prilog);

Upućivanje poziva iz mobilne aplikacije

Programski poziv se izvodi pomoću metode "DialNumber" globalnog objekta "Telephony Means". Prije pozivanja metode, vrlo je preporučljivo provjeriti mogućnost upućivanja poziva:

Ako telefonija znači Podržani broj biranja () Onda telefonija znači. broj biranja (broj telefona, odmah pozovi); EndIf;

Parametar " Nazovi odmah»Utječe na performanse biranja. Kada je jednako " Tačno», Broj se bira automatski nakon toga standardna aplikacija upućivanje poziva. Ako je postavljeno na False, korisnik će također vidjeti standardni interfejs aplikacija za biranje, ali morate pritisnuti " Pozovi».

Spisak poziva

Mobilna platforma omogućava programeru interakciju sa evidencijom poziva. Na primjer, lako možete dobiti listu odlaznih, propuštenih ili dolaznih poziva. Funkcija podržana samo na Androidu:

CallLog = Telephony Means.GetCallLog (); Selection = New SelectionDataComposition; SelectionElement = Selection.Elements.Add (Tip ("DataCompositionSelectionElement")); SelectionElement.LeftValue = NewDataCompositionField ("RingType"); SelectionItem.ComparisonType = LayoutComparisonTypeData.Equal; SelectElement.RightValue = CallLogoCallType.Missed; SelectionItem.Usage = Tačno; Lista evidencije poziva = Dnevnik poziva. Pronađi zapise (izbor); // Lista CallLog zapisa će sadržavati kolekciju zapisa

Geolokacija

Skoro bilo koji moderan pametni telefon ima funkciju određivanja geolokacije. Ovu funkcionalnost možete koristiti iz ugrađenog 1C jezika. Dobijanje trenutnih koordinata uređaja može se uvjetno podijeliti u 2 faze: odabir provajdera geolokacije i obrada dobivenih koordinata:

// Neka se izbor provajdera omogući platformi IdealProvider = Geo Positioning Tools. Get the Most AccurateProvider (); Koordinate = Sredstva geolokacije. GetLastLocation (IdealProvider); // Ako su koordinate primljene davno, ažurirajte If Coordinates = Undefined OR CurrentDate () - Coordinates.Date> 3600 Zatim Geolocation Tools.UpdateLocation (IdealProvider, 60); Koordinate = Sredstva geolokacije. GetLastLocation (IdealProvider); EndIf;

Rad sa multimedijalnim funkcijama

Programer ima mogućnost snimanja slika, videa, audio snimaka koristeći ugrađeni jezik: Uslikaj(), Napravite video snimanje(), Napravite audio snimanje().

Za koji mobilni OS je bolje razvijati na 1C?

Uprkos mojoj ljubavi prema Apple tehnologija, najbolje je kreirati mobilne aplikacije koristeći 1C platformu za Android. Postoji nekoliko razloga za to, ali najvažniji su podržane funkcije. Nažalost, pod iOS-om mnoge neophodne stvari nisu podržane. Na primjer, nemogućnost programskog pretplate na SMS poruke ili interakcije sa evidencijom poziva može onemogućiti implementaciju nekih ideja. Android je prijateljskiji u tom pogledu. Ne zaboravite na cijenu samih uređaja. Neće svaka kompanija biti voljna trošiti se na Appleove mobilne uređaje.

Umjesto završetka

platforma " 1C: Preduzeće 8»U praksi je dokazala svoju spremnost da postane jednostavan alat za razvoj korporacije. Aplikacije za mobilne platforme. Primjeri razmatrani u članku suvišna su potvrda toga. Uopće nije potrebno trošiti resurse na učenje izvornih alata ako se funkcionalnost aplikacije uklapa u mogućnosti mobilne platforme i kompanijom dominiraju 1C proizvodi.

Nedavno je 1C mobilnu platformu 1C Enterprise 8.3 distribuirao samo među plaćenim pretplatnicima. Ali ne tako davno, 1C je revidirao svoju politiku ovaj problem a sada se i elektronska verzija mobilne platforme besplatno distribuira zajedno sa.

Šta je 1C 8.3 mobilna platforma?

Možda već znate da vam sama platforma 1C Enterprise 8.3 omogućava razvoj mobilnih aplikacija. U ovom slučaju, razvoj mobilne aplikacije se odvija na isti način kao i razvoj "normalne" konfiguracije. Ali kako se konfiguracija razvijena na ovaj način može pokrenuti na pametnom telefonu ili tabletu? Za ove svrhe potrebna nam je mobilna platforma 1C Enterprise 8.3.

Mobilna platforma 1C Enterprise 8.3 je skup programa koji vam omogućavaju da instalirate i pokrenete konfiguracije (aplikacije) na pametnim telefonima i tabletima koji rade Google android ili Apple iOS.

Glavna prednost 1C mobilne platforme je što se aplikacija (konfiguracija) razvija za oba mobilna operativna sistema odjednom, a zatim jednostavno instalira na mobilni uređaj. Dakle, nakon što smo napisali mobilnu aplikaciju u 1C, možemo je odmah instalirati svim zaposlenima u kompaniji, bez obzira na kojem operativnom sistemu (Android ili iOS) radi njihov telefon ili tablet.

Bitan! Za razvoj mobilnih aplikacija toplo preporučujemo korištenje verzije 1C platforme koja nije niža od 8.3.4.482. Obrazovna verzija platforme 1C Enterprise 8.3.4.482 uključena je u ovu distribuciju 1C mobilne platforme. Možete se upoznati s ograničenjima obrazovne verzije platforme

1C: Enterprise mobilna platforma je skup alata i tehnologija za brzi razvoj aplikacija za mobilne operativne sisteme iOS, Android, Windows Phone / 8.1 / 10, koristeći ista razvojna okruženja (Konfigurator ili 1C: Entrprise Development Tools) i iste razvojne metode, koje se koriste za "normalne" 1C aplikacije. Rezultat su autonomne, offline aplikacije, ali sa mogućnošću razmjene informacija sa vanjskim svijetom korištenjem širokog spektra integracijskih alata koje pruža platforma: Web i HTTP usluge, e-mail, itd. Budući da su protokoli za razmjenu nezavisni od platforme, mobilna platforma 1C, između ostalog, predstavlja sredstvo za brzo kreiranje mobilnog front-enda za gotovo svako serversko rješenje.

Pozadina

Još u danima 1C: Enterprise verzije 8.0 (i novijih verzija), postojao je softverski proizvod pod nazivom "Proširenje za džepne računare". Ekstenzija je omogućila kreiranje proizvoda samo za Windows Mobile, Windows CE, itd. Proizvod je imao vlastiti konfigurator i server i bio je podržan do izdanja 1C: Enterprise verzije 8.3. Najnovija verzija ekstenzije (8.2.9) objavljena je u oktobru 2013., a puna podrška je prestala 1. januara 2015. godine.
Ekstenzija je imala ograničenu upotrebu čak i za vrijeme procvata komunikatora na Windows Mobile, a odlazak takvih uređaja sa tržišta mobilnih uređaja očigledno nije doprinio popularnosti ovog softverskog proizvoda. IOS i Android uređaji zauzeli su gotovo cijelo tržište mobilnih uređaja i postalo je očigledno da je podrška ovim operativnim sistemima jedna od ključnih tačaka za sistem koji mora funkcionirati u modernom mobilnom svijetu. Također se činilo očiglednim da bi se glavni pristup postojeće platforme 1C: Enterprise trebao koristiti i na mobilnim uređajima: programer aplikacije prije svega treba razmišljati o rješavanju primijenjenih problema, a drugo, o tome koje mogućnosti operativnog sistema koristi za rješavanje ovi problemi.... Drugim riječima, potreban vam je alat koji izoluje programera aplikacije od specifičnosti specifičnog mobilnog OS-a i razvojnog alata.

Mobilna platforma

Na osnovu iskustva u razvoju i funkcionisanju ekstenzije za džepne računare, odlučeno je da se razvije specijalizovani sistem koji bi zadovoljio nekoliko zahteva:
  • trebalo bi da podržava moderne popularne mobilne operativne sisteme i uređaje pod njihovom kontrolom. Prije svega, to su iOS od Apple-a i Android od Google-a.
  • ovaj sistem treba da omogući korišćenje razvijenih aplikacija u stilu prihvaćenom na savremenim mobilnim uređajima. Konkretno, interfejs bi trebalo da se oslanja na ručnu kontrolu (u bukvalnom smislu te reči) korišćenjem ekrana osetljivih na dodir.
  • sistem treba da obezbedi jedinstven programski interfejs za implementaciju različitih specifičnih mehanizama, bez obzira na mobilni OS koji se koristi.
  • programer mora koristiti isti alat i razvojne pristupe kao kada razvija aplikacije za „običan“ računar.
  • programer aplikacije bi trebao razviti rješenje aplikacije u poznatom razvojnom okruženju, koristeći isti kod za desktop i mobilne sisteme kad god je to moguće.
  • sučelje aplikativnog rješenja koje radi na mobilnom uređaju treba biti slično za različite platforme i, u cjelini, nedvosmisleno prepoznatljivo.
Rezultat razvoja bila je takozvana mobilna platforma, koja je objavljena 29. maja 2013. u verzijama za iOS i Android. 1C: Enterprise mobilna platforma je skup alata i tehnologija koji vam omogućavaju kreiranje aplikacija za iOS, Android, Windows Phone / 8.1 / 10 mobilne operativne sisteme koristeći isto razvojno okruženje (Konfigurator) i iste metode razvoja kao i za konvencionalne aplikacije na platformi 1C: Enterprise. Rezultat su samostalne, vanmrežne aplikacije, ali sa mogućnošću razmjene informacija sa vanjskim svijetom korištenjem širokog spektra integracijskih alata koje pruža platforma: web i HTTP usluge, e-mail, itd.
Zajednica je prilično dobro prihvatila mobilnu platformu, počeli su se pojavljivati ​​razni članci na ovu temu (na primjer, i). Da bi se razvila potpuno funkcionalna aplikacija koja radi istovremeno na velikoj većini mobilnih uređaja, sada je bilo potrebno minimalno vrijeme i znanje, koje se suštinski nije razlikovalo od znanja "običnog" programera aplikacija na platformi 1C: Enterprise. . Nesumnjivo, tako nizak prag ulaska privlači programere koji trebaju osigurati neke osnovne funkcionalnosti za terenske radnike, šefove i druge mobilne zaposlenike koji trebaju raditi s korporativnim sistemom.
Lako je započeti razvoj mobilne aplikacije na platformi 1C: Enterprise. U konfiguratoru postavite svojstvo "Svrha upotrebe" na vrijednost "Mobilni uređaj" u konfiguraciji. U tom slučaju će neki od objekata konfiguracije aplikacije postati nedostupni (karteci tipova karakteristika, kontni planovi itd.), ali svojstva specifična za mobilne aplikacije (na primjer, ugrađena multimedija i geolokacija mobilnog uređaja itd.). ) će postati dostupan.


Istovremeno, možete otkloniti greške u glavnim algoritmima aplikacije (koji se ne odnose direktno na mobilne specifičnosti) direktno u konfiguratoru na računaru programera. Istovremeno, preporučljivo je da se sekcije koda u kojima se poziva "mobilna" funkcionalnost uokvire odgovarajućim uputstvima pretprocesoru kako bi se izbjegle greške pri izvršavanju koda na osobnom računalu:
# Ako je MobileApplication klijent, onda su podaci = GeolocationServer.GetProviderName (); #EndIf
Počevši od verzije mobilne platforme 8.3.7, postalo je dostupno otklanjanje grešaka aplikacije direktno na mobilnom uređaju (više o tome u nastavku).

Razvoj na mobilnoj platformi može pratiti različite pristupe, ali se može istaknuti nekoliko ključnih tačaka. Sa stanovišta izgradnje stvarne mobilne aplikacije, njenog funkcionalnog bogatstva i uloge u IT infrastrukturi preduzeća:

  • mobilna aplikacija može biti sastavni i sastavni dio postojećeg informacionog sistema preduzeća. Mobilna aplikacija će pružiti interfejs i druge mogućnosti (uključujući razmjenu podataka) prilagođene mogućnostima postojećeg informacionog sistema. U ovom slučaju, mobilna aplikacija je vrlo čvrsto povezana sa „uobičajenim“ informacionim sistemom i ne može se njome upravljati odvojeno od njega.
  • mobilna aplikacija obavlja specifične zadatke koji praktično nisu povezani sa informacionim sistemom preduzeća. Postoji samo minimalan skup podataka koji se razmjenjuju između mobilne aplikacije i informacionog sistema. U ovom slučaju, najvjerovatnije će mobilna aplikacija izvršiti razmjenu prema nekom standardiziranom protokolu, što omogućava korištenje ove mobilne aplikacije u potpuno različitim slučajevima i situacijama.
Dvije gore opisane situacije mogu se smatrati ekstremnim opcijama. Ali to nisu jedine mogućnosti razvoja. Programer aplikacije može samostalno izabrati opcije integracije između mobilne aplikacije i informacionog sistema koji joj služi kao back office.
Mobilna aplikacija je razvijena kao potpuno samostalna konfiguracija, ali može dijeliti dio izvornog koda s "roditeljskom" konfiguracijom. Usput, "roditeljska" konfiguracija možda fizički ne postoji (na primjer, ako razvijate neku vrstu univerzalne aplikacije koja može raditi sa različitim sistemima koristeći univerzalni protokol).

Uređaj sa mobilnom platformom

Šta je mobilna platforma i šta može?
Iskreno rečeno, mobilna platforma je samo jedna od komponenti cijelog kompleksa, zahvaljujući kojoj "1C: Enterprise 8" radi na mobilnim uređajima. Dakle, primijenjeni programer radi sa sljedećim komponentama:
  1. Sama mobilna platforma je mobilni dio okvira 1C: Enterprise. Može biti obična (koja se koristi prilikom izrade aplikacije za objavljivanje u prodavnici aplikacija) i platforma za razvoj mobilnih uređaja, koja se koristi (iznenađenje) tokom razvoja mobilne aplikacije.
  2. Mobilna konfiguracija je konfiguracija softverskog sistema 1C: Enterprise napisana u obliku XML datoteke.
  3. Kombinacija mobilne platforme i mobilne konfiguracije rezultira mobilnom aplikacijom.
  4. Sakupljač mobilnih aplikacija je specijalizirano aplikativno rješenje koje može pretvoriti mobilnu platformu, konfiguraciju, splash screenove, ikone i druge komponente u gotovu datoteku mobilne aplikacije koja se može preuzeti na Apple AppStore, Google Play, Windows Phone aplikacije / Windows aplikacije .
Zašto je sve tako teško? Zašto se to ne može uraditi na mobilnom uređaju baš kao što se radi na velikoj platformi? One. instalirati jednu mobilnu platformu na uređaj i učitati bilo koji broj konfiguracija/aplikacija u njega? Ovo je zabranjeno ograničenjima licenciranja za aplikacije koje se distribuiraju putem prodavnica aplikacija. Na primjer, ako vaša aplikacija preuzima izvršni kod (u obliku skripte) preko Interneta, tada se nikada neće pojaviti u Apple App Store-u. Međutim, treba shvatiti da mogućnost preuzimanja bilo koje konfiguracije koja se nalazi na mobilnoj platformi programera nije namijenjena distribuciji mobilnih aplikacija čak ni unutar jedne kompanije, a kamoli distribuciji klijentima programera.
Nakon što je mobilna aplikacija na ciljnom mobilnom uređaju, postaje potrebno koristiti neku vrstu baze podataka (podaci moraju biti negdje pohranjeni). Kao mehanizam baze podataka, mobilna platforma koristi vlastiti mehanizam baze podataka, koji se prenosi na mobilnu platformu sa platforme za personalni računar. Kompaktan je i dovoljno brz, ali glavna stvar je da pruža potpuno isto ponašanje na koje su programeri aplikacija navikli kada rade na platformi za personalne računare.
Također je vrijedno napomenuti da je mobilna aplikacija unutar sebe izgrađena prema istoj shemi kao i rad konvencionalne platforme s informacijskom bazom zasnovanom na datotekama: postoji klijentski dio, postoji serverski dio, postoji baza podataka i postoji interakcija klijent-server.
Sama mobilna platforma je napisana kao izvorna aplikacija, kompajlirana u binarni kod za glavne procesorske arhitekture koje se trenutno koriste u mobilnom svijetu: to su ARM v5 i noviji i x86 arhitektura.
Osim toga, mogu biti potrebne posebne dozvole za interakciju s određenim mogućnostima mobilnog uređaja (telefonija, GPS, rad s ugrađenom kamerom itd.). Za iOS se postavljaju direktno tokom rada same aplikacije, a za Android dozvole se specificiraju prilikom kreiranja aplikacije. Potrebne dozvole su specificirane prilikom razvoja mobilne aplikacije i koristi ih kreator mobilnih aplikacija, ali više o kreatoru kasnije.

Malo o platformi za programere

Dok razvijamo mobilnu aplikaciju, nismo vezani licencnim ograničenjima nametnutim mobilnim aplikacijama koje se distribuiraju putem prodavnica aplikacija. To znači da mobilnu platformu 1C možemo koristiti na isti način kao što koristimo "veliku" platformu na osobnom računalu - instalirajte samu mobilnu platformu na pametni telefon/tablet i u nju učitajte konfiguracije mobilnih aplikacija. Nakon pokretanja, platforma će nam pokazati listu aplikacija registrovanih u njoj:

Da biste dodali novu aplikaciju na platformu, potrebno je postaviti XML datoteku sa njenim opisom na resurs kojem se može pristupiti s mobilnog uređaja putem HTTP protokola. Najprikladniji način da to učinite je iz Konfiguratora, preko menija "Konfiguracija \ Mobilna aplikacija \ Objava". U ovom slučaju, XML datoteka sa konfiguracijom aplikacije se postavlja na web server na računaru programera (prema tome, ovaj računar mora imati web server - IIS ili Apache).

Ako je za aplikaciju navedena opcija "Ponovo pokreni iz konfiguratora", aplikacija na mobilnom uređaju će se automatski ažurirati s računala programera svaki put kada programer ažurira XML konfiguracijsku datoteku koja se nalazi na web serveru.
Kada je omogućena opcija "Otklanjanje grešaka je dozvoljeno", moguće je korak-po-korak otklanjanje grešaka aplikacije na mobilnom uređaju iz konfiguratora na računaru programera (u konfiguratoru opcija "Otklanjanje grešaka putem HTTP-a" u "Servis \ Options" meni mora biti odabran). Ako stavite tačke prekida u kodu u konfiguratoru i odaberete naredbu "Mobilna aplikacija - počni otklanjanje grešaka", mobilna aplikacija na uređaju će se zaustaviti kada izvršni kod dostigne tačku prekida, a u konfiguratoru možete vidjeti vrijednosti varijable, stek poziva, itd.

šta to može učiniti?

Dakle, šta radi mobilna platforma? Dosta:)
Ako ne koristite posebne termine "1C: Enterprise", tada mobilna platforma pruža priliku za rad sa regulatornim i referentnim informacijama, sastavljanje dokumenata koji opisuju neke vanjske radnje, pregled izvještaja, komunikaciju sa vanjskim svijetom koristeći internetske usluge i još mnogo toga. više. One. pruža programeru aplikacija mogućnost da napiše dovoljno funkcionalnu aplikaciju, na primjer, računovodstveni program kućnih financija, program za trgovinu na otvorenom i slično.
Ali pored uobičajene funkcionalnosti koja se nalazi na platformi za personalni računar, mobilna platforma treba da obezbedi rad sa specifičnim mogućnostima koje su inherentne samo mobilnim uređajima:
  • rad sa pozivima i evidencijom poziva;
  • rad sa kratkim porukama (SMS) i njihovom listom;
  • kontakti;
  • kalendari;
  • geolokacija (bez rutiranja);
  • omogućava snimanje fotografija, kao i video i audio snimanje;
  • reagovati na promjene u orijentaciji ekrana;
  • rad sa obavještenjima (lokalni i PUSH, kako direktno tako i preko posebne posredničke usluge);
  • skenirajte barkodove i QR kodove kamerom
  • Monetizacija mobilnih aplikacija (tj. način da se programeru mobilnih aplikacija daju prilike za dodatni prihod):
    • Rad sa Apple In-App Purchase (za iOS) i Google Play In-App Billing (za Android), koji se mogu koristiti za organiziranje raznih vrsta pretplata, kupovine funkcionalnosti itd.
    • Prikazivanje oglasa u mobilnim aplikacijama (iAd za iOS i AdMob za Android su još uvijek podržani).
  • itd.
Jasno je da neke mogućnosti možda neće biti dostupne na svakom određenom uređaju, stoga, da biste utvrdili šta se može učiniti na uređaju na kojem je pokrenuta mobilna aplikacija, predviđene su posebne metode koje vam omogućavaju da saznate šta je dostupno na ovom uređaju , na primjer, mogućnost biranja brojeva ili ne. Tako se implementira otprilike sljedeća shema korištenja: provjeravamo da li je moguće iskoristiti neku mogućnost ili ne i ako je moguće koristimo:
Ako telefonija znači Podržani broj biranja () Onda telefonija znači. broj biranja (broj telefona, odmah pozovi); EndIf;
Za nas je važan zadatak da sakrijemo detalje o korištenom mobilnom OS-u od programera aplikacije, da mu pružimo objedinjene mehanizme za korištenje mobilnih funkcionalnosti. Vjerujemo da uspješno rješavamo problem. Razlike u implementiranim mehanizmima ili izostaju ili su minimizirane. Osim, naravno, kada u nekom od OS-a uopće nema funkcionalnosti.
Na primjer, tehnika rada s PUSH obavijestima je vrlo različita za Google i Apple. Uložili smo mnogo napora da objedinimo mehanizam za rad sa PUSH notifikacijama iz koda aplikacije. U slučaju mobilne aplikacije uspjeli smo gotovo 100%: isti kod aplikacije na mobilnom uređaju upravlja primanjem PUSH obavijesti i na iOS-u i na Androidu. I kod za slanje PUSH obavijesti u serverskoj aplikaciji također izgleda isto. Ali da bismo postigli takvo ujedinjenje, morali smo razviti poseban proxy server https://pushnotifications.1c.com/, koji od programera skriva različite tehnike za rad sa Apple Push Notification Service (APNS) i Google Cloud Messaging (GCM). Čitava razlika leži u različitim postavkama direktno na proxy stranici https://pushnotifications.1c.com/; da biste radili sa APNS-om, potrebno je da učitate SSL sertifikat na sajt (koji Apple izdaje za aplikaciju na zahtev programera), da biste radili sa GCM, navedite jedinstveni identifikator aplikacije.
Očigledno je nemoguće odmah implementirati sve funkcije koje želite imati u mobilnoj aplikaciji. I uvijek morate pronaći kompromis između nekoliko vrlo korisnih stvari. A ako vam nešto nedostaje, pišite nam koje poslovne zadatke (uostalom, platforma je prvenstveno alat za implementaciju poslovnih zadataka!) ne možete riješiti i koji mehanizam bi vam pomogao u tome.

Kako izgleda?

Grafički interfejs mobilne platforme je posebna tema. U 1C: Enterprise, kao što znate, sučelje je opisano deklarativno. S jedne strane, ovo nameće određena ograničenja razvoju korisničkog sučelja (na primjer, ne postoji mogućnost pozicioniranja piksel po piksel), ali, s druge strane, omogućava platformi da ujednačeno prikazuje sučelje na ekranima. različitih veličina, u tankom klijentu i web klijentu. Pokušali smo da se pridržavamo istog principa i na mobilnoj platformi. Koliko dobro smo to uradili? Pokušajmo to shvatiti.
U prvim verzijama mobilne platforme (uključivo do 8.3.5), grafičko sučelje aplikacija izgledalo je vrlo poznato sofisticiranim korisnicima 1C; u stvari, on je prenio sučelje poznato iz "desktop" verzija 1C u mobilni svijet. Ali sa stanovišta korisnika koji ranije nisu bili upoznati sa 1C, interfejs je izgledao pomalo arhaično.
Uzimajući u obzir komentare i sugestije, radikalno smo revidirali naš pristup mobilnom interfejsu u verziji 8.3.6. Možemo reći da smo napravili potpuno novo mobilno sučelje za naše aplikacije. Ima mnogo toga zajedničkog sa našim Taxi interfejsom. Model razvoja za programere mobilnih aplikacija odgovara modelu razvoja u Taxi-u. Istovremeno, mobilni interfejs je u potpunosti konzistentan sa pristupima dizajnu i prihvaćen u mobilnim aplikacijama. Interfejs u potpunosti uzima u obzir specifičnosti mobilnog svijeta: mala veličina ekrana (što znači da bi dizajn grafičkih elemenata trebao postati asketskiji - bez sjenki, gradijenata), postoji podrška za pokrete prstiju itd. Zanimljiva činjenica: novi mehanizam platforme odgovoran za postavljanje elemenata u formu (layouter) pokazao se toliko uspješnim i pravovremenim za mobilnu platformu da je objavljen ranije (u verziji 8.3.6) nego na PC platformi (u verziji 8.3.7) za koji je prvenstveno namijenjen.
Na slici možete vidjeti kako se naš interfejs promijenio.
Aplikacija "Upravljanje malom kompanijom" na mobilnoj platformi verzija 8.3.5:


Isto je i na verziji 8.3.6:

A ovako izgleda sučelje mobilne platforme uživo:

Kolekcionar - a šta je ovo zver?

Kao što je ranije spomenuto, mobilna aplikacija se sastoji od nekoliko komponenti (stvarna mobilna platforma, konfiguracija, različiti resursi), koje moraju biti jedinstvena cjelina za postavljanje aplikacije u prodavnicu. Kako bi se olakšalo pretvaranje komponenti u aplikaciju, razvijen je kreator mobilnih aplikacija. Ovo je konfiguracija (aplikacija) kreirana na platformi 1C: Enterprise, koja u svojoj bazi podataka pohranjuje sve komponente potrebne za formiranje mobilne aplikacije. Da bi kolektor radio svoj posao potrebno je da preuzmete i instalirate razne softverske pakete koji su mu potrebni za rad (Java i Android SDK i sl.), zatim u postavkama kolektora navesti putanje do ovih paketa i postaviti neke dodatne parametri (ključevi programera itd.).


Kada je konfigurisan, kolektor je spreman za rad. Općenito, rad sa kolektorom izgleda ovako:
  1. Preuzmite verziju 1C mobilne platforme na kojoj ćemo izgraditi aplikaciju
  2. Učitavamo konfiguraciju iz koje ćemo napraviti mobilnu aplikaciju
  3. Kreiramo mobilnu aplikaciju, u kojoj naznačimo za koje platforme (Android, iOS, Windows) treba izvršiti montažu, koju konfiguraciju i platformu treba koristiti (posebno naznačimo koji certifikat koristiti za sklapanje za iOS ako aplikacija radi sa PUSH) obavještenjima).
  4. Vršimo "jedan klik" montažu mobilne aplikacije za sve odabrane platforme
  5. "Još jednim klikom" šaljemo prikupljene mobilne aplikacije u prodavnice aplikacija (ako se radi o aplikaciji za iOS ili Android). U prodavnicama Windows aplikacija / Windows Phone aplikacija, aplikacija se mora preuzeti ručno, jer Microsoft još uvijek ne nudi API za postavljanje aplikacije u prodavnicu.
Posebno treba napomenuti da kolektor nije potreban za razvoj i otklanjanje grešaka u mobilnoj aplikaciji. Da biste to učinili, možete koristiti platformu mobilnog programera i alate konfiguratora za prijenos konfiguracije na mobilni uređaj. Ali da biste distribuirali mobilnu aplikaciju, potreban vam je sakupljač.

Aplikacije na mobilnoj platformi

Sama kompanija 1C izdaje niz aplikacija na mobilnoj platformi koje su mobilni klijenti 1C serverskih aplikacija (1C: Upravljanje dokumentima, 1C: Upravljanje malim preduzećima, itd.). Ove aplikacije implementiraju podskup funkcionalnosti "običnih" klijenata. U slučaju mobilne verzije "1C: Menadžment malog preduzeća", funkcionalnost je dovoljna za potpuno korištenje programa, a često smo viđali situaciju kada je mobilna verzija aplikacije dovoljna da klijenti mogu poslovati. .
Naši partneri koriste mobilnu platformu kako za razvoj masovno proizvedenih mobilnih aplikacija koje se distribuiraju putem prodavnica aplikacija, tako i za prilagođene aplikacije kreirane na zahtjev određenih kupaca. Među aplikacijama koje kruže, postoje aplikacije koje koriste back-end koji nije 1C kao centralno skladište podataka.
Među mobilnim aplikacijama kreiranim po narudžbi kupaca, možemo spomenuti mobilni klijent za 1C: Manufacturing Enterprise Management, kreiran po narudžbi velikog mašinskog holdinga. Stotinjak zaposlenih u holdingu koristi mobilnu aplikaciju u vrućim radnjama, gdje je iz sigurnosnih razloga nemoguće snabdjeti stacionarne računare. Ugrađena kamera mobilnog uređaja koristi se za čitanje bar kodova proizvoda i njihovo traženje na listi zaliha, mobilna aplikacija vam omogućava da shvatite u kojoj se fazi tehnološkog lanca ovaj proizvod nalazi, da označite prolazak sljedeće operacije po proizvodu itd.

Zaključak

Pokušali smo vrlo površno opisati mobilnu platformu, šta vam ona omogućava i zašto je ispala onakva kakva je. Ovaj članak ne govori gotovo ništa o mobilnim Windowsima. Postoji nekoliko razloga za to: prvo, verzija mobilne platforme za Windows izašla je relativno nedavno („1C: Enterprise“ verzija 8.3.7), a drugo, ova verzija mobilne platforme nema značajnih razlika od implementacija za druge mobilne operativne sisteme... Naravno, povećaćemo funkcionalnost za Windows OS. Kao i povećanje funkcionalnosti mobilne platforme u cjelini. Dakle, u bliskoj budućnosti imamo - podršku u mobilnoj platformi eksternih komponenti; ovaj mehanizam (dugo dostupan na "velikoj" platformi) će omogućiti programerima da implementiraju funkcionalnost koja iz bilo kojeg razloga nije dostupna na mobilnoj platformi.
Tradicionalno, prednosti tehnološke platforme 1C: Enterprise su lakoća razvoja za programere i brzina kreiranja i modifikacije poslovnih aplikacija. 1C mobilna platforma donijela je oba ova aduta u mobilni svijet. 1C mobilna platforma je prilika da se brzo razvije aplikacija koja radi na tri najpopularnije mobilne platforme (iOS, Android, Windows Phone/8.1/10). A zahvaljujući širokom spektru dostupnih alata za integraciju neovisno o platformi (Web i HTTP usluge, itd.), 1C mobilna platforma je prilika za brzo kreiranje mobilnog klijenta za tri mobilne platforme za gotovo svaku serversku aplikaciju koja podržava bilo koju od dostupne metode integracije u 1C platformu (Web i HTTP usluge, razmjena datoteka, itd.).

Samo registrovani korisnici mogu učestvovati u anketi. , molim.