Bygge en 1s mobilapplikasjon. Hvordan jeg snublet i "mobilapplikasjonsbygger"-konfigurasjonen. Et eksempel på utvikling av en mobilapplikasjon for en nettbutikkbud ved bruk av "Mobile Application Builder"

Bygge en 1s mobilapplikasjon. Hvordan jeg snublet i "mobilapplikasjonsbygger"-konfigurasjonen. Et eksempel på utvikling av en mobilapplikasjon for en nettbutikkbud ved bruk av "Mobile Application Builder"

Denne artikkelen er for de som er interessert i mobilklienten. Vi vil se på å installere en mobilklient på Android, koble til feilsøking og sette sammen en apk-applikasjon i "Mobile Application Builder"-konfigurasjonen.

Endelig har testmobilplattformen 8.3.12 dukket opp, og nå kan vi teste driften av mobilklienten. Jeg vet ikke om deg, men mange utviklere jeg kjenner har ventet på dette siden publiseringen av artikkelen om "1C: Through the Looking Glass" (mobilklient).

Jeg antar at du er kjent med å installere en mobilapplikasjon og mobilapplikasjonsbyggeren, og også at du allerede har Android SDK, Apache Ant, etc. installert. Det er allerede mange artikler om dette emnet.

For våre eksperimenter, la oss ta «Managed Application»-demokonfigurasjonen, og la oss først prøve å koble den til en ferdig mobilklient. I mitt tilfelle er klientdistribusjonen filen "1cem-client-arm.apk". Muligheten til å installere applikasjoner fra ukjente kilder må først aktiveres på smarttelefonen. For meg ser det slik ut:

Mobilklienten er en analog av webklienten, derfor må den publiseres på webserveren for å få tilgang til databasen. Alt er standard her, jeg publiserer til en IIS webserver kalt "demo". Databasen min er filbasert, så jeg må gi rettigheter til katalogen til IUSR-brukeren. Jeg er glad for at systemet i seg selv minnet meg om dette.

Koble til databasen i mobilklienten:

Selvfølgelig var det ikke mulig å gå inn i databasen med en gang. Hele poenget er at administratoren åpner behandling for å jobbe med e-post og prøver å sette et ikon for oppgavelinjen, som ikke finnes i mobilklienten. Siden denne funksjonaliteten heller ikke er tilgjengelig i webklienten, er koden innrammet i kompileringsdirektivene "#If Not WebClient Then". Vi trenger bare å finne alle stedene der dette direktivet brukes og endre det til "#If Not WebClient AND Not MobileClient Then". For det første er dette ganske nok, og vi kan endelig se mobilklienten fungere. Kommandogrensesnittet ser slik ut:

Her er listen over motparter:

Dette er selvsagt ikke alle stedene som må tilpasses mobilklienten. Du kan sjekke konfigurasjonen ved å bruke "Hovedmeny - Konfigurasjon - ---Sjekk konfigurasjon":

Jeg fant 84 feil, inkludert metadataobjekter som ikke støttes. Pluss de tre stedene i koden som jeg allerede har begrenset med direktiver. Så du må fortsatt jobbe med tilpasning, men dette er absolutt ikke det samme som å skrive en mobilapplikasjon fra bunnen av.

Lansering under andre roller skjer på samme måte, du trenger bare å angi rettigheten til å starte mobilklienten.

Hvis vi ikke forstår hva feilen er, vil feilsøking hjelpe oss. Den er tilgjengelig i mobilklienten, men bare HTTP-feilsøking brukes. Jeg har en fildatabase, så jeg vil bruke den lokale feilsøkingsserveren ("Verktøy - Alternativer - Feilsøking") og sette opp en automatisk tilkobling for mobilklienten ("Feiling - Tilkobling - Automatisk tilkobling"):

Spesifiser parameterne og du er ferdig:

Oppsettet for den forhåndsforberedte apk-klienten fra 1C er fullført.

La oss nå bygge vår apk ved å bruke mobilapplikasjonsbyggeren. Helt ærlig brukte jeg flere timer på å prøve å bygge applikasjonen første gang. Monteringen fortsatte, men en tom liste over databaser åpnet.

Og så har vi et arkiv over mobilversjonen av plattformen. Vi laster den opp til katalogen "Mobilversjoner":

I samlerinnstillingene har det dukket opp et eget element for SDK 26 og høyere (for de, som meg, som ikke har oppdatert på lenge, start SDK Manager og last ned nye pakker):

Deretter må du forberede en konfigurasjonsfil. Det var med dette trinnet jeg hadde problemer helt i begynnelsen. Så åpnet jeg dokumentasjonen og alt ble litt klarere. Utviklerveiledningen sier følgende om dette: "Hver konfigurasjon som kan fungere i mobilklienten inneholder noe tilleggsinformasjon som lar deg spore konfigurasjonserstatningen."
Konfigurasjonsfilen må signeres. I dette tilfellet genereres dens egen private nøkkel for hver konfigurasjon, og den offentlige nøkkelen (DSAKey-feltet) lastes opp til filen 1cemca.xml, som konfigurasjonssignaturen sammenlignes med.

For å generere en nøkkel og signatur, gå til egenskapene til "Mobilklientsignatur"-konfigurasjonen (umiddelbart under de nødvendige tillatelsene, hvis egenskapene dine er delt inn etter kategori og ikke alfabetisk) og se signaturinnstillingene:

