Aplicație mobilă 1c pentru Android. Sfaturi de automatizare

Pe 28 septembrie a acestui an, 1C a lansat o versiune de probă a platformei 8.3.2.163, care era destinată testării, fără prea mult zgomot și patos. Cei interesați pot citi lista completă a modificărilor și îmbunătățirilor sau, dacă au abonament, .
Dintre aceste îmbunătățiri, mi se pare că „Platforma mobilă 1C: Enterprise 8” este destul de „gustoasă”, ceea ce vă permite să creați o aplicație pentru sistemele de operare mobile Android sau iOS folosind instrumentele obișnuite 1C.

Platforma mobilă, așa cum scriu dezvoltatorii înșiși, „Acesta este numele general al unei tehnologii care vă permite să creați aplicații care rulează pe dispozitive mobile care rulează sisteme de operare Android sau iOS”.
„O aplicație mobilă instalată pe un dispozitiv este o combinație între o platformă mobilă și baza de informatii.».

Adică, pentru a spune simplu, vă puteți compila configurația scrisă într-o aplicație pentru Android (.apk) sau iOS (.zip). Atunci toată această bunătate poate fi întinsă Google Play sau AppStore. Adevărat, dacă un program pentru Android poate fi semnat cu o cheie creată acolo imediat în 1C și va fi gata pentru publicare imediat, atunci pentru a publica o aplicație în AppStore, aceasta va trebui mai întâi asamblată folosind programul Xcode pe un computer cu sistem de operare. sistem Mac OS X. Și, desigur, publicarea în oricare dintre aceste magazine necesită o licență de dezvoltator.
Totul sună bine și, desigur, am vrut să încerc noi funcții în acțiune.

Creare aplicatie de mobil pe 1C

Pentru asta avem nevoie o noua versiune platform(), fișierul care este preluat, Android SDK și JDK.
Vă avertizez imediat: acum nu îmi propun sarcina de a arăta procesul de dezvoltare a ceva specific pe 1C, dar vreau doar să verific și să vă arăt că - da, lumea a luat-o razna și puteți cu adevărat scrie un program pentru Android pe 1C.
Ei bine, să încercăm să scriem un fel de „helloWorld” pentru Googlephone. Să facem un program în scopuri de testare - o configurație cu o singură formă comună, pe care o vom pune pe „desktop”.
Deci, creăm o nouă configurație în modul controlat, iar primul lucru pe care trebuie să-l facem dacă scriem pentru o platformă mobilă este să specificăm „Destinația de utilizare” în proprietățile configurației în sine.

Și aici observăm imediat că multe obiecte de configurare au devenit indisponibile pentru utilizare. Nu vom mai putea folosi subsisteme, sarcini programate, pachete XDTO, servicii web, rapoarte, procese de afaceri și multe altele. De asemenea, multe proceduri și metode pentru unele obiecte nu sunt disponibile. Acest lucru ar trebui să fie luat în considerare în timpul dezvoltării.
Facem un „form”, creăm o recuzită șir cu titlul: „Hi, Habr!” - și aruncați-l pe formular. De asemenea, vom crea un buton. În gestionarea apăsării, vom scrie rezultatul unui mesaj, de exemplu.

&AtClient Procedure Command1 (Comandă) Avertisment ("Funcționează!"); EndProcedure

Pentru a verifica performanța, asta ne este suficient, așa că trecem la cele mai interesante. Salvăm configurația într-un fișier pentru aplicația mobilă (Configuration->Mobile application->Write to file), rulăm în modul gestionat și începem procesarea MobileAppWizard.epf. Acest fișier se află în arhiva mobile.zip, pe care am descărcat-o chiar de la început.
Și acum ni se oferă să completăm setările primare, unde toate câmpurile obligatorii sunt subliniate cu roșu.

Locația platformei mobile - directorul în care se află fișierele android.zip și ios.zip, care sunt necesare pentru a genera livrarea aplicației mobile. Toate sunt în aceeași arhivă mobile.zip.
Specificați folderul în care am instalat Android SDK(poti descarca). 1C stabilește următoarele cerințe:
Versiunea Android SDK Tools - cel puțin 20.0.3;
Android SDK Platform-tools version - cel puțin 14;
Versiunea platformei SDK - API 8 (nu mai mică decât versiunea 8.3).
Și avem nevoie și de un SDK Java (se poate obține la această adresă) Mai mult, 1C ne avertizează că JDK7 nu funcționează cu SDK-ul Android.
Specificăm folderele în care va fi plasat fișierul nostru .apk, locația cheii pentru semnătură și aliasul cu parola. Dacă faceți acest lucru pentru prima dată și nu aveți o cheie, atunci puteți completa „parametrii cheii” și puteți genera o cheie pentru dvs. (în acest caz, în câmpul „fișier cheie”, trebuie să specificați folderul în care va fi creată această cheie).
Faceți clic pe „OK” și accesați a doua fereastră.

În ea, în primul rând, indicăm „Configurarea aplicației mobile” - același fișier pe care l-am salvat. Apoi limba, și abia apoi facem clic pe butonul cu „lupa” și intrăm acolo reprezentarea. Specificați „Application ID” - numele unic al clasei Java, care va fi folosit ulterior pentru a efectua actualizarea. Identificatorul trebuie să fie scris în latină, iar 1C recomandă să începeți numele cu „com.e1c”. Completați versiunea și numărul versiunii și faceți clic pe butonul „Creați”. Dacă totul merge bine, sistemul vă va anunța despre crearea cu succes a fișierului .apk.
Încărcăm fișierul rezultat pe telefon și îl instalăm cu managerul nostru preferat, permițând anterior instalarea în setările sistemului aplicații terță parte. Sau instalați programul pe emulator prin adb. Voi spune imediat: totul este teribil de lent pe emulator, dar pe telefon (am verificat doar pe HTC Wildfire S) lucrurile stau mult mai bine, dar mai sunt probleme. De exemplu, fișierul meu s-a dovedit a cântări până la 34 Mb, așa că instalarea a durat mult. După lansare, suntem întâmpinați de un ecran de splash, iar după un timp începe configurația în sine. (scuze pentru poza: am facut-o cu un calculator)

Până acum, noile caracteristici arată foarte „brut”: funcționalitate limitată a 1C, incapacitatea de a folosi SDK-ul direct, plus o dimensiune mare și câteva „frâne”... Dar însăși posibilitatea de a scrie un program pentru o platformă mobilă pe 1C este puțin surprinzător! Personal, am două păreri în privința asta. Pe de o parte, această „funcție” este încă mai mult ca o jucărie, deoarece nu există nicio oportunitate de a face ceva cu adevărat util. Dar, pe de altă parte, acesta este în mod clar un pas mare pentru 1C către mobilitate și dacă această direcție va fi dezvoltat activ, poate aduce o mulțime de beneficii. De exemplu, puteți echipa deținătorii de magazine cu tablete. Dacă este posibil să utilizați camere „la bord”, atunci puteți scăpa de dispozitivele de citire și puteți scana codurile direct de pe tabletă, le puteți furniza șoferilor de mașini și puteți trimite sarcini pentru transport sau urmări traseul mașina și timpul în mișcare. Există, în general, o mulțime de opțiuni, iar faptul că toate vor fi într-un singur sistem informațional va mulțumi foarte mult clienții / managerii, deoarece din anumite motive au întotdeauna o teamă de panică de a folosi un numar mare sisteme diferite, doresc să utilizeze toate funcționalitățile pe o singură platformă.

Platforma mobilă 1C:Enterprise este un set de instrumente și tehnologii pentru dezvoltarea rapidă a aplicațiilor pentru sistemele de operare mobile iOS, Android, Windows Phone/ 8.1 / 10, folosind aceleași medii de dezvoltare (Configurator sau 1C:Entrprise Development Tools) și aceleași metode de dezvoltare care sunt folosite pentru aplicațiile 1C „obișnuite”. Rezultatul sunt aplicații autonome, offline, dar cu capacitatea de a schimba informații cu lumea exterioară folosind o gamă largă de instrumente de integrare oferite de platformă: servicii Web și HTTP, e-mail etc. Deoarece protocoalele de schimb sunt independente de platformă, platforma mobilă 1C, printre altele, este un mijloc creație rapidă front-end mobil pentru aproape orice soluție de server.

fundal

În vremurile 1C:Enterprise versiunea 8.0 (și versiunile ulterioare), exista un produs software „Extensie pentru calculatoare de buzunar". Extensia v-a permis să creați produse numai pentru sistemul de operare Windows Mobile, Windows CE etc. Produsul avea propriul configurator și server și a fost acceptat până la lansarea versiunii 1C:Enterprise 8.3. ultima versiune extensia (8.2.9) a fost lansată în octombrie 2013, iar suportul complet s-a încheiat la 1 ianuarie 2015.
Extensia a avut o utilizare limitată chiar și în perioada de glorie a comunicatoarelor Windows Mobile, iar plecarea unor astfel de dispozitive de pe piața mobilă în mod clar nu a adăugat popularitate acestui lucru. produs software. Dispozitivele iOS și Android au ocupat aproape întreaga piață a dispozitivelor mobile și a devenit clar că suportul pentru aceste sisteme de operare este unul dintre punctele cheie pentru un sistem care trebuie operat în lumea mobilă de astăzi. De asemenea, părea evident că abordarea principală a platformei existente 1C:Enterprise ar trebui utilizată și pe dispozitivele mobile: un dezvoltator aplicat ar trebui să se gândească în primul rând la rezolvarea problemelor aplicate și, în al doilea rând, la ce caracteristici ale sistemului de operare folosește pentru a le rezolva. probleme . Cu alte cuvinte, aveți nevoie de un instrument care izolează dezvoltatorul aplicației de specificul unui anumit sistem de operare mobil și instrument de dezvoltare.

Platformă mobilă

