1s mobilapplikation steg för steg hur man gör det. Mobil klient: installation, felsökning, byggnad för Android". Mobil plattformsenhet

Praktiken att utveckla en mobilapplikation 1C 8.3 (del 1)

Den här artikeln kommer att fokusera på vad jag hade chans att prova och vilken rake jag skulle trampa på innan jag lyckades göra en mer eller mindre normal applikation för surfplattor. Applikationen vässades ursprungligen endast för Android, baserat på konfigurationen 1C: Orders, and mobil app för utveckling.

Inledningsvis valdes det "fel" tillvägagångssättet med att sammanställa applikationen och ladda upp den till surfplattan manuellt. Låt mig påminna dig om att för att bygga mobilapplikationer används Mobile Application Creation Assistant (MobileAppWizzard). Sedan hittades en vacker lösning på ett av forumen med hjälp av en mobilapplikation för utveckling. Denna applikation ingår i installationssatsen mobil plattform. Vid tidpunkten för utvecklingen användes plattformsversion 8.3.3.24. I mappen " Android" hittar du filen 1cem.apk. Detta är den mobila applikationen för utveckling. Dess största plus, som sparade oss mycket tid, är att du kan publicera en mobilapplikation på en webbserver och på en surfplatta, ange en sökväg som http://[ Webbserveradress]/[ Mobilappens namn].

På en surfplatta, i inställningarna för den tillagda applikationen, kan du markera rutan "Uppdatera från konfiguratorn", och varje gång applikationen startar kommer den att försöka ansluta till webbservern och leta efter uppdateringar.

Efter att den mobila applikationen distribuerades började processen med att slutföra den.

Vad krävdes:

1. Ställ in växeln mellan den centrala basen och den mobila enheten.

2. Organisera asymmetrisk synkronisering: ladda upp data om produktsortiment, motparter, lagersaldon och ömsesidiga avräkningar från den centrala databasen, och ladda endast ned kundorder från mobilapplikationen.

3. Implementera ett enkelt gränssnitt för chefer, där de snabbt kan se saldon, priser och avräkningar.

I teststadiet användes mellanbasen "Managed Application" på grund av att demoapplikationen 1C: Orders ursprungligen designades för utbyte med den hanterade applikationen.

Den första pannkakan kom ut klumpig. Bokstavligen. v82.ComConnector användes för att utbyta med den centrala databasen. Jag kommer inte att gå in på detaljerna för dess inställningar, det finns ett gäng separata material om detta. Jag ska bara gå igenom de svårigheter jag stött på.

1. Com-use objekt på ett 64-bitars serveroperativsystem. Ett omslag användes för att lösa problemet COM+-applikationer, som är konfigurerad i Komponenttjänster.

2. Fjärrsamtal Com från en annan server. Den anropade servern måste ha rollen applikationsserver, och den bör konfigureras COM+ nätverksåtkomst. Dessutom servern Apache måste ha lämpliga rättigheter (dvs. köras som en tjänst på uppdrag av en auktoriserad användare)

Efter att ha lidit av Com-anslutningar bestämde vi oss för att överföra arbetsbasen till webbservice.

Det har också skrivits mycket om att publicera webbtjänster, men det skrivs om hur det fungerar. Hur det INTE fungerar ska jag dela med mig av nedan.

Arbetsbasen distribueras på 8.2-plattformen, respektive mobilapplikationen, den 8.3.

Vid publicering av första ansökan 8.3 och sedan 8.2. med jämna mellanrum ryckte ut "Stream format error"-felet i 8.3-webbklienten, eller felmeddelandet "klient- och serverplattformsversioner skiljer sig." Att skriva om hjälper inte, och det gör inte att starta om heller. Apache. Men att inaktivera publikationen och återansluta den hjälper.

Vidare fick jag ett roligt fel när jag auktoriserade en användare (när jag skapade ws definitioner). När du testar på en dator är auktorisering med ett långt fullständigt namn enkelt. När du försöker auktorisera samma användare från en surfplatta som körs android, auktoriseringen upphörde innan den började. Experimentellt gick det att beräkna att längden på inloggningen på kyrilliska är begränsad till 22 tecken. Samtidigt gjorde kombinationen av kyrilliska tecken och siffror det möjligt att logga in med en inloggning på 27 tecken. Det finns en misstanke om att detta beror på omvandlingen av kyrilliska karaktärer. Så till exempel i webbläsaren Firefox Wikipedia rad "ivo" konverteras till "».