Først lager vi en privat nøkkel og skjuler den for spioner og fiender. Deretter lager vi en konfigurasjonssignatur. For fremtiden anbefaler håndboken å gå til "Hovedmeny - Konfigurasjon - Mobilklient - Sette opp bruken av mobilklienten." I dialogboksen merker du av for "Bekreft mobilklientsignatur ved oppdatering av databasekonfigurasjonen" og klikker på "OK". Etter manualen å dømme vil signaturen endres dersom vi endrer sammensetningen eller navnene på metadataobjekttyper, samt navn og/eller sammensetning av registeroppføringsnøkler. De. endring av skjemaene påvirker definitivt ikke signaturen og, etter beskrivelsen, endre sammensetningen av detaljene i eksisterende kataloger og dokumenter (men dette er ikke sikkert).

Signaturen er klar, vi kan fortsette. La meg fortelle deg med en gang at bakgrunnsprosesser ikke er tilgjengelige i mobilklienten, så de må deaktiveres i mobilklienttillatelsene. Fildeling fra en PC er heller ikke tilgjengelig. I tillegg deaktiverte jeg geoposisjonering slik at det ikke ville være noen feil under montering på grunn av mangelen på en nøkkel for å jobbe med kart. Jeg endte opp med følgende liste over tillatelser:

Et eksempel på utvikling av en mobilapplikasjon i 1C:Enterprise 8.3 for arbeidet til en nettbutikkbud ved levering av varer til kunder. "Mobile Application Builder"-konfigurasjonen ble brukt til utvikling.

Et eksempel på utvikling av en mobilapplikasjon for en nettbutikkbud ved bruk av "Mobile Application Builder"

Så vi har utviklet en mobilapplikasjon for arbeidet til en nettbutikkbud når de leverer varer til kunder. Selvfølgelig er det ganske skjematisk og kan ikke dekke alle oppgavene som faktisk oppstår under arbeidet til en kurer. Men den implementerer all funksjonaliteten vi ønsket å vise i denne boken.

Nå, etter at utviklingen er fullført, er alt vi trenger å gjøre å sette sammen mobilapplikasjonen vår til én fil og laste den ned til nettbrettet.

Selv om vi vil bruke en spesiell konfigurasjon for montering Mobilapplikasjonsbygger, som letter monteringsprosessen, er fortsatt ikke lett eller raskt å gjøre for første gang. Derfor må du være tålmodig og følge sekvensen av handlinger som er beskrevet nedenfor nøye og nøye.


Hvor du laster ned og hvordan du installerer Mobile Application Builder

Konfigurasjon Mobilapplikasjonsbygger leveres som en del av den mobile plattformen. I bokens første kapittel i avsnittet "Mobilplattform 1C: Enterprise" pakket vi ut arkivet med mobilplattformen på datamaskinen. I denne katalogen er det en MobileAppMaker-mappe med en Setup.exe-fil for installasjon av konfigurasjonsmalen. La oss kjøre denne filen og installere konfigurasjonsmalen i "1C:Enterprise" malkatalogen (fig. 5.1).

Ris. 5.1. Installere konfigurasjonsmalen for Mobile Application Builder

Deretter vil vi legge til en ny informasjonsbase i listen over informasjonsbaser «1C:Enterprise» og lage en informasjonsbase fra den tidligere opprettede malen (fig. 5.2).

Ris. 5.2. Opprette informasjonsbasen "Mobile Application Builder" fra en mal

Deretter åpner vi denne databasen i konfiguratoren og legger til Administrator-brukeren med egenskapene 1C:Enterprise Authentication, Administrator- og brukerrollene og det russiske språket (fig. 5.3).

Ris. 5.3. Opprette en "Administrator"-bruker

La oss lagre konfigurasjonen, lukke den og åpne den i 1C:Enterprise-modus som administratorbruker. Nå er denne databasen tom. Vi må fylle den med alle nødvendige parametere for monteringen, som vil bli lagret og brukt til ytterligere sammenstillinger.

Først (hvis databasen er tom), åpnes generell hjelpeinformasjon om mobilapplikasjonsbyggeren på applikasjonens startside. Du kan også få tilgang til den fra hovedmenyen – Hovedmeny > Hjelp > Hjelpeinnhold > Mobile Application Builder. I tillegg åpnes flere hjelpesider om å sette sammen mobilapplikasjoner fra individuelle konfigurasjonsskjemaer (fig. 5.4).

Ris. 5.4. Konfigurasjonshjelp for Mobile Application Builder


Konfigurere applikasjonsløsningsparametere

Først må vi konfigurere samlerinnstillingene. For å gjøre dette, fra Verktøy-menyen, kall opp Applikasjonsinnstillinger-elementet. Vi skal ikke bygge en mobilapplikasjon for Apple nå, så vi lar den tilsvarende avmerkingsboksen stå tom.

I innstillingsskjemaet må vi fylle ut tabellen Komponentkataloger på datamaskiner som deltar i byggeprosessen, som vil inneholde banene til programvarekomponentene som er nødvendige for å bygge mobilapplikasjonen. For å gjøre dette, klikk på Opprett-knappen over denne tabellen (fig. 5.5).

Ris. 5.5. Opprette en tabelloppføring "Komponentkataloger..."

Skjemaet Komponentbaner åpnes. Ved å ringe hjelp fra dette skjemaet kan du se lenker for å få tak i programvarekomponenter og deres beskrivelser (fig. 5.6).

Ris. 5.6. Hjelp til å beskrive stier til komponenter

Først må du installere Java SDK og i JDK-feltet angi katalogen der denne komponenten er installert. Java SDK kan fås fra: http://www.oracle.com/technetwork/java/javase/downloads/index.html. Det anbefales å laste ned Java Platform Package (JDK).

På siden som åpnes, øverst må du klikke på Last ned-knappen (fig. 5.7).

Ris. 5.7. Får Java SDK