Pe baza experienței de dezvoltare și operare a unei extensii pentru computere de buzunar, s-a decis dezvoltarea unui sistem specializat care să satisfacă mai multe cerințe:
  • ar trebui să susțină mobilul popular modern OSși dispozitivele aflate sub controlul lor. În primul rând, acestea sunt iOS de la Apple și Android de la Google.
  • acest sistem ar trebui să permită utilizarea aplicațiilor dezvoltate în stilul adoptat pe dispozitivele mobile moderne. În special, interfața trebuie să se bazeze pe control manual(în sensul literal al cuvântului) folosind ecrane tactile.
  • sistemul ar trebui să ofere o interfață de programare uniformă pentru implementarea diferitelor mecanisme specifice, indiferent de sistemul de operare mobil utilizat.
  • dezvoltatorul trebuie să folosească același instrument și aceleași abordări de dezvoltare ca atunci când dezvoltă aplicații pentru un computer „obișnuit”.
  • dezvoltatorul de aplicații ar trebui să dezvolte soluție de aplicareîntr-un mediu de dezvoltare familiar, folosind același cod pentru desktop și mobil ori de câte ori este posibil.
  • interfața unei soluții aplicate care rulează pe un dispozitiv mobil ar trebui să fie similară pentru diferite platforme și, în general, să fie recunoscută fără ambiguitate.
Rezultatul dezvoltării a fost așa-numita platformă mobilă, care a fost lansată pe 29 mai 2013 în versiuni pentru iOS și Android. Platforma mobilă 1C:Enterprise este un set de instrumente și tehnologii care vă permite să creați aplicații pentru sistemele de operare mobile iOS, Android, Windows Phone / 8.1 / 10 folosind același mediu de dezvoltare (Configurator) și aceleași metode de dezvoltare ca pentru aplicațiile obișnuite. pe platforma 1C:Enterprise. Rezultatul sunt aplicații autonome, offline, dar cu capacitatea de a schimba informații cu lumea exterioară folosind o gamă largă de instrumente de integrare oferite de platformă: servicii Web și HTTP, E-mail etc.
Platforma mobilă a fost bine primită de comunitate, au început să apară diverse articole pe această temă (de exemplu, și). Pentru a dezvolta o aplicație cu funcții complete care rulează simultan pe marea majoritate a dispozitivelor mobile, acum necesita timp și cunoștințe minime, care nu diferă fundamental de cunoștințele unui dezvoltator de aplicații „obișnuit” pe platforma 1C:Enterprise. Desigur, un prag de intrare atât de scăzut atrage dezvoltatorii care trebuie să ofere unele funcționalități de bază pentru angajații care lucrează pe drum, șefi și alți angajați mobili care trebuie să lucreze cu sistemul corporativ.
Este ușor să începeți să dezvoltați o aplicație mobilă pe platforma 1C:Enterprise. În Configurator, trebuie să setați proprietatea de configurare „Scopul de utilizare” la valoarea „Dispozitiv mobil”. În acest caz, unele dintre obiectele de configurare a aplicației vor deveni indisponibile (planuri de tipuri de caracteristici, planuri de conturi etc.), dar proprietățile specifice aplicației mobile vor deveni disponibile (de exemplu, instrumente multimedia și de geopoziționare încorporate). dispozitiv mobil etc.).


În același timp, puteți depana algoritmii aplicației principale (care nu au legătură directă cu specificul mobil) direct în Configurator de pe computerul dezvoltatorului. În același timp, se recomandă încadrarea secțiunilor de cod în care funcționalitatea „mobilă” este apelată cu instrucțiuni adecvate către preprocesor pentru a evita erorile la executarea codului pe un computer personal:
#If MobileApplicationClient Then Data = GeolocationServer.GetProviderName(); #EndIf
Începând cu versiunea 8.3.7 a platformei mobile, depanarea aplicației direct pe un dispozitiv mobil a devenit disponibilă (mai multe despre asta mai jos).

Dezvoltarea pe o platformă mobilă poate urma o varietate de abordări, dar există câteva puncte principale care ies în evidență. Din punctul de vedere al construirii aplicației mobile actuale, bogăției sale funcționale și rolului în infrastructura IT a întreprinderii:

  • o aplicație mobilă poate fi parte integrantă și integrantă a unui sistem informatic existent al întreprinderii. Aplicația mobilă va oferi o interfață și alte caracteristici (inclusiv schimbul de date) adaptate capacităților sistemului de informații existent. În acest caz, aplicația mobilă este foarte strâns legată de „normalul” Sistem informaticși nu poate fi folosit izolat de acesta.
  • aplicația mobilă îndeplinește sarcini specifice care practic nu au legătură cu sistemul informațional al întreprinderii. Există doar un set minim de date care sunt schimbate între aplicația mobilă și sistemul informațional. În acest caz, cel mai probabil, aplicația mobilă va schimba folosind un protocol standardizat, ceea ce face posibilă utilizarea acestei aplicații mobile în cazuri și situații complet diferite.
Cele două situații descrise mai sus pot fi considerate opțiuni extreme. Dar acestea nu sunt singurele opțiuni de dezvoltare. Dezvoltatorul de aplicații poate alege independent opțiunile de integrare între aplicația mobilă și sistemul informatic care acționează ca back office pentru aceasta.
Aplicația mobilă este dezvoltată ca o configurație complet autonomă, dar poate partaja o parte din codul sursă cu configurația „părinte”. Apropo, configurația „părinte” poate să nu existe fizic (de exemplu, dacă dezvoltați unele aplicare universală, cu care poate lucra sisteme diferite conform protocolului universal).

Dispozitiv cu platformă mobilă

Ce este o platformă mobilă și ce poate face?
Pentru a fi corect, platforma mobilă este doar una dintre componentele întregului complex, datorită căreia 1C:Enterprise 8 funcționează pe dispozitivele mobile. Deci, dezvoltatorul de aplicații operează cu următoarele componente:
  1. Platforma mobilă în sine este partea mobilă a cadrului 1C:Enterprise. Se prezintă sub formă de platformă obișnuită (care este utilizată în timpul construirii aplicației pentru publicarea în magazinul de aplicații) și platformă de dezvoltator mobil care este utilizată (surpriză) în timpul dezvoltării aplicației mobile.
  2. O configurație mobilă este o configurație a sistemului software 1C:Enterprise scrisă ca fișier XML.
  3. Combinația dintre platforma mobilă și configurația mobilă are ca rezultat o aplicație mobilă.
  4. Asamblatorul de aplicații mobile este o soluție de aplicație specializată care poate fi realizată dintr-o platformă mobilă, configurație, ecrane de deschidere, pictograme și alte componente, dosar terminat aplicație mobilă care poate fi descărcată din Apple AppStore, Google Play, Windows Phone Apps / Windows Apps.
De ce este totul atât de dificil? De ce nu se poate face pe un dispozitiv mobil exact așa cum se face pe o platformă mare? Acestea. instalați o platformă mobilă pe dispozitiv și încărcați orice număr de configurații/aplicații în ea? Acest lucru interzice aplicarea restricțiilor de licențiere pentru aplicațiile care sunt distribuite prin magazinele de aplicații. De exemplu, dacă aplicația dvs. descarcă cod executabil (ca script) prin Internet, acesta nu va apărea niciodată în magazinul de aplicații Apple. Cu toate acestea, trebuie înțeles că posibilitatea de a descărca orice configurație care se află în platforma mobilă a dezvoltatorului nu este destinată distribuției de aplicații mobile chiar și în cadrul unei singure companii, ca să nu mai vorbim de distribuția către clienții dezvoltatorului.
După ce aplicația mobilă se află pe dispozitivul mobil țintă, devine necesară utilizarea unui fel de bază de date (datele trebuie să fie stocate undeva). Ca motor de bază de date, platforma mobilă folosește propriul motor de bază de date, care este portat pe platforma mobilă de pe platforma pentru calculator personal. Este compact și suficient de rapid, dar principalul lucru este că oferă exact același comportament cu care sunt obișnuiți dezvoltatorii de aplicații atunci când lucrează pe o platformă pentru computere personale.
De asemenea, este de remarcat faptul că în interiorul aplicației mobile este construită după aceeași schemă ca și munca unei platforme convenționale cu o versiune de fișier a bazei de informații: există o parte client, există o parte server, există o bază de date și există este o interacțiune client-server.
Platforma mobilă în sine este scrisă ca o aplicație nativă, compilată în cod binar pentru principalele arhitecturi de procesoare utilizate în prezent în lumea mobilă: aceasta este arhitectura ARM v5 și superioară și x86.
În plus, pot fi necesare permisiuni speciale pentru a interacționa cu anumite caracteristici ale dispozitivului mobil (telefonie, GPS, lucru cu camera încorporată etc.). Pentru iOS, acestea sunt setate direct în timpul funcționării aplicației în sine, iar pentru Android, permisiunile sunt specificate la crearea aplicației. Permisiunile necesare sunt specificate atunci când se dezvoltă o aplicație mobilă și sunt utilizate de către generatorul de aplicații mobile, dar mai multe despre constructor mai târziu.

Câteva despre platforma pentru dezvoltatori

În timp ce dezvoltăm o aplicație mobilă, nu suntem obligați de restricțiile de licențiere impuse aplicațiilor mobile distribuite prin magazinele de aplicații. Aceasta înseamnă că putem folosi platforma mobilă 1C în același mod în care folosim platforma „mare” pe un computer personal - instalați platforma mobilă însăși pe un smartphone/tabletă și încărcați configurațiile aplicațiilor mobile în ea. După lansare, platforma ne va afișa o listă de aplicații înregistrate în ea:

Pentru a adăuga o nouă aplicație pe platformă, trebuie să plasați un fișier XML cu descrierea acestuia pe o resursă accesibilă de pe un dispozitiv mobil prin protocolul HTTP. Cel mai convenabil mod de a face acest lucru este din Configurator, prin meniul „Configurare \ Aplicație mobilă \ Publicare”. În acest caz, fișierul XML cu configurația aplicației este plasat pe serverul web de pe computerul dezvoltatorului (în consecință, acest computer trebuie să aibă un server web - IIS sau Apache).