Tekniskt sett har den mobila plattformen 8.3.3 för närvarande ett antal begränsningar. Den mest förväntade, enligt min mening, innovation är stöd för förfrågningar. Men eftersom den mobila plattformen ännu inte stöder godtyckliga förfrågningar i dynamiska listor, var jag tvungen att "gå åt andra hållet".

Följande tillvägagångssätt användes för att lösa problemet med att visa en artikeluppslagsbok med priser och saldon:

1. Två tabeller har skapats i form av en artikeluppslagsbok. Den första är en dynamisk lista, själva katalogen. Filtrera dynamisk lista konfigurerad för att endast visa grupper. Den andra tabellen är faktiska saldon och priser. När en dynamisk listrad är aktiverad fylls värdetabellen på servern, som sedan visas i den andra tabellen. Vid inhämtning av priser och saldon användes en objektmodell. Alla dessa danser med en tamburin utfördes bara för att det inte finns någon metod för "när man matar ut en sträng" eller "när man tar emot data" som är bekant för en tjock klient, och det är omöjligt att dynamiskt rita siffror i en kolumn.

Ett liknande tillvägagångssätt användes i form av urval

2. Den formaterade strängen var perfekt för att visa en sträng med aktuella priser.

Nedan finns ett kodexempel.

&AtServerWithoutContext Function ResidualsWhen RowsAtServer(number)RecordSet är aktiverad =RegistersInformation.ProductPrices.CreateRecordSet(); RecordSet.Selection.Product.Value = nom; Recordset.Selection.Item.Use = sant; RecordSet.Read(); ArrayFormattedStrings = New Array; För varje uppsättning rad från RecordSet Loop ArrayFormattedStrings.Add(New FormattedString(SetRow.PriceType.Description,WebColors.Blue)); ArrayFormattedStrings.Add(New FormattedString(" " + String(SetString.Price) + " ")); EndCycle; Returnera New FormattedString(ArrayFormattedStrings); // Infoga innehållet i hanteraren. EndFunctions

3. För att ladda kataloger, saldon och priser i mobilapplikationen användes en webbtjänst, som får en parameterstruktur vid ingången, och returnerar ett värdelager vid utgången. En annan obehaglig upptäckt var börsens krasch på grund av för lång bearbetning på serversidan. Jag fick intrycket att det finns någon form av timeout efter vilken applikationen "tror" att anslutningen är avbruten (även om data faktiskt fortfarande bearbetas i arbetsdatabasen via ws-anslutningen), och stoppar utbytet med ett fel.

För att undvika detta beslutades det att dela upp hela utbytet i delar med återgång av fokus till mobilapplikationen. De där. synkronisera först posten, sedan motparterna, sedan saldon osv.

4. För att ta emot rapporter lämnas samma tillvägagångssätt som i konfigurationen 1C: Order. Webbtjänsten anropas med parametrar, på serversidan bildas arbetsbasen kalkylarksdokument, och sedan returneras det färdiga kalkylarksdokumentet till mobilapplikationen.

God eftermiddag, kära läsare, vi uppmärksammar en kort artikel om att skapa en enkel mobilapplikation baserad på 1C: Enterprise mobilplattform för Android utan att kompilera till en apk-fil.

Till att börja med, låt oss kortfattat definiera de grundläggande koncept och programvara som vi behöver för utveckling.

1.Grundbegrepp

Mobil plattform- ett verktyg som låter dig implementera applikationer som fungerar på Mobil enheter operativsystem iOS, Android, Windows Phone.

Mobil app -är slutresultat utveckling . Den är installerad på en mobil enhet och har möjlighet att utbyta information med huvudapplikationen i offlineläge. Följande informationsöverföringskanaler är tillgängliga för utbyte: Filutbyte, e-post, webbtjänster, etc.

Konfiguratorn fungerar som en utvecklingsmiljö, det enda att ta hänsyn till är att inte alla konfigurationsobjekt och systemmekanismer stöds av mobilapplikationen.