På neste side må du godta lisensavtalen (merk av i boksen Godta lisensavtale) og klikk på lenken med ønsket distribusjon i kolonnen Last ned (for 64-biters Windows - dette er jdk-8u60-windows-x64. exe-pakke), fig. 5.8.

Ris. 5.8. Får Java SDK

Det resulterende installasjonsprogrammet må startes og Java SDK installeres, for eksempel i katalogen: C:\Program Files\Java\jdk1.8.0_60 (fig. 5.9).

Ris. 5.9. Installerer Java SDK

Deretter må denne banen spesifiseres i JDK-feltet i skjemaet for å sette stier til komponenter i Mobile Application Builder-applikasjonen (fig. 5.10).

Ris. 5.10. Konfigurere stier til komponenter i Mobile Application Builder-applikasjonen

I det neste feltet i konfigurasjonsskjemaet, Working directory og builder cache, må du spesifisere en hvilken som helst katalog på latin som byggeprogrammet skal plassere tjenestefiler i. Brukeren som mobilapplikasjonene skal bygges på må ha fulle rettigheter for denne katalogen (fig. 5.11).

Ris. 5.11. Konfigurere stier til komponenter i Mobile Application Builder-applikasjonen

I Android SDK-feltet angir du banen til katalogen der SDK Manager er plassert. Vi installerte Android SDK i kapittel 1, i delen "Android SDK" (fig. 5.12).

Ris. 5.12. Konfigurere stier til komponenter i Mobile Application Builder-applikasjonen

Deretter må du installere Apache ANT og i Apache ANT-feltet spesifisere katalogen der denne komponenten er installert. Apache ANT kreves for å bygge en mobilapplikasjon for Android OS. Apache Ant kan fås.

Fra denne siden må vi laste ned apache-ant-1.9.6-bin.zip-arkivet (fig. 5.13).

Ris. 5.13. Får Apache ANT

Pakk ut denne filen til datamaskinen din og spesifiser banen til den i form av å angi stier til komponenter (fig. 5.14).

Ris. 5.14. Konfigurere stier til komponenter i Mobile Application Builder-applikasjonen

Deretter må du installere PuTTY-systemet og i PuTTY-feltet spesifisere katalogen der denne komponenten er installert. PuTTY kan fås.

PuTTY brukes hvis du bygger en mobilapplikasjon for Apple. For å bygge mobilapplikasjoner kreves verktøyene pscp.exe og plink.exe. Bare i tilfelle, la oss laste ned hele installasjonspakken putty-0.65-installer.exe (fig. 5.15).

Ris. 5.15. Får Putty

Det resulterende installasjonsprogrammet må startes og PuTTY installeres, for eksempel i katalogen: C:\Program Files (x86)\PuTTY (fig. 5.16).

Ris. 5.16. Installerer PuTTY

Deretter angir vi banen oppnådd ved installasjon av PuTTY i skjemaet for innstilling av stier til komponenter (fig. 5.17).

Ris. 5.17. Konfigurere stier til komponenter i Mobile Application Builder-applikasjonen

Dette fullfører konfigurasjonen av komponentbaner. Klikk på Spill inn og lukk.


Konfigurere leverandøralternativer

Nå må vi konfigurere leverandørinnstillingene. For å gjøre dette, kall opp Rediger leverandørparametere fra Verktøy-menyen.

Leverandørskjemaet åpnes, der du må spesifisere et vilkårlig navn på leverandøren på fanen Generelle parametere, og også angi applikasjons-ID-prefikset. Dette feltet må fylles ut på latin og begynne med linjen "com". Reglene for å fylle ut dette feltet finner du i den kontekstuelle hjelpen, som kan åpnes ved å klikke på knappen med "?"

Deretter må du notere hvilke operativsystemer mobilapplikasjonen bygges for. I vårt tilfelle merker du av for For Android OS.

For å jobbe med push-varsler gjennom tilleggstjenesten "1C:Enterprise" vil vi spesifisere parametrene for tilgang til tjenesten. For å gjøre dette, klikk på Legg til-knappen over tabellen nederst i leverandørskjemaet. I vinduet som åpnes, Innstillinger for tilgang til tilleggstjenesten «1C:Enterprise», kryss av for Registrer deg for – valgt bruker, velg samlerbruker – Administrator og angi e-postadressen og passordet som vi tidligere registrerte på tjenesten med når testarbeid med push-varsler. Klikk på Lagre og lukk-knappen. I tillegg kan du registrere deg for 1C:Enterprise-tjenesten direkte fra dette skjemaet ved å bruke Register i 1C:Enterprise-tjeneste-knappen, dersom dette ikke allerede er gjort (fig. 5.18).

Ris. 5.18. Konfigurer Mobile App Builder-appleverandørinnstillinger

I tillegg kan du kalle opp vinduet for innstilling av parametere for tilgang til 1C:Enterprise-tjenesten fra Verktøy-menyen, punkt Tilgangsparametere for 1C:Enterprise-tjenesten.

Etter dette må du fylle ut utviklernøkkelgruppen med felt på fanen Innstillinger for Android OS. For å gjøre dette må du først opprette en utviklernøkkel ved å klikke på koblingen Opprett en utviklernøkkel. I skjemaet Opprett en utviklernøkkel som åpnes, fyll ut feltene tilfeldig (for Land-feltet må du spesifisere koden til Russland i ISO-standarden - ru) og klikk på Generer nøkkel-knappen (fig. 5.19).

Ris. 5.19. Konfigurer Mobile App Builder-appleverandørinnstillinger

Etter dette vil utviklernøkkelparameterfeltene fylles ut automatisk (fig. 5.20).