Dacă specificați opțiunea „Reporniți din configurator” pentru aplicație, atunci aplicația de pe dispozitivul mobil va fi actualizată automat de pe computerul dezvoltatorului de fiecare dată când dezvoltatorul o actualizează pe cea găzduită pe serverul web fișier XML configurație.
Când opțiunea „Depanare activată” este activată, este posibilă depanarea pas cu pas a aplicației pe un dispozitiv mobil din Configuratorul de pe computerul dezvoltatorului (în Configurator, opțiunea „Depanare prin protocol HTTP” din „Instrumente \ Opțiuni”. " trebuie selectat meniul). Dacă setați puncte de întrerupere în cod în Configurator și selectați comanda „Aplicație mobilă - începeți depanarea”, atunci aplicația mobilă de pe dispozitiv se va opri când codul executabil ajunge la punctul de întrerupere și puteți vizualiza valorile variabilelor, stiva de apeluri etc. în Configurator.

Ce poate?

Deci, ce face platforma mobilă? Suficient:)
Dacă nu utilizați termenii specifici 1C:Enterprise, atunci platforma mobilă oferă o oportunitate de a lucra cu informații de reglementare și de referință, de a elabora documente care descriu unele acțiuni externe, de a vizualiza rapoarte, de a comunica cu lumea exterioară folosind servicii de internet și multe altele. Mai Mult. Acestea. oferă unui dezvoltator de aplicații posibilitatea de a scrie o aplicație destul de funcțională, de exemplu, un program de finanțare a casei, un program de vânzări mobile și altele asemenea.
Dar, pe lângă funcționalitatea obișnuită care este pe platformă pentru un computer personal, platforma mobilă trebuie să ofere lucru cu caracteristici specifice care sunt unice pentru dispozitivele mobile:
  • lucrul cu apeluri și jurnalul de apeluri;
  • lucrul cu mesaje scurte (SMS) și lista acestora;
  • contacte;
  • calendare;
  • geopoziţionare (fără aşezare trasee);
  • vă permite să faceți fotografii, precum și înregistrare video și audio;
  • răspunde la schimbările de orientare a ecranului;
  • lucrul cu notificări (local și PUSH, atât direct, cât și printr-un serviciu special de intermediar);
  • scanează coduri de bare și coduri QR cu camera
  • Monetizarea aplicațiilor mobile (adică o modalitate de a oferi unui dezvoltator de aplicații mobile oportunități de venituri suplimentare):
    • Lucrul cu serviciile de achiziție Apple In-App Purchase (pentru sistemul de operare iOS) și Google Play In-App Billing (pentru sistemul de operare Android), cu ajutorul cărora puteți organiza diferite tipuri de abonamente, achiziții de funcționalități etc. într-o aplicație mobilă
    • Afișați anunțuri în aplicațiile mobile (iAd pentru iOS și AdMob pentru Android sunt acceptate în prezent).
  • etc.
Este clar că unele funcții pot să nu fie disponibile pentru fiecare dispozitiv specific, așadar, pentru a determina ce se poate face pe dispozitivul pe care rulează aplicația mobilă, există metode speciale care vă anunță că este disponibil pe acest aparat, cum ar fi capacitatea de a forma sau nu un număr. Astfel, este implementată aproximativ următoarea schemă de utilizare: verificăm dacă este posibil să folosim un fel de oportunitate sau nu și, dacă este posibil, o folosim:
Dacă TelephonyTools.SupportedDial() atunci TelephonyTools.DialNumber(PhoneNumber, apelați imediat); EndIf;
Pentru a ascunde de dezvoltatorul aplicației detalii despre sistemul de operare mobil utilizat, pentru a-i oferi mecanisme unificate pentru utilizarea funcționalității mobile este o sarcină importantă pentru noi. Credem că am rezolvat cu succes problema. Diferențele dintre mecanismele implementate sunt fie absente, fie minimizate. Cu excepția, desigur, a cazurilor în care nu există nicio funcționalitate într-unul dintre sistemele de operare.
De exemplu, tehnica de lucru cu notificări push este foarte diferită între Google și Apple. Am depus mult efort pentru unificarea mecanismului de lucru cu notificările PUSH din codul aplicației. În cazul unei aplicații mobile, am reușit aproape 100%: același cod de aplicație pe un dispozitiv mobil procesează primirea notificărilor PUSH atât pe iOS, cât și pe Android. Și codul pentru trimiterea notificărilor PUSH în aplicația server arată și el la fel. Dar pentru a realiza o astfel de unificare, a trebuit să dezvoltăm un server proxy special https://pushnotifications.1c.com/ , care ascunde dezvoltatorului diferite tehnici de lucru cu Apple Push Notification Service (APNS) și Google Cloud Messaging (GCM). ). Toată diferența constă în setări diferite direct pe site-ul proxy https://pushnotifications.1c.com/ ; pentru a lucra cu APNS, trebuie să încărcați un certificat SSL pe site (pe care Apple îl eliberează pentru aplicație la cererea dezvoltatorului), pentru a lucra cu GCM, trebuie să specificați un identificator unic al aplicației.
Evident, nu este posibil să implementați imediat toate caracteristicile pe care doriți să le aveți într-o aplicație mobilă. Și întotdeauna trebuie să găsești un compromis între câteva lucruri foarte utile. Și dacă îți lipsește ceva, scrie-ne despre ce sarcini de business (la urma urmei, platforma este, în primul rând, un instrument de implementare a sarcinilor de business!) pe care nu le poți rezolva și ce mecanism te-ar ajuta pentru asta.

Cu ce ​​seamănă?

Interfața grafică a platformei mobile este o problemă separată. În 1C:Enterprise, după cum știți, interfața este descrisă declarativ. Acest lucru, pe de o parte, impune unele restricții asupra dezvoltării interfeței de utilizare (de exemplu, nu există posibilitatea de poziționare pixel cu pixel), dar, pe de altă parte, permite platformei să reda interfața uniform pe ecrane de diferite dimensiuni, în client thin și web. Am încercat să aderăm la același principiu în platforma mobilă. Cât de bine am făcut-o? Să încercăm să ne dăm seama.
În primele versiuni ale platformei mobile (până la 8.3.5 inclusiv) GUI aplicațiile păreau foarte familiare utilizatorilor sofisticați 1C; de fapt, el a transferat interfața familiară din versiunile „desktop” ale 1C în lumea mobilă. Dar din punctul de vedere al utilizatorilor care nu erau familiarizați anterior cu 1C, interfața părea oarecum arhaică.
Luând în considerare comentariile și sugestiile, am revizuit radical abordarea noastră față de interfața mobilă în versiunea 8.3.6. Putem spune că am realizat o interfață mobilă complet nouă pentru aplicațiile noastre. Are multe în comun cu interfața noastră Taxi. Modelul de dezvoltare pentru dezvoltatorii de aplicații mobile corespunde modelului de dezvoltare din Taxi. În același timp, interfața mobilă este pe deplin în concordanță cu abordările de proiectare adoptate în aplicațiile mobile și . Interfața ține cont pe deplin de specificul lumii mobile: o dimensiune mică a ecranului (ceea ce înseamnă că designul elementelor grafice ar trebui să devină mai ascetic - fără umbre, degrade), există suport pentru gesturi cu degetele etc. Fapt interesant: noul mecanism de platformă responsabil pentru plasarea elementelor în formă (layouter) s-a dovedit a fi atât de reușit și de oportun pentru platforma mobilă, încât a fost lansat în ea mai devreme (în versiunea 8.3.6) decât în ​​platforma PC (în versiunea 8.3). .7), căruia i-a fost destinat în primul rând.
În imagine puteți vedea cum s-a schimbat interfața noastră.
Aplicația „Managementul unei companii mici” pe versiunea platformei mobile 8.3.5:


Este pe versiunea 8.3.6:

Și așa arată interfața platformei mobile în direct:

Colecționar - și ce fel de animal este acesta?

După cum am menționat mai devreme, o aplicație mobilă constă din mai multe componente (platforma mobilă reală, configurație, diverse resurse), care trebuie să fie un singur întreg pentru a plasa aplicația în magazin. Pentru a facilita transformarea componentelor într-o aplicație, a fost dezvoltat un asamblator de aplicații mobile. Aceasta este o configurație (aplicație) creată pe platforma 1C:Enterprise, care stochează în baza sa de date toate componentele necesare formării unei aplicații mobile. Pentru ca asamblatorul să-și facă treaba, trebuie să descărcați și să instalați diverse pachete software care sunt necesare pentru funcționarea acestuia (Java și Android SDK etc.), apoi specificați căile către aceste pachete în setările colectorului și setați câteva Opțiuni suplimentare(chei de dezvoltare, etc.).


După configurare, colectorul este gata de lucru. În general, lucrul cu colectorul arată astfel:
  1. Descărcăm versiunea platformei mobile 1C pe care vom construi aplicația
  2. Se incarca configuratia din care vom construi aplicatia mobila
  3. Creăm o aplicație mobilă în care indicăm pentru ce platforme (Android, iOS, Windows) trebuie să construim, ce configurație și platformă trebuie utilizată (în special, specificăm ce certificat să construim pentru iOS să îl utilizăm dacă aplicația funcționează cu PUSH - notificări).
  4. Efectuăm asamblarea „un singur clic” a unei aplicații mobile pentru toate platformele selectate
  5. Cu încă un clic, trimitem aplicațiile mobile colectate către magazinele de aplicații (dacă aceasta este o aplicație pentru iOS sau Android). V Magazine Windows Aplicații / Windows Phone aplicația aplicației trebuie încărcat manual, deoarece Microsoft nu oferă încă un API pentru găzduirea unei aplicații în magazin.
Trebuie remarcat separat faptul că asamblatorul nu este necesar pentru dezvoltarea și depanarea unei aplicații mobile. Pentru a face acest lucru, puteți utiliza platforma mobilă a dezvoltatorului și instrumentele Configurator pentru a transfera configurația pe un dispozitiv mobil. Dar pentru a distribui o aplicație mobilă, aveți nevoie de un asamblator.

Aplicații pe platforma mobilă

Compania 1C însăși lansează o serie de aplicații pe platforma mobilă care sunt clienți mobili ai aplicațiilor server 1C (1C: Gestionarea documentelor, 1C: Managementul companiilor mici etc.). Aceste aplicații implementează un subset al funcționalității clienților „obișnuiți”. Când versiune mobila Funcționalitatea „1C: Small Business Management” este suficientă pentru utilizarea completă a programului și am văzut adesea o situație în care o versiune mobilă a aplicației este suficientă pentru clienții să conducă o afacere.
Partenerii noștri folosesc platforma mobilă atât pentru dezvoltarea de aplicații mobile produse în serie distribuite prin magazine de aplicații, cât și pentru aplicații personalizate create la cererea anumitor clienți. Printre aplicațiile de circulație, există aplicații care folosesc un back-end non-1C ca depozit central de date.
Dintre aplicațiile mobile create la comanda clienților, putem aminti clientul mobil pentru „1C: Manufacturing Enterprise Management”, creat la comanda unui mare holding de inginerie. Aproximativ o sută de angajați ai holdingului folosesc o aplicație mobilă în magazine fierbinți, unde, din motive de siguranță, se pun computere desktop imposibil. Camera încorporată a unui dispozitiv mobil este folosită pentru a citi codurile de bare ale produselor și pentru a le căuta în directorul listei de stocuri, aplicația mobilă vă permite să înțelegeți în ce stadiu al lanțului tehnologic se află acest produs, marcați trecerea următoarea operație a produsului etc.