2. Inställning av programvara

2.1 Installationwebb servrar

Låt oss först installera webbservern. Arbete är möjligt med Internet information tjänster från Microsoft och Apache. I vårt exempel kommer vi att överväga Apache eftersom det är lättare att sätta upp och stabilt i drift.

Med nyckeln" Nästa » gå till nästa fönster:

In på fälten Nätverksdomän och Server namn skriv " lokal värd" (eller 127.0.0.1). Detta innebär att servern kommer att köras på den lokala datorn.

I fält « Administratörs E-post adress» ange postadress, kommer den att ta emot serversvar.

Standard Apache fungerar med port 80. Många populära program fungerar till exempel med samma port som standard teamviewer, Skypee, som i framtiden inte låter dig springa Apache. Det finns 2 lösningar på detta problem, inaktivera användningen denna hamn i dessa program, eller byt port på Apache.

För att ta reda på vilka program som upptar port 80 måste du köra cmd.exe (klicka på Start - skriv cmd i sökningen - klicka Högerklicka"Kör som administratör") i fönstret som visas anger du kommandot netstat-ab.

På skärmdumpen ser vi att port 80 är upptagen av Skype.

Lämna standardport 80. Klicka på " Nästa » välj en typisk installation. Tryck " Nästa » , ändra installationskatalogen om det behövs, i nästa fönster klickar du på " Installera, sedan startar installationsprocessen.

När installationen är klar visas en ikon i systemfältet, om vi dubbelklickar på den öppnas följande fönster:

Om du fortfarande har problem med standardporten kan du alltid ändra den manuellt, för detta måste du gå till mappen där den är installerad Apache, välj mappen " konf", öppna filen i den " httpd.conf". Hitta parametern i den "Lyssna" och ändra dess värden till den port du behöver, till exempel 8080.

När du har ändrat portnumret, spara filen och starta om Apache. För att göra detta, klicka på ikonen i facket

vänsterklicka på menyn som visas, välj " Omstart».

Låt oss se till att webbservern fungerar, gå till webbläsaren och skriv in http://localhost:8080/ i adressfältet (där 8080 är porten som vi ställer in), följande sida bör visas på skärmen:

2.2 Plattformsinställning

För framgångsrik drift måste följande komponenter installeras:

2.3 Installation av mobil plattform

Ladda ner den mobila plattformen från 1C-webbplatsen https://users.v8.1c.ru/. I vårt exempel används version 8.3.8.70.

Den nedladdade plattformen är ett arkiv som består av följande mappar:

  1. Android- innehåller filer för montering under Android;
  2. iOS- innehåller filer för montering under iPhone;
  3. Windows- innehåller filer för montering under Windows Phone;
  4. Mobile AppMaker- innehåller "Application Builder" konfigurationsfiler.

Eftersom vi kommer att utveckla applikationen för en enhet som kör Android OS är vi intresserade av den första katalogen.

Låt oss se innehållet:

  • 1cem-arm.apk är den mest använda mobila utvecklingsplattformen för ARM-arkitektur;
  • 1cem-x86.apk - mobil utvecklingsplattform för x86-arkitektur, används för processorer från Intel;
  • prjandroid-arm.zip - mobil plattform för att bygga mobila applikationer (för ARM-arkitektur);
  • prjandroid-x86.zip är en mobil plattform för att bygga mobila applikationer (för x86-arkitektur).

Installera den mobila plattformen på enheten, för att göra detta, kopiera filen "1cem-arm.apk" till telefonens minne, eller om din enhet använder Intel-processor, "1cem-x86.apk".

Låt oss gå till filhanteraren på den mobila enheten, hitta vår fil och köra den

Under installationen kan du få ett meddelande om att blockera appar som inte tagits emot från Play Butik.

I det här fallet måste du klicka på " inställningar" och i fönstret som visas, markera rutan " okända källor»

och upprepa installationen.

2.4 Konfigurationsinställningar

Efter allt programvara konfigurerat, låt oss börja utveckla vår mobilapplikation. Låt oss skapa en ny infobas och gå in i den i konfigurationsläge.
Vi går till menyn Service -> Alternativ och markera rutorna som visas på skärmdumpen:

Har du en fråga, behöver du hjälp av en konsult?

Därefter anropar vi egenskaperna för konfigurationsrotnoden och ställer in parametern "Destination of use" som "Mobil enhet", flaggan " Personlig dator" ta bort. Därefter kommer objekten i mobilapplikationen att bli tillgängliga. Vissa konfigurationsobjekt blir otillgängliga.

2.5 Publicera applikationskonfigurationen

Nästa steg är att överföra konfigurationen till telefonen. För att göra detta kommer vi först och främst att skapa en katalog, sökvägen till denna katalog måste vara kort, innehålla inga mellanslag och endast bestå av latinska tecken, till exempel C:\MobileApp. Ytterligare gå till Konfiguration -> Mobilapplikation -> Publicera . Fyll i parametrarna i fönstret som visas:

  • Namn - Namnet på mobilapplikationen. Namnet får inte vara detsamma som baspubliceringsnamnet för den tunna klienten.
  • Uppdatera mobilapp - om given parameterär installerat, kommer konfigurationen på enheten att uppdateras automatiskt varje gång du uppdaterar konfigurationen
  • Katalog - sökvägen till mappen där mobilapplikationsfilerna kommer att lagras.

För att se till att allt fungerar, gå till http://localhost:8080/Mobapp/ i en webbläsare, vi bör se följande xml-fil:

I adressfältet anger du IP-adressen för den dator där konfigurationen publiceras och namnet på själva publikationen, åtskilda av ett snedstreck. I vårt exempel används en icke-standardport, så adressen kommer att se ut så här:

Klicka på nedladdningsknappen, efter nedladdning bör följande inställningsfönster visas:

Ställ in parametrar:

  • « Starta om från konfiguratorn» - Applikationen kommer att uppdateras automatiskt när XML-konfigurationsfilen som finns på webbservern uppdateras.
  • « Felsökning tillåten» - steg-för-steg-felsökning av applikationen på en mobil enhet är möjlig från konfiguratorn på utvecklarens dator. Tryck på knappen " OK».

Om efter att ha tryckt på knappen Ladda ner' du kommer att få ett felmeddelande som detta:

Nu har vår bas lagts till på den mobila enheten, och vi kan starta den genom att klicka på den i basvallistan. Fönstret som visas är tomt eftersom vi inte har lagt till några metadataobjekt ännu. Låt oss börja utvecklas.

  1. Ställa in utbytet mellan centralbanken och mobilapplikationen

Låt oss anta att vi har en viss källbas som bara innehåller en uppslagsbok: "Nomenklatur". Och den bör dela information med vår mobilapp.

Låt oss gå till mobilapplikationskonfiguratorn, skapa en hierarkisk referens som heter "Nomenklatur". Låt oss lägga till ett listformulär.

Låt oss gå till arbetsplatsen startsida och lägg till listformen för referensboken "Nomenklatur" där, ställ in parametern "Initial sidmall" som "En kolumn".

Tryck på knappen " Uppdatera”, bör appen på din telefon uppdateras automatiskt. Om inte, visa knappen på panelen och tryck på den. Följande fönster bör visas på skärmen:

Nästa steg är att skapa en ny IB. Vi kommer att lägga till katalogen "Nomenclature" till den, vars struktur kommer att helt upprepa katalogen "Nomenclature" i mobilapplikationen. Denna bas kommer att fungera som källa.

Låt oss skapa en ny webbtjänst, låt oss kalla den "MobileExchange". I egenskaperna ställer du in URI för namnområdet "MobileExchange". I denna webbtjänst kommer vi att lägga till en ny operation och kalla den "LoadProducts"

Låt oss nu skriva en kod som returnerar en lista över produkter från källdatabasen i formuläret xml-fil. Låt oss gå till egenskaperna för operationen "LoadProducts" och skapa ny funktion från fältet" Metodnamn". Låt oss skriva följande kod i funktionen:

Låt oss publicera en webbtjänst, för detta går vi Administration -> Publicera till webb -Server . I fönstret som visas anger du namnet på webbtjänsten "MobileExchange" och avmarkerar "Publicera tunn klient och webbklient". Efter det, tryck på knappen " Publicera».