Ris. 5.20. Konfigurer Mobile App Builder-appleverandørinnstillinger

Verdien i SHA1 Hash-feltet til utviklernøkkelen vil bli brukt senere for å få nøkkelen for arbeid med Google maps. Denne verdien kreves hvis mobilapplikasjonen skal bruke geolokaliseringsverktøy på Android-plattformen.

Dette fullfører konfigurasjonen av leverandørparameterne. Klikk på Spill inn og lukk.


Laster mobilplattformen

Nå må vi laste ned mobilplattformen 1C:Enterprise, som den sammensatte mobilapplikasjonen vil kjøre under. Det kan være flere versjoner av mobilplattformen, men de må ikke være lavere enn versjon 8.3.4.

Mobile Platforms-katalogen er beregnet for nedlasting og lagring av forskjellige versjoner av mobilplattformen. En egen oppføring må opprettes for hver plattformversjon i denne katalogen.

Fra programmets kommandopanel åpner du katalogen Mobile plattformer og klikker på Opprett-knappen. Etter dette vil en filvalgsdialog dukke opp der du må velge filen med arkivet til mobilplattformen mobile.zip, som vi lagret på datamaskinen ved mottak av mobilplattformen i bokens første kapittel, i seksjonen "Mobilplattform 1C: Enterprise". Velg den og klikk på Åpne-knappen.

Hvis plattformen er lastet inn, åpnes skjemaet for å opprette et katalogelement Mobile plattformer, der feltene Mobilplattformversjon og Navn fylles ut automatisk, og avmerkingsboksen Mobilplattformfiler lastet vises (fig. 5.21).

Klikk på Spill inn og lukk.


Laster mobilkonfigurasjon

Nå må vi laste inn mobilkonfigurasjonen til Courier Online Store som vi har utviklet. La oss åpne denne konfigurasjonen i konfiguratoren. I konfigurasjonsegenskapspaletten setter du egenskapene Leverandør – myfirm og Versjon – 1.0.0 (fig. 5.22).

Ris. 5.22. Egenskaper for mobilkonfigurasjonen til "Courier Online Store"

Deretter vil vi laste opp denne konfigurasjonen til en fil ved å utføre konfiguratorkommandoen Konfigurasjon > Mobilapplikasjon > Skriv til fil...

Oppslagsboken Mobile Configurations brukes til å laste ned og lagre forskjellige versjoner av. Katalogen antar en struktur på to nivåer: grupper beskriver applikasjonsløsninger, og elementer i gruppene representerer ulike versjoner av konfigurasjonene til disse applikasjonsløsningene. For å laste ned en ny versjon av konfigurasjonen, må du gå til gruppen som tilsvarer applikasjonsløsningen og opprette et nytt element i denne gruppen.

Fra kommandopanelet til applikasjonen åpner du Mobile Configurations-katalogen og klikker på knappen Opprett gruppe med navnet på konfigurasjonen vår Online Store Courier (fig. 5.23).

Ris. 5.23. Opprette en kataloggruppe "Mobilkonfigurasjoner"

Så i denne gruppen vil vi lage et nytt katalogelement.

Etter dette vil en filvalgsdialog dukke opp der du må velge 1cema.xml-filen der vi nettopp har lagret mobilkonfigurasjonen vår. Velg den og klikk på Åpne-knappen.

Hvis konfigurasjonen er vellykket lastet, vil alle skjemafelt fylles ut automatisk og bør ikke endres manuelt. Tillatelsestabellen vil indikere alle tillatelsene for mobilapplikasjonen til å fungere med multimedia, geoposisjonering, varsler osv., som vi satte under utviklingen. I tillegg vil det vises meldinger om umuligheten av å jobbe med kalendere og kontakter, tillatelser som vi ikke har angitt (fig. 5.24).


Klikk på Spill inn og lukk.


Beskrivelse av parametere for mobilapplikasjoner

Nå må vi beskrive parametrene til mobilapplikasjonen som vi vil samle i referanseboken for mobilapplikasjoner.

Oppslagsboken skal ha en struktur på to nivåer, der gruppen beskriver hovedsammenstillingsparametrene, og gruppeelementet spesifiserer sammenstillingsparametrene for en spesifikk versjon av mobilapplikasjonen. Det må opprettes en egen gruppe for hver mobilapplikasjon, og for hver versjon av mobilapplikasjonen i denne gruppen må du lage et eget element.

Fra programkommandopanelet åpner du katalogen for mobilapplikasjoner og klikker på knappen Opprett gruppe. Angi navnet på mobilapplikasjonen Courier Online Store i skjemaet som åpnes.

Vi har kun én leverandør - Mitt firma. Den fylles ut automatisk. Avmerkingsboksen For Android OS vil også være valgt. La feltet Mobilplattform stå tomt - siste versjon av plattformen vil automatisk bli brukt under montering.

I Løsnings-ID-feltet skriver du inn en vilkårlig streng på latin. Det neste feltet fylles ut automatisk (fig. 5.25).

Ris. 5,25. Opprette en kataloggruppe "Mobilapplikasjoner"

Etter dette vil feltet Parameter for å få nøkkel for arbeid med Google maps automatisk fylles ut (verdien til parameteren Hash SHA1 til leverandørutviklernøkkelen Mitt firma fra leverandørinnstillinger-skjemaet settes inn i dette feltet, se fig. 5.20 + løsningsidentifikatorlinje) - vi trenger dette for å få nøkkelen for å jobbe med Google maps. For å gjøre dette må vi kontakte Google-tjenesten og, etter å ha mottatt nøkkelen, skrive den ned i feltet Nøkkel for arbeid med Google maps.