Concluzie

Am încercat foarte superficial să descriem platforma mobilă, ce vă permite să faceți și de ce a ieșit așa cum a ieșit. Acest articol nu spune aproape nimic despre Windows mobil. Există mai multe motive pentru aceasta: în primul rând, versiunea platformei mobile pentru Windows a fost lansată relativ recent („1C:Enterprise” versiunea 8.3.7), iar în al doilea rând, această versiune a platformei mobile nu are diferențe semnificative față de implementare pentru alte sisteme de operare mobile. Desigur, vom crește funcționalitatea pentru sistemul de operare Windows. Precum și creșterea funcționalității platformei mobile în ansamblu. Deci, în viitorul apropiat avem suport în platforma mobilă componente externe; acest mecanism (care a fost de mult disponibil în platforma „mare”) va permite dezvoltatorilor să implementeze funcționalități care nu sunt disponibile din niciun motiv în platforma mobilă.
Tradiţional punctele forte ale platformei tehnologice 1C:Enterprise sunt ușurința de învățare pentru dezvoltator și viteza de creare și modificare a aplicațiilor de afaceri. Platforma mobilă 1C a transferat ambele atuuri în lumea mobilă. Platforma mobilă 1C este o oportunitate de a dezvolta rapid o aplicație care rulează pe cele mai populare trei platforme mobile (iOS, Android, Windows Phone / 8.1 / 10). Și datorită unei game largi de instrumente de integrare independente de platformă disponibile (servicii Web și HTTP etc.), platforma mobilă 1C este o oportunitate de a crea rapid un client mobil pentru trei platforme mobile pentru aproape orice aplicație de server care acceptă oricare dintre metode de integrare disponibile în platforma 1C (servicii Web și HTTP, schimb de fișiere etc.).

Numai utilizatorii înregistrați pot participa la sondaj. Intrati va rog.

Dezvoltarea aplicațiilor mobile este întotdeauna asociată cu nevoia de a învăța tehnologii suplimentare. Dar ce se întâmplă dacă reconsiderăm întrebarea și folosim instrumente deja familiare?

Pentru prima dată, 1C a încercat să intre în piaţă dezvoltare mobilă în 2006. La acel moment, a existat un adevărat boom în automatizarea muncii angajaților de la distanță folosind un PDA. Au apărut noi programe pentru rezolvarea unor astfel de probleme ca ciupercile, iar un astfel de vânzător precum 1C cu produse de succes pentru automatizarea diverselor domenii de afaceri nu putea rata șansa de a intra pe piața profitabilă.

Până la jumătatea anului 2006, compania a prezentat lansarea unui nou produs cu numele promițător „1C:Enterprise 8. Extensie pentru PDA-uri”. Dezvoltatorii 1C, care au văzut perspectivele celei de-a 8-a platforme, au avut speranța că acum, pe un singur instrument, a devenit posibil să se realizeze dezvoltarea sub popularul sistem de operare Windows Mobile în acei ani fără prea multe dificultăți.

În practică, lucrurile arătau mult mai rău. Întrupat idei originale acest instrument nu a permis. Pachet " extensie PDA”a fost mai mult un add-on pentru anumite configurații tipice decât o soluție completă de dezvoltare. Nu a fost intenționat să extindă funcționalitatea configurației prin adăugarea de noi obiecte de metadate. La mila programatorilor terți, au existat lucruri foarte simple: crearea de noi formulare pentru interacțiunea cu utilizatorul, procesarea evenimentelor utilizatorului.

Da, au existat tot felul de eludări ale restricțiilor, dar nici măcar acestea nu au permis o întoarcere reală. Pe lângă limitările tehnice, consumatorii s-au confruntat cu o barieră financiară serioasă. Companiile care au decis să implementeze o soluție de la 1C trebuiau să achiziționeze PDA-uri de înaltă performanță, să achiziționeze licențe pentru Windows Mobile și, de asemenea, să plătească 1C pentru livrarea soluției și a aplicației finale.

Soluția de la 1C a fost prea scumpă. Companiile obișnuite să economisească bani au continuat să folosească soluții alternative. Mai mult, dezvoltatorii de alternative au reușit să ofere produselor lor funcționalități de interacțiune cu soluții tipice 1C.

Limitările tehnice, costul ridicat nu au permis produsului să repete succesul extraordinar al platformei desktop. Ideea de a cuceri piata mobila corp.

aplicațiile au eșuat lamentabil.

Pas înainte

Pierderile și pierderile dintr-un proiect nereușit nu au pus capăt dezvoltării unei direcții promițătoare. În 2013, 1C a introdus prima versiune stabilă a noii platforme 8.3, care are funcția de a dezvolta aplicații mobile.

1C a regândit complet abordarea rezolvării „teoremei” mobile și a ținut cont de greșelile produsului anterior nereușit. Rezultatul este un instrument complet nou, care nu are nimic în comun cu predecesorul său și se concentrează pe cele mai recente platforme mobile - Android și iOS.

Aplicații mobile în stil 1C

Pentru o cunoaștere completă a posibilităților de dezvoltare pentru platforme mobile, să încercăm să dezvoltăm o configurație mică. Folosind un exemplu transversal, puteți evalua mai bine funcționalitatea disponibilă și puteți decide asupra posibilității de a utiliza platforma 1C pentru a rezolva probleme.

Pentru a funcționa, aveți nevoie de cea mai recentă versiune a platformei 1C:Enterprise 8.3. Versiunea educațională a kit-ului de distribuție este disponibilă pe site-ul oficial 1C. Pentru a recrea un exemplu, capacitățile sale sunt mai mult decât suficiente.

Pe lângă platforma 1C:Enterprise 8.3, vom avea nevoie de o serie de instrumente suplimentare. Articolul va lua în considerare un exemplu de dezvoltare a unei aplicații pentru Android. În acest sens, va trebui să descărcați: Android SDK și Apache WEB server. Prima componentă conține tot ce aveți nevoie pentru a construi aplicația și un emulator pentru testare, iar serverul WEB este util pentru încărcare rapidă aplicații pentru sistemul de operare mobil.

De asemenea, va trebui să furnizăm „Platforma pentru dezvoltatori mobili”. Conține o configurație pentru a simplifica procesul de construire a aplicației mobile create, precum și o platformă de dezvoltator mobil. Trebuie instalat pe un dispozitiv mobil sau pe un emulator.

Pentru a crea o aplicație pregătită pentru distribuție prin Google Play, va trebui să o descărcați Apacheantși JavaJDK. Acest subiect depășește domeniul de aplicare al articolului, așa că puteți afla mai multe despre lucrul cu aceste instrumente și construirea unei aplicații în secțiunea corespunzătoare din .

Configurarea instrumentelor

Platforma " 1C: Întreprindere 8.3' și serverul web Apache vin cu programe de instalare și sunt instalate în mod standard. Android SDK trebuie doar să-l dezarhivați într-un director separat și să rulați „ sdk manager.exe". Veți vedea o fereastră cu o gamă de pachete disponibile pentru instalare. Pentru testare, luată în considerare în cadrul articolului exemplu, va trebui să selectați și să instalați: Instrumente Android SDK, A Instrumente pentru platforma Android, API-ul platformei SDK 17.

Ultimul pas este crearea unei noi baze de informații. Pentru cei care nu sunt implicați în dezvoltarea sub pe " 1C: Întreprindere»Voi explica că orice soluție pentru această platformă constă într-o bază de informații și configurație. Adăugarea unei noi baze de date se face făcând clic pe butonul " Adăuga» fereastra de pornire. După ce adăugați baza, deschideți-o în „ Configurator».

Prima configurație mobilă

În meniul principal al configuratorului, găsiți secțiunea „ Configurare” și selectați elementul „Deschideți configurația”. Arborele de configurare (al obiectelor din care va consta viitoarea aplicație) va fi afișat în partea stângă a ferestrei. Selectați rădăcina de configurare în ea și apăsați combinația de taste " Alt+Enter". Editorul de proprietăți se va deschide în partea dreaptă a ferestrei configuratorului.

Să numim configurația „ A FACE” iar în proprietatea „Destinație de utilizare”, specificați „ Dispozitiv mobil". Acordați atenție făcând ultima actiune, unele noduri ale arborelui de configurare vor deveni inactive. Din păcate, nu veți putea folosi toate obiectele metadate de pe platforma mobilă.

Pentru a ne rezolva problema, trebuie să creăm mai multe obiecte de metadate în arborele de configurare:


Procedură AddTask(Task) ExportRecordManager = CreateRecordManager(); RecordManager.Period = CurrentDate(); RecordManager.Task = Sarcină; RecordManager.Status = Task.Status; RecordManager.Write(); EndProcedure

Lista 2. Cod pentru funcția GetList of Unclosed Tasks().

Funcția GetList of Unclosed Tasks() Export Request = New Request; Query.Text = „SELECT | TaskStateLatestSlice.Task AS Sarcină, | TaskStatusLastSlice.Task.DueDate AS DueDate |FROM | DataRegister.Tasks.SliceLastState(&CurrentDate, Status<>VALUE(Enumeration.TaskStatuses.Completed)) AS TaskStatusSliceLast | |COMANDA DE | DueDate DESC"; Query.SetParameter("CurrentDate", CurrentDate()); Return Query.Execute().Upload(); EndFunction

Ne-am ocupat de obținerea datelor din registrul de informații și înregistrarea acestora, acum ne vom învăța cărții noastre de referință să lucreze cu registrul. Pentru a face acest lucru, adăugați un modul comun numit " WorkWithTasks". Puteți face fără ea, dar vreau imediat să mă concentrez asupra posibilității de a împărți codul în module. Mulți dezvoltatori 1C încă neglijează această recomandare și descriu toată logica într-un singur loc, făcând astfel dificilă întreținerea ulterioară a codului. Să creăm o nouă procedură în modulul " Creați o sarcină nouă» (vezi Lista 3).