Efter att ha publicerat webbtjänsten, låt oss gå till konfigurationen av den mobila plattformen, öppna kataloglistan "Nomenklatur" och lägg till nytt lag"Uppdatera nomenklatur" i formulärets kommandopanel. Innan du gör detta rekommenderar vi att du avmarkerar " Autoslutförande» för denna panel.

Skapa en ny åtgärd för kommandot Update Item och skriv följande kod:

Vi uppdaterar konfigurationen.

Detta fullbordar utvecklingen. Vi byter till källans användarkonfigurationsläge och fyller i nomenklaturens referensbok på ett godtyckligt sätt

Vi går till den mobila enheten, startar applikationen och klickar på knappen "Uppdatera nomenklatur". Om allt är gjort korrekt bör följande data visas på skärmen:

Slutsats

Låt oss sammanfatta vårt arbete - vi lyckades sätta upp och utveckla en mobilapplikation från grunden och sätta upp dess utbyte med en annan databas. Det är värt att notera att 1C Mobile Platform låter dig göra detta snabbt och bekvämt.

Så vi kom till 1C: Enterprise i form av en mobilapplikation -en liten översikt över mobilapplikationen från insidan.

Mobilapplikationen är en självförsörjande applikation med egen databas för att arbeta med användarinformation. Just nu, mobilapplikationer från 1C kan köras på de tre mest populära plattformarna - Android, Apple iOS, och Windows.


Mobilapplikationen installeras från "marknaderna" på dessa plattformar. Om applikationen inte publiceras kan du installera den genom att överföra distributionsfilen till din mobila enhet.

Du kan konfigurera och programmera själva mobilapplikationen endast i konfiguratorns fullständiga läge och sedan bygga den med den speciella konfigurationen av Mobile Application Builder.
Detta är ett stort plus, eftersom utvecklingen av en mobilapplikation kan utföras av en 1C-konfigurationsutvecklare som följer med ditt 1C: Enterprise-program.
Självklart har den mobila applikationen färre funktioner än den stationära plattformen: till exempel finns det inga sådana objekt som rapporter, redovisningsregister, affärsprocesser.




En annan nackdel är du kommer inte att kunna ansluta till en 1C-databas som körs på en stationär plattform i en fil- eller serverversion.


Men det finns funktionalitet för att använda mobila fördelar: när du utvecklar en mobilapplikation kan du använda kontaktboken, ringa ett samtal från applikationen via undersystemet " T telefoni", få platsdata genom Geolocation.

Du frågar: " Hur arbetar man med en vanlig bas på 1C? Varför behövs en sådan ansökan överhuvudtaget?

För att kommunicera med "omvärlden" finns det fleramekanismer, såsom utbytesplaner. De låter dig ansluta en fullfjädrad 1C-bas och en mobil applikationsbas - ungefär som de fungerar fördelade baser data.

En mobilapplikation måste utföra funktionen av en mobilapplikation och motsvarande funktionalitet, därför är all data från en databas till en annan inte helt synkroniserad, och de kunde inte synkroniseras på grund av objektbegränsningen som beskrivs ovan.
En sådan implementering av utbytet finns till exempel i en bunt program 1C: Enterprise 8 Trade Management rev.11 ochmobilapplikation "1C: Orders" . Databaserna utbyter information om motparter, kundorder, sortiment och priser. Samtidigt kan mobilapplikationen fungera offline, och när internet är tillgängligt utbyta data.
Mobilapplikationen ser anständig ut, det finns en visuellt igenkännbar stil jämfört med skrivbordsversionen av 1C, såväl som en uppsättning standardoperationer som utförs med objekt, som: "Svep", "Markera för radering" och liknande. Därför kommer användare av mobilapplikationen att vara bekanta med arbetssammanhanget.

Så här ser applikationsgränssnittet ut i de senaste versionerna:


Det andra populära sättet att kommunicera mellan mobilapplikationen och redovisningssystemet
1C:Enterprise 8 är arbete genom webbtjänster

Det allmänna organisationsschemat är som följer: i applikationslösningen 1C: Enterprise 8, eller, enklare, i konfigurationen, beskrivs en webbtjänst som utför alla funktioner på den sida där tjänsten publiceras och kan överföra data.