Mobilapplikasjonsutvikling er alltid forbundet med behovet for å lære ytterligere teknologier. Hva om vi revurderer spørsmålet og bruker allerede kjente verktøy?

For første gang prøvde 1C-selskapet å komme inn markedet for mobilutvikling i 2006. På den tiden var det et stort hastverk med å automatisere arbeidet til eksterne ansatte ved å bruke PDAer. Nye programmer for å løse slike problemer dukket opp som sopp, og en leverandør som 1C med vellykkede produkter for å automatisere ulike forretningsområder kunne ikke gå glipp av sjansen til å gå inn i et lønnsomt marked.

I midten av 2006 presenterte selskapet utgivelsen av et nytt produkt med det lovende navnet "1C: Enterprise 8. Extension for håndholdte datamaskiner." 1C-utviklere, som så utsiktene til den åttende plattformen, begynte å håpe at det nå, ved bruk av ett verktøy, ble mulig uten store problemer å utføre utvikling for det mobile operativsystemet "Windows Mobile", som var populært i disse årene.

I praksis så alt mye verre ut. Dette verktøyet tillot oss ikke å implementere originale ideer. Plastpose" Utvidelse for håndholdte datamaskiner» var mer et tillegg for visse typiske konfigurasjoner enn en fullverdig utviklingsløsning. Det var ingen bestemmelse om å utvide konfigurasjonsfunksjonaliteten ved å legge til nye metadataobjekter. Svært enkle ting ble overlatt til tredjepartsprogrammerere: å lage nye skjemaer for brukerinteraksjon, behandle brukerhendelser.

Ja, det var alle slags løsninger for restriksjonene, men selv de tillot ikke reell utvikling. I tillegg til tekniske begrensninger, følte forbrukerne en alvorlig økonomisk barriere. Selskaper som bestemte seg for å implementere løsningen fra 1C ble pålagt å kjøpe produktive PDAer, kjøpe lisenser for Windows Mobile, og også betale 1C for levering av løsningen og den endelige applikasjonen.

Løsningen fra 1C ble for dyr. Bedrifter som er vant til å spare penger fortsatte å bruke alternative løsninger. Dessuten klarte utviklerne av alternativer å utstyre produktene sine med funksjonalitet for interaksjon med standard 1C-løsninger.

Tekniske begrensninger og høye kostnader tillot ikke produktet å gjenta den kolossale suksessen til skrivebordsplattformen. Ideen om å erobre mobilmarkedet til bygningen.

applikasjoner mislyktes totalt.

Gå frem

Tapet og tapene fra et mislykket prosjekt satte ikke en stopper for utviklingen av en lovende retning. I 2013 introduserte 1C-selskapet den første stabile versjonen av den nye plattformen 8.3, som har som funksjon å utvikle mobilapplikasjoner.

1C tenkte fullstendig om sin tilnærming til å løse det mobile "teoremet" og tok hensyn til feilene til det forrige mislykkede produktet. Resultatet er et helt nytt verktøy som ikke har noe til felles med forgjengeren og er fokusert på de mest aktuelle mobile plattformene – Android og iOS.

Mobilapplikasjoner i 1C-stil

For å bli fullt kjent med utviklingsmulighetene for mobile plattformer, vil vi prøve å utvikle en liten konfigurasjon. Ved å bruke et ende-til-ende eksempel kan du bedre evaluere den tilgjengelige funksjonaliteten og bestemme muligheten for å bruke 1C-plattformen til å løse problemer.

For å fungere trenger du den siste utgaven av 1C:Enterprise 8.3-plattformen. Den pedagogiske versjonen av distribusjonen er tilgjengelig på den offisielle 1C-nettsiden. Det er mer enn nok til å gjenskape et eksempel på dens evner.

I tillegg til 1C:Enterprise 8.3-plattformen, trenger vi en rekke tilleggsverktøy. Denne artikkelen vil se på et eksempel på utvikling av en Android-applikasjon. I denne forbindelse må du laste ned: Android SDK og Apache WEB-server. Den første komponenten inneholder alt som trengs for å bygge applikasjonen og en emulator for testing, og WEB-serveren er nyttig for raskt å laste ned applikasjonen til det mobile operativsystemet.

Vi vil også kreve levering av en "mobilutviklerplattform". Den inneholder en konfigurasjon for å forenkle prosessen med å bygge den opprettede mobilapplikasjonen, samt en mobilutviklerplattform. Den må installeres på en mobil enhet eller emulator.

For å bygge en applikasjon klar for distribusjon via Google Play, må du laste ned Apacheant Og JavaJDK. Dette emnet er utenfor rammen av artikkelen, så du kan finne ut mer om å jobbe med disse verktøyene og sette sammen applikasjonen i den tilsvarende delen av min.

Konfigurere verktøy

Plattform " 1C:Enterprise 8.3" og Apache-nettserveren leveres med installatører og er installert på en standard måte. Android SDK du trenger bare å pakke den ut i en egen katalog og kjøre " sdk manager.exe" Et vindu vil dukke opp foran deg med et utvalg av tilgjengelige pakker for installasjon. For å teste eksemplet som er omtalt i denne artikkelen, må du velge og installere: Android SDK-verktøy, A ndroid plattformverktøy, SDK Platform API 17.

Det siste trinnet vil være å opprette en ny informasjonsbase. For de som ikke er involvert i utvikling under " 1C:Bedrift"Jeg skal forklare at enhver løsning for denne plattformen består av en informasjonsbase og konfigurasjon. Legge til en ny database gjøres ved å klikke på " Legge til» startvindu. Etter å ha lagt til databasen, åpne den i " Konfigurator».