Lista 3. Cod pentru procedura „Creați o sarcină nouă”.

Procedura CreateNewTask(Reference) Export If Reference.ThisGroup Then Return; EndIf; Solicitare = Solicitare nouă; Query.Text = "SELECT | TaskStatusLastSlice.Status |FROM | DataRegister.StatusTasks.SliceLast(&CurrentDate, Task = &Task) AS TaskSliceLastStatus"; Query.SetParameter("CurrentDate", CurrentDate()); Request.SetParameter(„Sarcina”, Link); Rezultat = Query.Execute().Select(); Dacă Result.Next() Atunci Dacă Result.Status<>Link.Status ThenRegistersInformation.StatusTasks.AddTask(Link); EndIf; În caz contrar, DataRegisters.TaskState.AddTask(Reference); EndIf; EndProcedure

Înainte de a crea o înregistrare nouă, se verifică prezența înregistrărilor existente pentru sarcină. Dacă înregistrarea există deja, atunci trebuie să comparați stările sarcinilor. Dacă starea din registru nu diferă de starea elementului care este scris, nu este nevoie să creați o intrare suplimentară.

Cu atingerea finală, deschideți formularul elementului de director „Sarcini” și creați un handler de evenimente „ AfterRecordingOnServer". În el vom scrie un apel la procedura descrisă în a treia listă:

WorkWithTasks.CreateNewTask(CurrentObject.Reference);

Se lucrează la interfață

Funcționalitatea principală a aplicației este gata - utilizatorul poate crea sarcini, iar fiecare sarcină nouă formează o intrare în registrul de informații periodice. Acum să aruncăm o privire la interfață. Să punem în prim plan munca cu sarcini. La urma urmei, este logic să afișați lista imediat după lansarea aplicației. sarcini închiseși posibilitatea de a crea unul nou?

Să găsim nodul " Forme generale" si adauga formă nouă Cu nume " Desktop". Să deschidem formularul creat în constructorul de interfață și să adăugăm un atribut ca " Tabel de valori". Să-i spunem „OpenZachi”. Tabelul va conține două coloane - " Sarcină" (Link de referință. Sarcini) și " Data executiei" (Data).

Următorul pas este să trageți atributul adăugat în formular. Ar trebui să obținem o interfață cea mai simplă masă. Nu vom indica nicio dimensiune, vom lăsa preocuparea cu privire la scalarea interfeței pe platformă.

Pentru tabelul creat, în inspectorul de proprietate, bifați caseta pentru proprietate " Doar vizualizare", și proprietatea" Poziția barei de comandă» Specificați valoarea «Nu». Vom umple tabelul cu informații dinamice, așa că nu are rost să edităm de către utilizator.

Acum să descriem handlerul de evenimente al formularului „OnCreateOnServer”. Să adăugăm o linie de cod la el:

OpenTasks.Load(InformationRegisters.TaskStatus.GetList of NotClosedTasks());

În cod, ne referim la procedura pe care am descris-o " GetList of Unclosed Tasks” iar rezultatul executării lui se pune în tabel.

Să revenim la constructorul formularului și să adăugăm un grup de tip „Grup normal fără afișare” cu două butoane: „ Crea" și " Reîmprospăta". proprietate " gruparea» Setați valoarea grupului adăugat la «Orizontal». Pentru un design mai expresiv al butoanelor, vom adăuga imagini și vom schimba fontul implicit.

Acum selectați butonul Crea si intreaba-o echipa globala « Sarcini: creați". Acest lucru vă va permite să creați sarcini fără a intra în directorul în sine. Prin apăsarea celui de-al doilea buton, vom actualiza conținutul tabelului cu sarcini. Pentru aceasta trebuie să creați comandă suplimentară forme.

Toate comenzile de formular noi sunt create în fila cu același nume " echipe". Principiul este simplu - adăugăm o nouă comandă, descriem codul de acțiune în ea și apoi asociem comanda cu interfața, în cazul nostru cu butonul.

De asemenea, nu ar trebui să uităm că dezvoltăm o aplicație gestionată, așa că trebuie să distingem clar între codul client și cel al serverului. Când se face clic pe butonul, contextul va fi „ OnClient”, și vom primi date din baza de date de la server. În cod arată așa:

&La procedura client UpdateTaskList(Comandă) UpdateList(); EndProcedure &OnServer ProcedureOnCreateOnServer(Abandon, StandardProcessing) OpenTasks.Load(InformationRegisters.TaskStatus.GetList of UnclosedTasks()); EndProcedure

Acum să definim forma desktopului nostru ca zonă Pagină de start. Deschideți proprietățile de configurare (selectați nodul cel mai de sus și faceți clic pe „ Alt+Enter”) și pentru proprietatea „Initial Page Workspace” setați valoarea la „ O coloană”, apoi adăugați formularul nostru la listă „ Desktop».