På ett enkelt sätt: från en mobilapplikation online kan du komma åt redovisningssystemet 1C: Enterprise 8, utföra vilken funktion som helst som beskrivs i tjänsten - till exempel få data på en rapport eller få en ny motpart

Mer:

Tjänsten kan överföra data i det format som beskrivs i XDTO paketet, och utvecklaren själv beskriver denna datamodell. Du kan skicka primitiva typer: siffror, strängar, datum. Du kan skicka sammansatta typer, du kan skicka binära data - till exempel bilder eller PDF-dokument, XLS. Vi kommer att visa ett enkelt exempel där ett paket med uppgifter beskrivs - uppgiftens nummer och titel. Ett exempel på hur paketet ser ut:

I sin tur imobilapplikation skapar ett objekt av typen WS-Reference. Den anger webbtjänstens adress, varefter datatyperna och metoderna som tjänsten arbetar på läses automatiskt in:

Allt är klart! I mobilapplikationen kan du nu anropa funktionen för tjänsten 1C: Enterprise 8 eller ta emot nödvändig data.

Och hur är det med licenser för mobilapplikationer från 1C?

I ett informationsbrev från 1C avslöjas denna fråga. Ett utdrag ges nedan.

Våra rekommendationer:
Mobilapplikationer från 1C är en ganska ny produkt, men i den vanliga "wrapperen" - kan utveckling utföras av en heltidsanställd 1C-specialist. De öppnar nya horisonter för att utöka interaktionen med redovisningssystemet och konsolidera data för förvaltningsredovisning. Vi rekommenderar att du använder det här alternativet när den stationära versionen av att arbeta med 1C inte är lämplig och mobil funktionalitet kommer att räcka, till exempel tillgång till endast en del av datan eller en del av en process.

Och enligt tradition är fallet:

En uppgift:

Kunden har centralkontor och flera butiker i dess handelsnätverk. Vid varje punkt finns flera försäljningschefer och en arbetsplats försäljning av varor med ett bokföringsprogram.

Vart i , centralkontoret ger order till säljare- till exempel att hämta en beställning för ytterligare en poäng från deras saldon eller ta isär den angivna produkten.

För att sätta upp mål använde Kunden först e-post och telefonsamtal, men -det fanns bara en automatiserad arbetsplats och arbetare kunde inte snabbt ta emot uppgifter och svara på dem. Centralkontoret hade svårt att kontrollera sådana uppgifter, eftersom uppgiften inte registrerades någonstans när den ställdes per telefon och det var svårt att granska post för utestående uppgifter.

Lösning:

Vi har föreslagit följande lösning. Utveckla nödvändig funktionalitet för att ställa in uppgifter för anställda baserat på mobilapplikationen 1C: Orders och integrera den med det centrala redovisningssystemet.

Som en plattform för att lansera och arbeta med en mobilapplikation kan en anställd på en återförsäljare använda sin egen mobiltelefon, och för dem som inte hade dem köpte centralkontoret billiga smartphones till dem.

På grund av att mobilapplikationen och det centrala redovisningssystemet fungerar i ett informationsutrymme- Effektiviteten i att sätta uppgifter och adressera exakt till den anställde som det var avsett för uppnåddes.

Noggrannheten i informationsöverföringen har ökat - om tidigare med e-post chefen på kontoret skrev - "förbered varorna enligt beställningsnummer ___", nu i uppgiften angav han helt enkelt länken till den nödvändiga beställningen, som anställd på uttaget kunde öppna på telefonen.

Kontrollnivån över arbetsuppgifterna har ökat – de försvann inte någonstans och hade den status som medarbetaren satte för dem i processen att slutföra uppgiften. Och centralkontoret kunde alltid kontrollera uppgiften.

Anatoly Nikulin

Den mobila plattformen 1C:Enterprise 8 är namnet på tekniken som låter dig utveckla lösningar som fungerar på smartphones och surfplattor Google Android eller Apple iOS. En viktig fördel med 1C-plattformen är att lösningar utvecklas i en version för båda mobila operativsystem och sedan enkelt exporteras för Android och för iOS utan någon ytterligare modifiering och att skriva plattformsspecifik kod.