Første mobilkonfigurasjon

I hovedmenyen til konfiguratoren finner vi delen " Konfigurasjon" og velg "Åpne konfigurasjon". Konfigurasjonstreet (objektene som vil utgjøre den fremtidige applikasjonen) vil vises på venstre side av vinduet. Velg konfigurasjonsroten i den og trykk på tastekombinasjonen " Alt+Enter" Egenskapseditoren åpnes i høyre del av konfiguratorvinduet.

La oss kalle konfigurasjonen " GJØRE" og i egenskapen "Formål med bruk" angir vi " Mobil enhet" Vær oppmerksom på at etter å ha utført den siste handlingen, vil noen noder i konfigurasjonstreet bli inaktive. Dessverre er det ikke mulig å bruke alle metadataobjekter på mobilplattformen.

For å løse problemet vårt, må vi lage flere metadataobjekter i konfigurasjonstreet:


Prosedyre AddTask(Task) ExportRecordManager = CreateRecordManager();

RecordManager.Period = CurrentDate();

RecordManager.Task = Oppgave;<>RecordManager.Status = Task.Status;

Vi har sortert ut å hente data fra informasjonsregisteret og registrere det, la oss nå lære katalogen vår hvordan man jobber med registeret. For å gjøre dette, legg til en felles modul i konfigurasjonstreet med navnet " Arbeide med oppgaver" Du kan klare deg uten, men jeg vil umiddelbart fokusere på muligheten for å bryte koden i moduler. Mange 1C-utviklere forsømmer fortsatt denne anbefalingen og beskriver all logikken på ett sted, og kompliserer dermed påfølgende kodevedlikehold. La oss lage en ny prosedyre i modulen " Opprett NewTask"(se liste 3).

Oppføring 3. Kode for "Create New Task"-prosedyren

Prosedyre CreateNewTask(Link) Export If Link.ThisGroup Then Return;<>endIf;

Request = Ny forespørsel;

Query.Text = "SELECT |TaskStatusSliceLast.Status |FROM |Information Register.TaskStatus.SliceLast(&CurrentDate, Task = &Task) AS TaskStatusSliceLast"; Query.SetParameter("CurrentDate", CurrentDate()); Request.SetParameter("Oppgave", Link);

Resultat = Query.Run().Select();

If Result.Next() Then If Result.Status

Link.Status Deretter Informasjon Registers.Task Status.AddTask(Link);

endIf; Ellers Informasjon Registers.TaskStatus.AddTask(Link); endIf; Slutt på prosedyre Før du oppretter en ny post, sjekkes det om det finnes eksisterende poster for oppgaven. Hvis posten allerede eksisterer, må du sammenligne oppgavestatuser. Hvis statusen fra registeret ikke avviker fra statusen til elementet som skrives, er det ikke nødvendig å opprette en ekstra oppføring. Som en prikken over i-en, la oss åpne skjemaet til «Oppgaver»-katalogelementet og lage en hendelsesbehandler « AfterRecordingOnServer" I den vil vi skrive en samtale til prosedyren beskrevet i den tredje oppføringen: WorkWithTasks.CreateNewTask(CurrentObject.Link); Vi jobber med grensesnittet Hovedfunksjonaliteten til applikasjonen er klar - brukeren kan opprette oppgaver, og hver ny oppgave oppretter en oppføring i det periodiske informasjonsregisteret. La oss nå gå videre til grensesnittet. La oss bringe arbeid med oppgaver i høysetet. Det ville sikkert være logisk å umiddelbart vise en liste over ulukkede oppgaver og muligheten til å opprette en ny umiddelbart etter at applikasjonen er startet? La oss finne noden "

Det neste trinnet er å dra de ekstra rekvisittene til skjemaet. Vi bør ha et grensesnitt for en enkel tabell. Vi vil ikke spesifisere noen dimensjoner, vi overlater bekymringen for å skalere grensesnittet til plattformen.

For den opprettede tabellen, i egenskapsinspektøren, sett avmerkingsboksen for egenskapen " Bare visning", og eiendommen" Kommandopanelposisjon» angi verdien “Nei”. Vi vil fylle tabellen med dynamisk informasjon, så det er ingen vits i å redigere av brukeren.

La oss nå beskrive hendelsesbehandleren "When CreatedOnServer" for skjemaet. La oss legge til en linje med kode til den:

OpenTasks.Load(InformationRegisters.TaskStatus.GetListofUnClosedTasks());

I koden viser vi til prosedyren vi beskrev " Få listen over ulukkede oppgaver” og resultatet av dens utførelse plasseres i tabellen.

La oss gå tilbake til skjemadesigneren og legge til en gruppe av typen "Vanlig gruppe uten visning" med to knapper: " Skape"Og" Oppdater" Eiendom " Gruppering"For den tilføyde gruppen, sett verdien til "Horisontal". For å gjøre knappene mer uttrykksfulle, legg til bilder og endre standardfonten.

Velg nå knappen " Skape"og gi den den globale kommandoen" Oppgaver: lage" Dette lar deg lage oppgaver uten å gå inn i selve katalogen. Ved å klikke på den andre knappen vil vi oppdatere innholdet i tabellen med oppgaver. For å gjøre dette, må du opprette en ekstra skjemakommando.

Alle nye skjemakommandoer opprettes på fanen med samme navn " Lag" Prinsippet er enkelt - vi legger til en ny kommando, beskriver handlingskoden i den og knytter deretter kommandoen til grensesnittet, i vårt tilfelle med en knapp.

Vi bør heller ikke glemme at vi utvikler en administrert applikasjon, så vi må skille klart mellom klient- og serverkode. Når knappen klikkes vil det være en kontekst " OnClient", og vi vil motta data fra databasen fra serveren. I koden ser det slik ut:

&På klientprosedyren UpdateTaskList(Command) UpdateList(); Slutt på prosedyre &På serveren Prosedyre når den er opprettet på serveren (feil, standardbehandling) OpenTasks.Load(InformationRegisters.TaskStatus.GetListofUnClosedTasks()); Slutt på prosedyre

La oss nå definere skrivebordsskjemaet vårt som startsideområdet. Åpne konfigurasjonsegenskapene (velg den øverste noden og klikk " Alt+Enter") og for egenskapen "Arbeidsområde på hjemmesiden" angi verdien " En kolonne", legg deretter skjemaet vårt til listen" Før du oppretter en ny post, sjekkes det om det finnes eksisterende poster for oppgaven. Hvis posten allerede eksisterer, må du sammenligne oppgavestatuser. Hvis statusen fra registeret ikke avviker fra statusen til elementet som skrives, er det ikke nødvendig å opprette en ekstra oppføring.».

Applikasjonen er helt klar og det er på tide å teste den i aksjon. Prøv å kjøre eksemplet og lage flere oppgaver med en annen status enn " Fullført" Informasjonsregisteret er fylt opp med nye oppføringer (dette kan sees gjennom menypunktet " Alle funksjoner") og noen av dem vises på skrivebordet.

Lander på Android

Konfigurasjonen fungerer utmerket på skrivebordet, og nå er tiden inne for å teste den på en mobil OS-emulator. For å klargjøre en ny emulator, kjør kommandotolken ( cmd.exe) og gå til "toos"-katalogen til Android SDK-distribusjonen. Kjør kommandoen " android.bat avd", som vil starte den virtuelle Android-enhetsbehandlingen. I den klikker du på "Opprett" -knappen og spesifiser parametrene til den virtuelle enheten i vinduet som vises. I arbeidsmiljøet mitt bestemte jeg meg for å etterligne Nexus S med Android versjon 4.2.2. (API nivå 17).

Etter å ha opprettet enheten, starter vi den umiddelbart. Mens Android laster, la oss gå tilbake til konfiguratoren og publisere applikasjonen vår på webserveren. I hovedmenyen til konfiguratoren velger du elementet " Konfigurasjon» -> « Mobilapplikasjon» -> « Utgi" I vinduet for publiseringsinnstillinger spesifiserer vi navnet på applikasjonen (kan være hva som helst), webserveren (i vårt miljø skal det være en) og katalogen for lagring av innstillingene.

Angir som navn " todo-mobil", vil søknaden være tilgjengelig på adressen - " http://host/todo-mobile" Klikk "ok" og prøv å få tilgang til den publiserte applikasjonen ved hjelp av en nettleser. Hvis det lykkes, vil serveren returnere XML-koden til den opprettede konfigurasjonen.

La oss gå tilbake til emulatoren og laste applikasjonen med den mobile utviklerplattformen inn i den. Selve applikasjonsfilen er tilgjengelig sammen med leveringen av den mobile utviklerplattformen og kalles "1cem-arm.apk". For å installere denne applikasjonen i emulatoren, bruker vi verktøyet " adb.exe"fra katalogen" plattformverktøy»: adb.exe install –r 1cem-arm.apk.

Etter vellykket installasjon, åpne listen over applikasjoner i emulatoren og start den mobile utviklerplattformen. I vinduet som åpnes, klikk " Legg til applikasjon" og i "adresse"-feltet angir vi URL-en til vår webserver. Jeg har dette http://192.0.168.106/todo-mobile. Klikk " Legge til"og vår konfigurasjon er vellykket overført til den mobile plattformen. Applikasjonen er klar til bruk. Test resultatet og gå tilbake til konfiguratoren, det er på tide å gi applikasjonene "mobil funksjonalitet".

Sender SMS/MMS-meldinger

Funksjoner for arbeid med SMS/MMS meldingstjenester støttes annerledes av mobile plattformer. For eksempel, når du kjører en applikasjon på Android, har utvikleren mulighet til å abonnere på SMS og få tilgang til nye meldinger umiddelbart etter å ha mottatt dem. Dessverre er ikke denne samme funksjonen tilgjengelig på iOS, så dokumentasjon bør være tilgjengelig under utviklingen.

Et objekt er gitt for å sende SMS-meldinger SMS-melding. La oss se på et eksempel:

&OnClient-prosedyre SendSMSMessage(Recipient, MessageText) NewMessage = New SMSMessage();

NewMessage.Text = MessageText;

NewMessage.Recipients.Add(Recipient);

Telephony Tools.SendSMS(NewMessage); Slutt på prosedyre Koden er ganske enkel og trenger knapt kommentarer. La oss nå se på hvordan du abonnerer på innkommende meldinger:&Om klientprosedyren ConnectMessageReceivingHandler() SubscribeToMessages = New AlertDescription("ProcessingNewMessages", ThisObject); Telephony Tools.ConnectSMSMessageHandler(SubscribeToMessages); Slutt på prosedyre &På klienten Prosedyre Behandling av nye meldinger (melding, tilleggsparametere) // Behandler en ny melding // Melding, melding. Slutt på prosedyre Prosedyre" SMS-melding Behandler nye meldinger

" vil bli oppringt hver gang en ny SMS mottas. Gjennom parameteren "

Beskjed

"et objekt av typen" blir overført

» og vi kan enkelt få tak i teksten i meldingen og informasjon om avsenderen.

Arbeid med MMS-meldinger utføres på samme måte. Først lager vi en SMS-melding, og deretter legger vi til et vedlegg (for eksempel bilder) til den. Med denne enkle handlingen blir en SMS til en MMS:

NewMessage= Ny SMSMessage(); Vedlegg = Nytt MMSAvedlegg; Attachment.Data = Bilde; Attachment.ContentType = "bilde/jpeg"; MMSMessage.Attachments.Add(Attachment); Ringe fra en mobilapplikasjon Et programmatisk anrop gjøres ved å bruke "Dial Number"-metoden til det globale objektet "Telephony Tools". Før du ringer metoden, er det sterkt tilrådelig å sjekke muligheten for å ringe: If Telephony Tools.SupportedDialing() Then Telephony Tools.DialNumber(PhoneNumber, CallImmediately); endIf; Parameter " Ringe».

Anropslogg

Mobilplattformen lar utvikleren samhandle med anropsloggen. For eksempel kan du enkelt få en liste over utgående, tapte eller innkommende anrop. Denne funksjonen støttes kun på Android:

Anropslogg = Telefoniverktøy.GetCall Log(); Selection = NewDataCompositionSelection; Selection Element = Selection.Elements.Add(Type("DataCompositionSelection Element")); SelectionElement.LeftValue = NewDataCompositionField("CallType"); SelectionElement.ComparisonView = ComparisonTypeDataLayout.Equals; SelectionElement.RightValue = CallLogCallType.Missed; SelectionElement.Use = Sant; Liste over CallLog Entries = CallLog.FindRecords(Selection); //Listen over anropsloggoppføringer vil inneholde en samling oppføringer

Geoposisjonering

Nesten enhver moderne smarttelefon har geolokaliseringsfunksjoner. Du kan bruke denne funksjonaliteten fra det innebygde 1C-språket. Innhenting av gjeldende koordinater for enheten kan deles inn i 2 trinn: velge en geoposisjoneringsleverandør og behandle de mottatte koordinatene:

//La oss gi valget av leverandør til plattformen IdealProvider = Geoposisjoneringsverktøy.GetMost AccurateProvider(); Koordinater = GeoPositioningTools.GetLastLocation(IdealProvider); //Hvis koordinatene ble mottatt for lenge siden, så oppdater If Coordinates = Undefined OR CurrentDate() – Coordinates.Date > 3600 Then Geopositioning Tools.UpdateLocation(IdealProvider, 60);

Koordinater = GeoPositioningTools.GetLastLocation(IdealProvider); endIf;

Arbeide med multimediefunksjoner Utvikleren har muligheten til å ta bilder, videoer og lydopptak ved å bruke det innebygde språket:(), Ta et bilde(), Lag et videoopptak().

Lag et lydopptak

Hvilket mobil OS er bedre å utvikle for på 1C?

Til tross for min kjærlighet til Apple-teknologi, er det best å lage mobilapplikasjoner ved å bruke 1C-plattformen for Android. Det er flere grunner til dette, men den viktigste er de støttede funksjonene. Dessverre er mange nødvendige ting ikke støttet under iOS. For eksempel kan manglende evne til å abonnere på SMS-meldinger eller samhandle med anropslogger gjøre det umulig å implementere noen ideer. Android er mer vennlig i denne forbindelse. Ikke glem kostnadene for selve enhetene. Ikke alle selskaper vil være klare til å satse på å kjøpe mobile enheter fra Apple.

Plattform " 1C: Enterprise 8» har i praksis bevist sin vilje til å bli et enkelt verktøy for å utvikle bedriftsutvikling. Applikasjoner for mobile plattformer. Eksemplene omtalt i artikkelen er en ytterligere bekreftelse på dette. Det er slett ikke nødvendig å bruke ressurser på å lære native verktøy hvis funksjonaliteten til applikasjonen passer inn i mulighetene til mobilplattformen og selskapet domineres av 1C-produkter.

På en eller annen måte stille og uten noen spesielle beskrivelser av arbeidet, ga 1C ut "Mobile Application Collector" -konfigurasjonen, som er ment å bli en slags arrangør for utvikling av mobilapplikasjoner.

I gjeldende siste versjon 1.0.3.17 er det flere mindre problemer som ved første øyekast ser ut som feil.

Det første problemet vi støter på er umuligheten av å starte konfigurasjonen uten en bruker, vi får følgende feilmelding:

"Konfigurasjonsversjonen er forskjellig fra infobaseversjonen. Det er nødvendig å oppdatere konfigurasjonen ved å kjøre applikasjonsløsningen som en bruker med administratorrettigheter

Dette problemet kan løses ganske enkelt, du trenger bare å starte konfiguratoren og legge til en bruker med "Administrator"-rettigheter.

Det andre problemet oppstår når vi prøver å lage et element i katalogen "Mobilkonfigurasjoner". Vi klikker på "Opprett"-knappen og får feilmeldingen "Elementer kan bare opprettes i grupper":

Ikke noe problem, vi klikker på "Opprett gruppe"-knappen og plutselig får vi igjen feilmeldingen "Elementer kan bare opprettes i grupper."

Løsningen er å gjøre følgende:

På topppanelet er det en "Opprett"-knapp som viser en undermeny. I den klikker du på elementet "Mobilkonfigurasjon":

Deretter åpnes et ganske vennlig vindu, der du kan opprette grupper:

Det er også et problem når du oppretter et katalogelement "Mobilapplikasjoner", vi får følgende feilmelding:

"Applikasjons-ID-prefikset er ikke angitt i leverandørinnstillingene":

Utgangen er også ganske nær:

Og vi begynner å legge inn data i katalogelementet "Mobile Solution Providers".

Prefikset må ha en "prikk" inni. Og klikk på "Opprett utviklernøkkel".

visninger