Aplicația este complet gata și este timpul să o testăm în funcțiune. Încercați să rulați exemplul și să creați unele sarcini cu un alt statut decât " Efectuat". Registrul de informații a fost completat cu noi intrări (acesta poate fi vizualizat prin elementul de meniu " Toate caracteristicile”) și unele dintre ele sunt afișate pe desktop.

Aterizare pe Android

Configurația funcționează excelent pe desktop și acum este momentul să o testați pe un emulator de sistem de operare mobil. Pentru a pregăti un nou emulator, rulați un shell ( cmd.exe) și accesați directorul „toos” al distribuției Android SDK. Executați comanda " android.bat avd", care va lansa virtualul dispozitive Android. În el, faceți clic pe butonul „Creare” și în fereastra care apare, specificați parametrii dispozitivului virtual. În mediul meu de lucru, am decis să imit Nexus S cu Android versiunea 4.2.2. (API Nivel 17).

După crearea dispozitivului, îl vom lansa imediat. În timp ce Android se încarcă, să revenim la configurator și să publicăm aplicația noastră pe serverul web. În meniul principal al configuratorului, selectați elementul „ Configurare» -> « Aplicatie mobila» -> « Publica". În fereastra de setări de publicare, specificați numele aplicației (poate fi orice), serverul web (în mediul nostru, ar trebui să fie unul) și directorul pentru stocarea setărilor.

Specificând „ tot-mobil", aplicația va fi disponibilă la adresa - " http://gazdă/todo-mobile". Faceți clic pe „ok” și încercați să accesați aplicația publicată folosind un browser. Dacă are succes, serverul va returna codul XML al configurației create.

Ne întoarcem la emulator și încărcăm aplicația cu platforma mobilă a dezvoltatorului în ea. Fișierul aplicației în sine este disponibil împreună cu livrarea platformei mobile a dezvoltatorului și se numește „1cem-arm.apk”. Pentru a instala această aplicație în emulator, vom folosi utilitarul " adb.exe» din directorul « platforme-instrumente»: adb.exe install –r 1cem-arm.apk.

După instalarea cu succes, deschideți lista de aplicații din emulator și lansați platforma mobilă a dezvoltatorului. În fereastra care se deschide, faceți clic pe „ Adăugați aplicația” iar în câmpul „adresă” specificați adresa URL către serverul nostru web. o am http://192.0.168.106/todo-mobile. Presa " Adăuga” iar configurația noastră este mutată cu succes pe platforma mobilă. Aplicația este gata de funcționare. Testați rezultatul și reveniți la configurator, este timpul să oferiți aplicațiilor „funcționalitate mobilă”.

Trimiterea de mesaje SMS/MMS

Funcții pentru lucrul cu SMS/MMS Mesajele sunt acceptate diferit de platformele mobile. De exemplu, atunci când rulează o aplicație pe Android, dezvoltatorul are posibilitatea de a se abona la SMS și de a avea acces la mesaje noi imediat după ce le-a primit. Din păcate, aceeași funcție nu este disponibilă pe iOS, așa că documentația ar trebui să fie la îndemână în timpul dezvoltării.

Pentru trimiterea de SMS-uri mesajele furnizate obiect SMSMessage. Luați în considerare un exemplu:

&OnClient Procedura SendSMSMessage(Destinatar,MessageText) NewMessage = New SMSMessage(); NewMessage.Text = MessageText; NewMessage.Recipients.Add(Destinatar); Instrumente de telefonie.SendSMS(NewMessage); EndProcedure

Codul este destul de simplu și nu are nevoie de comentarii. Acum să ne uităm la înregistrarea unui abonament la mesajele primite:

&OnClient Procedura ConnectMessageReceiveHandler() MessageSubscription = NewNotificationDescription(„ProcessingNewMessages”, ThisObject); Instrumente de telefonie.ConnectSMSMessageHandler(MessageSubscription); EndProcedure &AtClient Procedura NewMessageProcess(Message, AdditionalParameters) //Procesează mesajul nou //Message.Sender, Message.Text; EndProcedure

Procedură " Gestionarea mesajelor noi” va fi apelat de fiecare dată când se primește un nou SMS. Prin parametrul " Mesaj» un obiect de tip « SMSMessage” și putem obține cu ușurință textul mesajului și informații despre expeditor.

Lucrul cu mesajele MMS se face într-un mod similar. Mai întâi creăm un SMSMessage și apoi îi adăugăm un atașament (de exemplu, imagini). Cu această acțiune simplă, SMS-ul se transformă în MMS:

NewMessage= New SMSMessage(); Atașament = Nou atașament MMS; Attachment.Data = Imagine; Attachment.ContentType = "imagine/jpeg"; MMSMessage.Attachments.Add(Atașament);

Efectuarea de apeluri dintr-o aplicație mobilă

Un apel este efectuat prin programare folosind metoda „DialNumber” a obiectului global „Telephony Tools”. Înainte de a apela metoda, este foarte de dorit să verificați posibilitatea de a efectua un apel:

Dacă TelephonyTools.SupportedDial() atunci TelephonyTools.DialNumber(PhoneNumber, apelați imediat); EndIf;

Parametrul " Sunați Imediat” afectează performanța de apelare. Când este egal Adevărat”, numărul este format automat prin aplicație standard efectuand apeluri. Dacă este setat la Fals, utilizatorul va vedea și interfata standard aplicație de apelare, dar pentru a efectua un apel, trebuie să apăsați butonul „ convoca».

Jurnal de Apel

Platforma mobilă permite dezvoltatorului să interacționeze cu jurnalul de apeluri. De exemplu, puteți obține cu ușurință o listă de apeluri efectuate, pierdute sau primite. Această funcție este acceptată numai pe Android:

CallLog = TelephonyTools.GetCallLog(); Selection = New DataComposition Selection; Selection Element = Selection.Elements.Add(Type("DataComposition Selection Element")); Selection Element.LeftValue = New DataCompositionField("Tip de apel"); Selecție Element.ComparisonType = DataCompositionComparisonTypeData.Equal; Selecție Element.RightValue = CallLogCallType.Missed; SelectionItem.Use = adevărat; List of Call Log Records = Jurnal de apeluri Găsiți înregistrări (Selectare); //În lista de înregistrări a jurnalului de apeluri va exista o colecție de înregistrări

Geopoziţionarea

Aproape orice smartphone modern are funcţiile de determinare a geolocalizării. Puteți utiliza această funcționalitate din limbajul 1C încorporat. Obținerea coordonatelor curente ale dispozitivului poate fi împărțită condiționat în 2 etape: alegerea unui furnizor de geopoziționare și procesarea coordonatelor primite:

//Să lăsăm platforma să aleagă furnizorul IdealProvider = Geolocation Tools.GetMost AccurateProvider(); Coordonate = Geolocation Tools.GetLastLocation(IdealProvider); //Dacă coordonatele au fost primite cu mult timp în urmă, atunci actualizați If Coordinates = Undefined SAU CurrentDate() - Coordinates.Date > 3600 Then GeopositioningTools.UpdateLocation(IdealProvider, 60); Coordonate = Geolocation Tools.GetLastLocation(IdealProvider); EndIf;

Lucrul cu funcții multimedia

Dezvoltatorul are posibilitatea de a face fotografii, înregistrări video, înregistrări audio folosind limbajul încorporat: Fă o poză(), Faceți o înregistrare video(), Faceți o înregistrare audio().

Sub ce sistem de operare mobil este mai bine să dezvoltați pe 1C?

În ciuda dragostei mele pentru Tehnologia Apple, cel mai bine este să creați aplicații mobile folosind platforma 1C pentru Android. Există mai multe motive pentru aceasta, dar cel mai important dintre ele sunt funcțiile suportate. Din păcate, sub iOS, multe lucruri necesare nu sunt acceptate. De exemplu, incapacitatea de a vă abona în mod programatic la mesajele SMS sau de a interacționa cu jurnalul de apeluri poate face imposibilă implementarea unor idei. Android este mai prietenos în acest sens. Nu uitați de costul dispozitivelor în sine. Nu toate companiile vor fi pregătite să facă plăcere pe achiziția de dispozitive mobile de la Apple.

În loc să completeze

Platforma " 1C: Întreprinderea 8„în practică și-a dovedit disponibilitatea de a deveni un simplu instrument de dezvoltare a corp. Aplicații pentru platforme mobile. Exemplele discutate în articol sunt o confirmare suplimentară a acestui lucru. Nu este deloc necesar să cheltuiți resurse pentru studierea instrumentelor native dacă funcționalitatea aplicației se încadrează în capacitățile platformei mobile și compania este dominată de produsele 1C.

Mai recent, platforma mobilă 1C Enterprise 8.3 a fost distribuită de 1C doar între abonații plătiți. Dar nu cu mult timp în urmă, 1C și-a revizuit politica privind această problemă iar acum versiunea electronică a platformei mobile este distribuită gratuit împreună cu .

Ce este platforma mobilă 1C 8.3?

Este posibil să știți deja că platforma 1C Enterprise 8.3 în sine vă permite să dezvoltați aplicații mobile. În același timp, dezvoltarea unei aplicații mobile se realizează în același mod ca și dezvoltarea unei configurații „normale”. Dar cum poate fi lansată configurația astfel dezvoltată pe un smartphone sau tabletă? În aceste scopuri, avem nevoie de platforma mobilă 1C Enterprise 8.3.

Platformă mobilă 1C Enterprise 8.3 este un set de programe care vă permit să instalați și să rulați configurații (aplicații) pe smartphone-uri și tablete care rulează Google Android sau Apple iOS.

Cel mai important avantaj al platformei mobile 1C este că aplicația (configurarea) este dezvoltată pentru ambele sisteme de operare mobile simultan și apoi instalată pur și simplu pe dispozitivul mobil. Astfel, după ce am scris o aplicație mobilă pe 1C, o putem instala imediat pentru toți angajații companiei, indiferent de ce sistem de operare (Android sau iOS) rulează telefonul sau tableta lor.

Important! Pentru dezvoltarea de aplicații mobile, vă recomandăm insistent utilizarea platformei 1C a versiunii 8.3.4.482 sau mai mare. Versiunea educațională a platformei 1C Enterprise 8.3.4.482 este inclusă în acest kit de distribuție al platformei mobile 1C. Vă puteți familiariza cu limitările versiunii educaționale a platformei

Platforma mobilă 1C:Enterprise este un set de instrumente și tehnologii pentru dezvoltarea rapidă a aplicațiilor pentru sistemul de operare mobil iOS, Android, Windows Phone/8.1/10, folosind aceleași medii de dezvoltare (Configurator sau 1C:Entrprise Development Tools) și aceleași metode de dezvoltare , care sunt utilizate pentru aplicații 1C „normale”. Rezultatul sunt aplicații autonome, offline, dar cu capacitatea de a schimba informații cu lumea exterioară folosind o gamă largă de instrumente de integrare oferite de platformă: servicii Web și HTTP, e-mail etc. Deoarece protocoalele de schimb sunt independente de platformă, platforma mobilă 1C, printre altele, este un mijloc de a crea rapid un front-end mobil pentru aproape orice soluție de server.

fundal

În vremurile 1C:Enterprise versiunea 8.0 (și versiunile ulterioare), exista un produs software „Extensie pentru computere de buzunar”. Extensia permitea crearea de produse numai pentru Windows Mobile, Windows CE etc. Produsul avea propriul configurator și server și a fost acceptat până la lansarea versiunii 1C:Enterprise 8.3. Cea mai recentă versiune a extensiei (8.2.9) a fost lansată în octombrie 2013, iar suportul complet s-a încheiat la 1 ianuarie 2015.
Extensia a avut o utilizare limitată chiar și în perioada de glorie a comunicatoarelor Windows Mobile, iar plecarea unor astfel de dispozitive de pe piața mobilă în mod clar nu a adăugat popularitate acestui produs software. Dispozitivele iOS și Android au ocupat aproape întreaga piață a dispozitivelor mobile și a devenit clar că suportul pentru aceste sisteme de operare este unul dintre punctele cheie pentru un sistem care trebuie operat în lumea mobilă de astăzi. De asemenea, părea evident că abordarea principală a platformei existente 1C:Enterprise ar trebui utilizată și pe dispozitivele mobile: un dezvoltator aplicat ar trebui să se gândească în primul rând la rezolvarea problemelor aplicate și, în al doilea rând, la ce caracteristici ale sistemului de operare folosește pentru a le rezolva. probleme . Cu alte cuvinte, aveți nevoie de un instrument care izolează dezvoltatorul aplicației de specificul unui anumit sistem de operare mobil și instrument de dezvoltare.

Platformă mobilă

Pe baza experienței de dezvoltare și operare a unei extensii pentru computere de buzunar, s-a decis dezvoltarea unui sistem specializat care să satisfacă mai multe cerințe:
  • trebuie să accepte sistemele de operare mobile moderne și dispozitivele care le rulează. În primul rând, acestea sunt iOS de la Apple și Android de la Google.
  • acest sistem ar trebui să permită utilizarea aplicațiilor dezvoltate în stilul adoptat pe dispozitivele mobile moderne. În special, interfața ar trebui să se bazeze pe control manual (în sensul literal al cuvântului) folosind ecrane tactile.
  • sistemul ar trebui să ofere o interfață de programare uniformă pentru implementarea diferitelor mecanisme specifice, indiferent de sistemul de operare mobil utilizat.
  • dezvoltatorul trebuie să folosească același instrument și aceleași abordări de dezvoltare ca atunci când dezvoltă aplicații pentru un computer „obișnuit”.
  • un dezvoltator de aplicații ar trebui să dezvolte o soluție de aplicație într-un mediu de dezvoltare familiar, folosind un singur cod pentru sisteme desktop și mobile, dacă este posibil.
  • interfața unei soluții aplicate care rulează pe un dispozitiv mobil ar trebui să fie similară pentru diferite platforme și, în general, să fie recunoscută fără ambiguitate.
Rezultatul dezvoltării a fost așa-numita platformă mobilă, care a fost lansată pe 29 mai 2013 în versiuni pentru iOS și Android. Platforma mobilă 1C:Enterprise este un set de instrumente și tehnologii care vă permite să creați aplicații pentru sistemele de operare mobile iOS, Android, Windows Phone / 8.1 / 10 folosind același mediu de dezvoltare (Configurator) și aceleași metode de dezvoltare ca pentru aplicațiile obișnuite. pe platforma 1C:Enterprise. Rezultatul sunt aplicații autonome, offline, dar cu capacitatea de a schimba informații cu lumea exterioară folosind o gamă largă de instrumente de integrare oferite de platformă: servicii Web și HTTP, e-mail etc.
Platforma mobilă a fost bine primită de comunitate, au început să apară diverse articole pe această temă (de exemplu, și). Pentru a dezvolta o aplicație cu funcții complete care rulează simultan pe marea majoritate a dispozitivelor mobile, acum necesita timp și cunoștințe minime, care nu diferă fundamental de cunoștințele unui dezvoltator de aplicații „obișnuit” pe platforma 1C:Enterprise. Desigur, un prag de intrare atât de scăzut atrage dezvoltatorii care trebuie să ofere unele funcționalități de bază pentru angajații care lucrează pe drum, șefi și alți angajați mobili care trebuie să lucreze cu sistemul corporativ.
Este ușor să începeți să dezvoltați o aplicație mobilă pe platforma 1C:Enterprise. În Configurator, trebuie să setați proprietatea de configurare „Scopul de utilizare” la valoarea „Dispozitiv mobil”. În acest caz, unele dintre obiectele de configurare a aplicației vor deveni indisponibile (planuri de tip de caracteristici, planuri de conturi etc.), dar proprietățile specifice aplicației mobile vor deveni disponibile (de exemplu, instrumente multimedia și de localizare geografică încorporate pentru un dispozitiv mobil). , etc.).