Både 1C:Enterprise-plattformen och själva infobasen (konfiguration, i 1C-termer) installeras omedelbart på den mobila enheten. Informationsbas på enheten innehåller en version av fildatabasen (för lagring av olika data som användaren arbetar med eller kommer att arbeta med) och själva applikationen (programvarubytekod som körs på en surfplatta eller smartphone).

Ett exempel på en mobil klient för EDMS "Corporate Document Management" skapad på den mobila plattformen "1C:Enterprise 8.3"

Plattformen stöder användare som laddar ner och distribuerar applikationer på sina enheter från butiker App Store eller Google Play. Distributionssatsen innehåller alla komponenter som behövs för att komma igång.

Olika lösningar kan skapas utifrån den mobila plattformen 1C, men huvudlösningarna är mobila off-line klienter för redovisningssystem. Sådana lösningar är utformade för att stödja mobila användare på avlägsna arbetsplatser. Datautbyte sker genom regelbunden synkronisering med den centrala databasen. Datautbyte är möjligt genom följande mekanismer:

  • webbservice
  • Fildelning
  • E-post
  • och andra mekanismer
    Ett alternativ kan vara att arbeta online i webbklientläget.

Den utvecklade mobilapplikationen är en separat, komplett mjukvaruprodukt och kan utbyta data med flera centrala databaser samtidigt. I en mobilapplikation kan du till exempel implementera åtkomst och arbeta med dokument från bokföringsdatabasen och uppgifter från företagets dokumenthanteringssystem.


Den 28 september i år släppte 1C en testversion av plattformen 8.3.2.163, som var avsedd för testning, utan mycket brus och patos. Full lista För ändringar och förbättringar kan den som önskar läsa eller, om de har ett abonnemang, .
Av de listade förbättringarna verkar det för mig att "Mobilplattform 1C: Enterprise 8" är ganska "läcker", vilket låter dig skapa en applikation för Android eller iOS mobiloperativsystem med de vanliga 1C-verktygen.

Mobilplattform, som utvecklarna själva skriver, "Detta är det allmänna namnet för en teknik som låter dig skapa applikationer som körs på mobila enheter som körs Android-system eller iOS.
"En mobilapplikation installerad på en enhet är en kombination av en mobil plattform och en informationsbas."

Det vill säga, för att uttrycka det enkelt, du kan kompilera din skriftliga konfiguration till en applikation för Android (.apk) eller iOS (.zip). Då kan allt detta goda läggas upp på Google Play eller AppStore. Det är sant, om ett program för Android kan signeras med en nyckel skapad där omedelbart i 1C, och det kommer att vara klart för publicering omedelbart, måste det först sättas ihop med Xcode-programmet för att publicera en applikation i AppStore på en dator med ett operativsystem. Mac-system OS X. Och, naturligtvis, publicering till någon av dessa butiker kräver en utvecklarlicens.
Allt låter bra, och jag ville naturligtvis testa nya funktioner i aktion.

Skapande av en mobilapplikation på 1C

För detta behöver vi en ny version platform(), filen som tas, android SDK och JDK.
Jag varnar dig genast: nu ger jag mig inte i uppgift att visa processen att utveckla något specifikt på 1C, utan jag vill bara kolla och visa dig att - ja, världen har blivit galen och du kan verkligen skriva ett program för Android på 1C.
Nåväl, låt oss försöka skriva ett slags "helloWorld" för Googlephone. Låt oss göra ett program för teständamål - en konfiguration med en vanlig form, som vi kommer att lägga på "skrivbordet".
Så vi skapar en ny konfiguration i ett hanterat läge, och det första vi behöver göra om vi skriver för en mobil plattform är att specificera "Syftet med användning" i egenskaperna för själva konfigurationen.

Och här märker vi omedelbart att många konfigurationsobjekt har blivit otillgängliga för användning. Vi kommer inte längre att kunna använda delsystem, rutinuppgifter, XDTO-paket, webbservice, rapporter, affärsprocesser och mer. Dessutom är många procedurer och metoder inte tillgängliga för vissa objekt. Detta bör beaktas under utvecklingen.
Vi gör en "form", skapar en strängrekvisita med titeln: "Hej, Habr!" - och släng den på formuläret. Vi kommer också att skapa en knapp. I hanteringen av pressning kommer vi att skriva utdata från till exempel ett meddelande.