În același timp, puteți depana algoritmii aplicației principale (care nu au legătură directă cu specificul mobil) direct în Configurator de pe computerul dezvoltatorului. În același timp, se recomandă încadrarea secțiunilor de cod în care funcționalitatea „mobilă” este apelată cu instrucțiuni adecvate către preprocesor pentru a evita erorile la executarea codului pe un computer personal:
#If MobileApplicationClient Then Data = GeolocationServer.GetProviderName(); #EndIf
Începând cu versiunea 8.3.7 a platformei mobile, depanarea aplicației direct pe un dispozitiv mobil a devenit disponibilă (mai multe despre asta mai jos).

Dezvoltarea pe o platformă mobilă poate urma o varietate de abordări, dar există câteva puncte principale care ies în evidență. Din punctul de vedere al construirii aplicației mobile actuale, bogăției sale funcționale și rolului în infrastructura IT a întreprinderii:

  • o aplicație mobilă poate fi parte integrantă și integrantă a unui sistem informatic existent al întreprinderii. Aplicația mobilă va oferi o interfață și alte caracteristici (inclusiv schimbul de date) adaptate capacităților sistemului de informații existent. În acest caz, aplicația mobilă este foarte strâns legată de sistemul informațional „normal” și nu poate fi operată izolat de acesta.
  • aplicația mobilă îndeplinește sarcini specifice care practic nu au legătură cu sistemul informațional al întreprinderii. Există doar un set minim de date care sunt schimbate între aplicația mobilă și sistemul informațional. În acest caz, cel mai probabil, aplicația mobilă va schimba folosind un protocol standardizat, ceea ce face posibilă utilizarea acestei aplicații mobile în cazuri și situații complet diferite.
Cele două situații descrise mai sus pot fi considerate opțiuni extreme. Dar acestea nu sunt singurele opțiuni de dezvoltare. Dezvoltatorul de aplicații poate alege independent opțiunile de integrare între aplicația mobilă și sistemul informatic care acționează ca back office pentru aceasta.
Aplicația mobilă este dezvoltată ca o configurație complet autonomă, dar poate partaja o parte din codul sursă cu configurația „părinte”. Apropo, configurația „părinte” poate să nu existe fizic (de exemplu, dacă dezvoltați un fel de aplicație universală care poate funcționa cu sisteme diferite folosind un protocol universal).

Dispozitiv cu platformă mobilă

Ce este o platformă mobilă și ce poate face?
Pentru a fi corect, platforma mobilă este doar una dintre componentele întregului complex, datorită căreia 1C:Enterprise 8 funcționează pe dispozitivele mobile. Deci, dezvoltatorul de aplicații operează cu următoarele componente:
  1. Platforma mobilă în sine este partea mobilă a cadrului 1C:Enterprise. Se prezintă sub formă de platformă obișnuită (care este utilizată în timpul construirii aplicației pentru publicarea în magazinul de aplicații) și platformă de dezvoltator mobil care este utilizată (surpriză) în timpul dezvoltării aplicației mobile.
  2. O configurație mobilă este o configurație a sistemului software 1C:Enterprise scrisă ca fișier XML.
  3. Combinația dintre platforma mobilă și configurația mobilă are ca rezultat o aplicație mobilă.
  4. Asamblatorul de aplicații mobile este o soluție de aplicație specializată care poate transforma platforma mobilă, configurația, ecranele de deschidere, pictogramele și alte componente într-un fișier de aplicație mobilă gata făcut, care poate fi încărcat în Apple AppStore, Google Play, Windows Phone Apps / Windows Apps magazine.
De ce este totul atât de dificil? De ce nu se poate face pe un dispozitiv mobil exact așa cum se face pe o platformă mare? Acestea. instalați o platformă mobilă pe dispozitiv și încărcați orice număr de configurații/aplicații în ea? Acest lucru interzice aplicarea restricțiilor de licențiere pentru aplicațiile care sunt distribuite prin magazinele de aplicații. De exemplu, dacă aplicația dvs. descarcă cod executabil (ca script) prin Internet, acesta nu va apărea niciodată în magazinul de aplicații Apple. Cu toate acestea, trebuie înțeles că posibilitatea de a descărca orice configurație care se află în platforma mobilă a dezvoltatorului nu este destinată distribuției de aplicații mobile chiar și în cadrul unei singure companii, ca să nu mai vorbim de distribuția către clienții dezvoltatorului.
După ce aplicația mobilă se află pe dispozitivul mobil țintă, devine necesară utilizarea unui fel de bază de date (datele trebuie să fie stocate undeva). Ca motor de bază de date, platforma mobilă folosește propriul motor de bază de date, care este portat pe platforma mobilă de pe platforma computerului personal. Este compact și suficient de rapid, dar principalul lucru este că oferă exact același comportament cu care sunt obișnuiți dezvoltatorii de aplicații atunci când lucrează pe o platformă pentru computere personale.
De asemenea, este de remarcat faptul că în interiorul aplicației mobile este construită după aceeași schemă ca și munca unei platforme convenționale cu o versiune de fișier a bazei de informații: există o parte client, există o parte server, există o bază de date și există este o interacțiune client-server.
Platforma mobilă în sine este scrisă ca o aplicație nativă, compilată în cod binar pentru principalele arhitecturi de procesoare utilizate în prezent în lumea mobilă: aceasta este arhitectura ARM v5 și superioară și x86.
În plus, pot fi necesare permisiuni speciale pentru a interacționa cu anumite caracteristici ale dispozitivului mobil (telefonie, GPS, lucru cu camera încorporată etc.). Pentru iOS, acestea sunt setate direct în timpul funcționării aplicației în sine, iar pentru Android, permisiunile sunt specificate la crearea aplicației. Permisiunile necesare sunt specificate atunci când se dezvoltă o aplicație mobilă și sunt utilizate de către generatorul de aplicații mobile, dar mai multe despre constructor mai târziu.

Câteva despre platforma pentru dezvoltatori

În timp ce dezvoltăm o aplicație mobilă, nu suntem obligați de restricțiile de licențiere impuse aplicațiilor mobile distribuite prin magazinele de aplicații. Aceasta înseamnă că putem folosi platforma mobilă 1C în același mod în care folosim platforma „mare” pe un computer personal - instalați platforma mobilă însăși pe un smartphone/tabletă și încărcați configurațiile aplicațiilor mobile în ea. După lansare, platforma ne va afișa o listă de aplicații înregistrate în ea:

Pentru a adăuga o nouă aplicație pe platformă, trebuie să plasați un fișier XML cu descrierea acestuia pe o resursă accesibilă de pe un dispozitiv mobil prin protocolul HTTP. Cel mai convenabil mod de a face acest lucru este din Configurator, prin meniul „Configurare \ Aplicație mobilă \ Publicare”. În acest caz, fișierul XML cu configurația aplicației este plasat pe serverul web de pe computerul dezvoltatorului (în consecință, acest computer trebuie să aibă un server web - IIS sau Apache).

Dacă specificați opțiunea „Repornire din configurator” pentru aplicație, atunci aplicația de pe dispozitivul mobil va fi actualizată automat de pe computerul dezvoltatorului de fiecare dată când dezvoltatorul actualizează fișierul de configurare XML găzduit pe serverul web.
Când opțiunea „Depanare activată” este activată, este posibilă depanarea pas cu pas a aplicației pe un dispozitiv mobil din Configuratorul de pe computerul dezvoltatorului (în Configurator, opțiunea „Depanare prin protocol HTTP” din „Instrumente \ Opțiuni”. " trebuie selectat meniul). Dacă setați puncte de întrerupere în cod în Configurator și selectați comanda „Aplicație mobilă - începeți depanarea”, atunci aplicația mobilă de pe dispozitiv se va opri când codul executabil ajunge la punctul de întrerupere și puteți vizualiza valorile variabilelor, stiva de apeluri etc. în Configurator.

Ce poate?

Deci, ce face platforma mobilă? Suficient:)
Dacă nu utilizați termenii specifici 1C:Enterprise, atunci platforma mobilă oferă o oportunitate de a lucra cu informații de reglementare și de referință, de a elabora documente care descriu unele acțiuni externe, de a vizualiza rapoarte, de a comunica cu lumea exterioară folosind servicii de internet și multe altele. Mai Mult. Acestea. oferă unui dezvoltator de aplicații posibilitatea de a scrie o aplicație destul de funcțională, de exemplu, un program de finanțare a casei, un program de vânzări mobile și altele asemenea.
Dar, pe lângă funcționalitatea obișnuită care este pe platformă pentru un computer personal, platforma mobilă trebuie să ofere lucru cu caracteristici specifice care sunt unice pentru dispozitivele mobile:
  • lucrul cu apeluri și jurnalul de apeluri;
  • lucrul cu mesaje scurte (SMS) și lista acestora;
  • contacte;
  • calendare;
  • geopoziţionare (fără aşezare trasee);
  • vă permite să faceți fotografii, precum și înregistrare video și audio;
  • răspunde la schimbările de orientare a ecranului;
  • lucrul cu notificări (local și PUSH, atât direct, cât și printr-un serviciu special de intermediar);
  • scanează coduri de bare și coduri QR cu camera
  • Monetizarea aplicațiilor mobile (adică o modalitate de a oferi unui dezvoltator de aplicații mobile oportunități de venituri suplimentare):
    • Lucrul cu serviciile de achiziție Apple In-App Purchase (pentru sistemul de operare iOS) și Google Play In-App Billing (pentru sistemul de operare Android), cu ajutorul cărora puteți organiza diferite tipuri de abonamente, achiziții de funcționalități etc. într-o aplicație mobilă
    • Afișați anunțuri în aplicațiile mobile (iAd pentru iOS și AdMob pentru Android sunt acceptate în prezent).
  • etc.