&AtClient Procedur Kommando1(Kommando) Varning("Det fungerar!"); Slutprocedur

För att kontrollera prestandan räcker detta för oss, så vi fortsätter till det mest intressanta. Vi sparar konfigurationen till en fil för mobilapplikationen (Konfiguration->Mobilapplikation->Skriv till fil), kör i hanterat läge och börjar bearbeta MobileAppWizard.epf. Den här filen finns i mobile.zip-arkivet, som vi laddade ner i början.
Och nu erbjuds vi att fylla i de primära inställningarna, där alla obligatoriska fält är understrukna med rött.

Mobilplattformsplats - katalogen där android.zip- och ios.zip-filerna finns, vilka är nödvändiga för att generera mobilapplikationsleveransen. De finns alla i samma mobile.zip-arkiv.
Ange mappen där vi installerade Android SDK(du kan ladda ner). 1C ställer följande krav:
Android SDK Tools version - minst 20.0.3;
Android SDK Platform-tools version - minst 14;
SDK Platform version - API 8 (inte lägre än version 8.3).
Och vi behöver också en Java SDK (kan erhållas på denna adress) Dessutom varnar 1C oss för att JDK7 inte fungerar med Android SDK.
Vi anger de mappar där vår .apk-fil ska placeras, platsen för nyckeln för signaturen och aliaset med lösenordet. Om du gör detta för första gången och du inte har en nyckel, kan du fylla i "nyckelparametrar" och skapa en nyckel för dig själv (i det här fallet, i fältet "nyckelfil", måste du ange mapp där denna nyckel kommer att skapas).
Klicka på "OK" och gå till det andra fönstret.

I den anger vi först och främst "Konfiguration av mobilapplikationen" - samma fil som vi sparade. Sedan språket, och först då klickar vi på knappen med "förstoringsglaset" och anger representationen där. Ange "Application ID" - det unika namnet på Java-klassen, som kommer att användas senare för att utföra uppdateringen. Identifieraren måste skrivas på latin, och 1C rekommenderar att man börjar sitt namn med "com.e1c." Fyll i version och byggnummer och klicka på knappen "Skapa". Om allt går bra kommer systemet att meddela dig om det framgångsrika skapandet av .apk-filen.
Vi laddar upp den resulterande filen till telefonen och installerar den med vår favorithanterare, efter att tidigare ha tillåtit installationen i systeminställningarna tredje parts applikationer. Eller installera programmet på emulatorn via adb. Jag kommer att säga genast: allt är fruktansvärt långsamt på emulatorn, men på telefonen (jag kollade bara på det HTC Wildfire S) saker är mycket bättre, men det finns fortfarande problem. Min fil visade sig till exempel väga så mycket som 34 Mb, så installationen tog lång tid. Efter lanseringen möts vi av en startskärm och efter ett tag startar själva konfigurationen. (ursäkta bilden: jag tog den med en miniräknare)

Hittills ser de nya funktionerna väldigt "råa" ut: begränsad funktionalitet hos 1C, oförmågan att använda SDK direkt, plus stor storlek och några "bromsar" ... Men själva möjligheten att skriva ett program för en mobil plattform på 1C är lite överraskande! Personligen har jag två åsikter om detta. Å ena sidan är denna "funktion" fortfarande mer som en leksak, eftersom det inte finns någon möjlighet att göra något som verkligen är värt besväret. Men å andra sidan är detta helt klart ett stort steg för 1C mot mobilitet, och om denna riktning aktivt utvecklas kan detta ge många fördelar. Som ett exempel kan du utrusta butiksinnehavare med surfplattor. Om det är möjligt att använda kameror "ombord" kan du bli av med läsarenheterna och skanna koder direkt från surfplattan, du kan förse bilförare med dem och skicka uppgifter för transport eller spåra rutten för bil och tiden i rörelse. I allmänhet finns det många alternativ, och det faktum att det hela kommer att vara i en singel informationssystem, kommer att glädja kunder / chefer mycket, eftersom de av någon anledning alltid har en panikrädsla för att använda ett stort antal olika system, de vill använda all funktionalitet på en enda plattform.