Este clar că unele funcții pot să nu fie disponibile pe fiecare dispozitiv specific, așa că pentru a determina ce se poate face pe dispozitivul pe care rulează aplicația mobilă, sunt furnizate metode speciale care vă permit să aflați ce este disponibil pe acest dispozitiv, de exemplu, capacitatea de a forma sau nu numere. Astfel, este implementată aproximativ următoarea schemă de utilizare: verificăm dacă este posibil să folosim un fel de oportunitate sau nu și, dacă este posibil, o folosim:
Dacă TelephonyTools.SupportedDial() atunci TelephonyTools.DialNumber(PhoneNumber, apelați imediat); EndIf;
Pentru a ascunde de dezvoltatorul aplicației detalii despre sistemul de operare mobil utilizat, pentru a-i oferi mecanisme unificate pentru utilizarea funcționalității mobile este o sarcină importantă pentru noi. Credem că am rezolvat cu succes problema. Diferențele dintre mecanismele implementate sunt fie absente, fie minimizate. Cu excepția, desigur, a cazurilor în care nu există nicio funcționalitate într-unul dintre sistemele de operare.
De exemplu, tehnica de lucru cu notificări push este foarte diferită între Google și Apple. Am depus mult efort pentru unificarea mecanismului de lucru cu notificările PUSH din codul aplicației. În cazul unei aplicații mobile, am reușit aproape 100%: același cod de aplicație pe un dispozitiv mobil procesează primirea notificărilor PUSH atât pe iOS, cât și pe Android. Și codul pentru trimiterea notificărilor PUSH în aplicația server arată și el la fel. Dar pentru a realiza o astfel de unificare, a trebuit să dezvoltăm un server proxy special https://pushnotifications.1c.com/ , care ascunde dezvoltatorului diferite tehnici de lucru cu Apple Push Notification Service (APNS) și Google Cloud Messaging (GCM). ). Toată diferența constă în diferitele setări direct pe site-ul proxy https://pushnotifications.1c.com/ ; pentru a lucra cu APNS, trebuie să încărcați un certificat SSL pe site (pe care Apple îl eliberează pentru aplicație la cererea dezvoltatorului), pentru a lucra cu GCM, trebuie să specificați un identificator unic al aplicației.
Evident, nu este posibil să implementați imediat toate caracteristicile pe care doriți să le aveți într-o aplicație mobilă. Și întotdeauna trebuie să găsești un compromis între câteva lucruri foarte utile. Și dacă îți lipsește ceva, scrie-ne despre ce sarcini de business (la urma urmei, platforma este, în primul rând, un instrument de implementare a sarcinilor de business!) pe care nu le poți rezolva și ce mecanism te-ar ajuta pentru asta.

Cu ce ​​seamănă?

Interfața grafică a platformei mobile este o problemă separată. În 1C:Enterprise, după cum știți, interfața este descrisă declarativ. Acest lucru, pe de o parte, impune unele restricții asupra dezvoltării interfeței de utilizare (de exemplu, nu există posibilitatea de poziționare pixel cu pixel), dar, pe de altă parte, permite platformei să reda interfața uniform pe ecrane de diferite dimensiuni, în client thin și web. Am încercat să aderăm la același principiu în platforma mobilă. Cât de bine am făcut-o? Să încercăm să ne dăm seama.
În primele versiuni ale platformei mobile (până la 8.3.5 inclusiv), interfața grafică a aplicațiilor părea foarte familiară utilizatorilor 1C sofisticați; de fapt, el a transferat interfața familiară din versiunile „desktop” ale 1C în lumea mobilă. Dar din punctul de vedere al utilizatorilor care nu erau familiarizați anterior cu 1C, interfața părea oarecum arhaică.
Luând în considerare comentariile și sugestiile, am revizuit radical abordarea noastră față de interfața mobilă în versiunea 8.3.6. Putem spune că am realizat o interfață mobilă complet nouă pentru aplicațiile noastre. Are multe în comun cu interfața noastră Taxi. Modelul de dezvoltare pentru dezvoltatorii de aplicații mobile corespunde modelului de dezvoltare din Taxi. În același timp, interfața mobilă este pe deplin în concordanță cu abordările de proiectare adoptate în aplicațiile mobile și . Interfața ține cont pe deplin de specificul lumii mobile: o dimensiune mică a ecranului (ceea ce înseamnă că designul elementelor grafice ar trebui să devină mai ascetic - fără umbre, degrade), există suport pentru gesturi cu degetele etc. Fapt interesant: noul mecanism de platformă responsabil cu plasarea elementelor în formă (aspect) s-a dovedit a fi atât de reușit și de oportun pentru platforma mobilă, încât a fost lansat pe ea mai devreme (în versiunea 8.3.6) decât în ​​platforma PC (în versiunea 8.3.7) pentru care a fost destinat în primul rând.
În imagine puteți vedea cum s-a schimbat interfața noastră.
Aplicația „Managementul unei companii mici” pe versiunea platformei mobile 8.3.5:


Este pe versiunea 8.3.6:

Și așa arată interfața platformei mobile în direct:

Colecționar - și ce fel de animal este acesta?

După cum am menționat mai devreme, o aplicație mobilă constă din mai multe componente (platforma mobilă reală, configurație, diverse resurse), care trebuie să fie un singur întreg pentru a plasa aplicația în magazin. Pentru a facilita transformarea componentelor într-o aplicație, a fost dezvoltat un asamblator de aplicații mobile. Aceasta este o configurație (aplicație) creată pe platforma 1C:Enterprise, care stochează în baza sa de date toate componentele necesare formării unei aplicații mobile. Pentru ca asamblatorul să-și îndeplinească munca, trebuie să descărcați și să instalați diverse pachete software necesare pentru funcționarea sa (Java și Android SDK etc.), apoi specificați căile către aceste pachete în setările asamblatorului și setați câteva suplimentare. parametrii (chei de dezvoltator etc.).


După configurare, colectorul este gata de lucru. În general, lucrul cu colectorul arată astfel:
  1. Descărcăm versiunea platformei mobile 1C pe care vom construi aplicația
  2. Se incarca configuratia din care vom construi aplicatia mobila
  3. Creăm o aplicație mobilă în care indicăm pentru ce platforme (Android, iOS, Windows) trebuie să construim, ce configurație și platformă trebuie utilizată (în special, specificăm ce certificat să construim pentru iOS să îl utilizăm dacă aplicația funcționează cu PUSH - notificări).
  4. Efectuăm asamblarea „un singur clic” a unei aplicații mobile pentru toate platformele selectate
  5. Cu încă un clic, trimitem aplicațiile mobile colectate către magazinele de aplicații (dacă aceasta este o aplicație pentru iOS sau Android). În magazinele Windows Apps / Windows Phone Apps, aplicația trebuie încărcată manual, deoarece Microsoft nu oferă încă un API pentru găzduirea unei aplicații în magazin.
Trebuie remarcat separat faptul că asamblatorul nu este necesar pentru dezvoltarea și depanarea unei aplicații mobile. Pentru a face acest lucru, puteți utiliza platforma mobilă a dezvoltatorului și instrumentele Configurator pentru a transfera configurația pe un dispozitiv mobil. Dar pentru a distribui o aplicație mobilă, aveți nevoie de un asamblator.

Aplicații pe platforma mobilă

Compania 1C însăși lansează o serie de aplicații pe platforma mobilă care sunt clienți mobili ai aplicațiilor server 1C (1C: Gestionarea documentelor, 1C: Managementul companiilor mici etc.). Aceste aplicații implementează un subset al funcționalității clienților „obișnuiți”. În cazul versiunii mobile a 1C: Small Business Management, funcționalitatea este suficientă pentru utilizarea completă a programului și am văzut adesea o situație în care o versiune mobilă a aplicației este suficientă pentru ca clienții să conducă o afacere.
Partenerii noștri folosesc platforma mobilă atât pentru dezvoltarea de aplicații mobile produse în serie distribuite prin magazine de aplicații, cât și pentru aplicații personalizate create la cererea anumitor clienți. Printre aplicațiile de circulație, există aplicații care folosesc un back-end non-1C ca depozit central de date.
Dintre aplicațiile mobile create la comanda clienților, putem aminti clientul mobil pentru „1C: Manufacturing Enterprise Management”, creat la comanda unui mare holding de inginerie. Aproximativ o sută de angajați ai holdingului folosesc aplicația mobilă în magazine fierbinți, unde, din motive de siguranță, este imposibil să se instaleze calculatoare staționare. Camera încorporată a unui dispozitiv mobil este folosită pentru a citi codurile de bare ale produselor și pentru a le căuta în directorul listei de stocuri, aplicația mobilă vă permite să înțelegeți în ce stadiu al lanțului tehnologic se află acest produs, marcați trecerea următoarea operație a produsului etc.

Concluzie

Am încercat foarte superficial să descriem platforma mobilă, ce vă permite să faceți și de ce a ieșit așa cum a ieșit. În acest articol, aproape nimic nu se spune despre Windows mobil. Există mai multe motive pentru aceasta: în primul rând, versiunea platformei mobile pentru Windows a fost lansată relativ recent („1C:Enterprise” versiunea 8.3.7), iar în al doilea rând, această versiune a platformei mobile nu are diferențe semnificative față de implementare pentru alte sisteme de operare mobile. Desigur, vom crește funcționalitatea pentru sistemul de operare Windows. Precum și creșterea funcționalității platformei mobile în ansamblu. Deci, în viitorul apropiat avem - suport pentru componente externe în platforma mobilă; acest mecanism (care a fost de mult disponibil în platforma „mare”) va permite dezvoltatorilor să implementeze funcționalități care nu sunt disponibile din niciun motiv în platforma mobilă.
În mod tradițional, punctele forte ale platformei tehnologice 1C:Enterprise sunt ușurința de utilizare pentru dezvoltator și viteza de creare și modificare a aplicațiilor de afaceri. Platforma mobilă 1C a transferat ambele atuuri în lumea mobilă. Platforma mobilă 1C este o oportunitate de a dezvolta rapid o aplicație care rulează pe cele mai populare trei platforme mobile (iOS, Android, Windows Phone / 8.1 / 10). Și datorită unei game largi de instrumente de integrare independente de platformă disponibile (servicii Web și HTTP etc.), platforma mobilă 1C este o oportunitate de a crea rapid un client mobil pentru trei platforme mobile pentru aproape orice aplicație de server care acceptă oricare dintre metode de integrare disponibile în platforma 1C (servicii Web și HTTP, schimb de fișiere etc.).

Numai utilizatorii înregistrați pot participa la sondaj. , Vă rog.