Příběh jedné aplikace: mobilní „1C: Vedení naší společnosti. Počáteční nastavení mobilní aplikace 1C-Rating: Mobilní číšník Práce s rolemi v mobilní aplikaci 1C

Tento prototyp byl vytvořen pomocí Moqups, jednoduchého a pohodlná služba vytváření rozvržení a konceptů. Ideální pro rychlé prototypování malých aplikací pro Android. Pro prototypování větších projektů je nejlepší použít Photoshop a Android UI Design Kit! ...

Popis aplikace

Aplikace se skládá ze 3 obrazovek:

    „Hlavní obrazovka aplikace“ - při spuštění se zobrazí seznam úkolů (datum splatnosti, název úkolu a znak jeho dokončení). Po dokončení úkolu je v seznamu označen jako splněný.

Kliknutím na tlačítko „Výměna dat“ může zaměstnanec okamžitě zahájit postup pro přijímání nových úkolů ze serveru. Výměna dat se serverem se také provádí automaticky jednou denně, podle plánu uvedeného v nastavení.

    „Nastavení programu“ - zde nastavíte autorizační parametry a adresu serveru 1C a také zobrazíte jedinečné identifikační číslo tohoto zařízení. Zde lze také nastavit rozvrh automatické výměny.

Struktura dat vyměňovaných mezi mobilním klientem a serverem 1C

Cesta bude tabulka hodnot (ve smyslu 1C), která obsahuje 3 sloupce:

Vytvoření šablony pro mobilní aplikaci v 1C

Spusťte 1C a vyberte adresář „Mobilní aplikace“, přidejte nový prvek, kde:

    Do pole „Identifikátor“ zadejte SAMPLE_APP_TASKS(nebo cokoli jiného), toto je jedinečný identifikátor aplikace v rámci vaší konfigurace. Je to nutné pro jednoznačnou identifikaci aplikace v procesu výměny, protože jeden a tentýž zaměstnanec může používat několik aplikací na jednom mobilním zařízení.

    Do pole „Název“ zadejte například název své mobilní aplikace Úkoly.

Referenční položku si zapište tlačítkem Zapsat, pak vytvořte novou verzi a nastavte ji jako pracovní verzi pro vaši aplikaci.

Vyberte skupinu v seznamu „Metadata“ "Externí data" a klikněte na „ Přidat"Na panelu nástrojů." Vyplňte parametry nové tabulky podle obrázku:

Názvy sloupců a samotné tabulky jsou zde zpravidla nastaveny v ruštině; budou použity k naplnění tabulky údaji pomocí vestavěného jazyka 1C.

Každá datová tabulka v mobilní aplikaci musí mít PRIMARY KEY (pokud jde o relační databáze) řetězcového typu. U všech tabulek objektů (příručky a dokumenty) je klíčem textová reprezentace odkazu (jedinečný identifikátor) a je vyplněna automaticky.

U neobjektových tabulek, jako je „hlavní kniha informací“ nebo „externí tabulka“, musí program určit, jak ji naplnit. Jednou z možností je nastavit příznak "Index" pro jeden nebo více sloupců tabulky, což bylo provedeno v našem příkladu pro sloupce "Datum splatnosti" a "Úkol". To znamená, že v jeden den nemohou být v tabulce dva stejné úkoly.

Klikněte na OK, tabulka bude přidána do stromu metadat; u mobilní aplikace jsou názvy automaticky přeloženy do latinské abecedy.

[Jedno z pravidel FBA: v 1C píšeme zdrojový kód v ruštině, v Javě v latině. Absence ruských písmen v identifikátorech, názvech proměnných a třídách zabrání mnoha problémům při navrhování mobilního klienta]

Přejmenujte názvy z latiny na angličtinu. V zásadě bylo možné opustit latinskou abecedu, ale o jménech jsme již rozhodli (výše v tabulce).

Uložte změny a klikněte na tlačítko „ Šablona mobilní aplikace"Na panelu nástrojů."

„Adresář šablon“ - zadejte cestu k adresáři, kam budou generované soubory šablon mobilní aplikace uloženy.

Na kartě „Obecné“ zadejte název balíčku, musí to být jedinečný identifikátor. Pokud máte webové stránky, použijte je ke generování předpony. V našem příkladu to je ru.profi1c.samples.tasks

Na kartě „Webová služba“ je adresa serveru 10.0.2.2, ve výchozím nastavení je to adresa vašeho počítače při přístupu z emulátoru Android.

Do polí „Název webové služby“ a „Podadresář aplikace“ zadejte data, která byla zadána při publikování webové služby.

Na kartě „O programu“ vyplňte kontaktní údaje a Dodatečné informace o vaší aplikaci ponecháme nastavení na kartě „Generátor tabulek“ beze změny.

Klikněte na Vytvořit, bude vygenerována šablona projektu Android. Zavřete okno průvodce generováním šablony, uložte změny a zavřete referenční položku „Mobilní aplikace“

V rámci tohoto článku zvážíme počáteční nastavení, která je třeba provést před zahájením práce s mobilní aplikací.
Mobilní aplikace 1C-Rating: Mobile Waiter se používá ve spojení s konfigurací 1C-Rating: Restaurant, se kterou je spojena prostřednictvím pravidelné výměny dat. Proto před instalací konfigurace „1C-Hodnocení: Mobilní číšník“ musíte provést příslušná nastavení v programu „1C-Hodnocení: Restaurace“.

Nastavení informační základny „1C-Rating: Restaurant“

Všechny regulační a referenční informace použité při práci s mobilní aplikací jsou vyplněny v informační základně 1C-Rating: Konfigurace restaurace. Před aktivací a provedením výměny mezi mobilní aplikací a 1C-Rating: Konfigurace restaurace je nutné v hodnocení 1C vyplnit následující údaje: Konfigurace restaurace:
  • Adresář Organizace;
  • Adresář Sklad;
  • Adresář Kasa;
  • Adresář sál;
  • Adresář Modifikátory;
  • Informační registry Modifikátory nádobí;
  • Informační registry Předdefinované položky objednávky;
  • Informační registry Směrování tisku razítka;
  • Adresář Typy menu;
  • Adresář Nastavení RMK;
  • Adresář Uživatelé.

Konfigurace uživatelů

Uživatelé, kteří budou pracovat s mobilní aplikací, musí být předem vytvořeni v informační základně 1C-Rating: Restaurant. Uživatel mobilní aplikace, kromě základního nastavení a rolí souvisejících s 1C-Rating: Konfigurace restaurace, musí mít roli, která uživateli umožňuje pracovat s mobilní aplikací.

Automatický tisk razítka

Po zadání objednávky v mobilním zařízení je možné v místě přípravy (kuchyň, bar) vytisknout razítka. Známky se tisknou podle následujícího algoritmu: v mobilní aplikaci uživatel vytváří nebo mění objednávky, které jsou přenášeny do centrální informační základny 1C-Rating: Konfigurace restaurace. V centrální databázi jsou akumulovány v informačním registru Fronta tisku razítka... S frekvencí uvedenou v nastavení účetních parametrů je spuštěn postup, který tiskne razítka z tohoto registru informací na místa přípravy.
K povolení této funkce je nutné v konfiguraci „1C-Hodnocení: Restaurace“ v nastavení účetních parametrů ve skupině Mobilní číšník proveďte následující nastavení:
  • Vytiskněte razítka mobilního číšníka- povolení této možnosti vám umožní zaslat razítko s informacemi o přípravě k tisku.
  • Uživatel k tisku razítek mobilního číšníka- je nutné vybrat uživatele z adresáře Uživatelé, jejímž jménem budou provedeny tiskové postupy. Chcete -li tisknout razítka, musíte zahájit relaci jménem zadaného uživatele. Aby se zajistilo, že postupy tisku razítek nezpomalí práci uživatelů, doporučuje se vytvořit samostatného uživatele (například „Spustit RMK“ nebo „Tisknout razítka“) a zahájit samostatnou relaci 1C: Enterprise s touto uživatel provést tisk na pozadí.
  • Interval tisku razítka mobilního číšníka- toto nastavení určuje časový interval v sekundách pro tisk. Plnicí tento parametr, je povinné pro tisk razítek. Hodnota tohoto parametru je vybrána na základě požadavků konkrétní organizace, doporučená hodnota je 10 sekund.

Publikování na webový server

Pro pracovat spolu mobilní aplikace a stacionární informační základna „1C-Rating: Restaurant“, je nutné zorganizovat příslušnou infrastrukturu:
1. V pracovní oblasti číšníků musí být nakonfigurován bezdrátová síť Wi-Fi.
2. Na počítači, kde bude publikována 1C-Rating: Restaurant infobase, musí být nainstalován a nakonfigurován webový server (podporována je práce s webovým serverem Apache nebo IIS).
3. Moduly rozšíření 1C: Enterprise a webový server musí být nainstalovány na stejném počítači. Instalace modulů se provádí při instalaci platformy.


4. Měla by být zveřejněna informační základna „Hodnocení 1C: Restaurace“.
5. Počítač s publikovanou informační základnou a mobilní zařízení musí být ve stejné místní síti.
Chcete-li publikovat informační základnu „1C-Rating: Restaurant“, musíte spustit „1C: Enterprise“ v režimu Konfigurátor (nabídka Správa - Publikování na webový server). V okně, které se otevře, proveďte následující:
  • Do pole zadejte ručně název publikace název, zatímco může sestávat pouze ze symbolů latinské abecedy. Toto jméno bude zadáno později v nastavení mobilní aplikace.
  • V poli webový server zadejte typ webového serveru, pro který se publikace provádí.
  • V poli Katalog zadejte cestu k adresáři, kde budou umístěny soubory popisující virtuální adresář.
  • Přejít na záložku Služba HTTP NS a povolit nastavení Ve výchozím nastavení publikovat služby HTTP... V tabulkové části označte službu příznakem HTTP Data v seznamu dostupných služeb.
  • zmáčknout tlačítko Publikovat... Po publikování je třeba restartovat server.

Konfigurace „Hodnocení 1C: mobilní číšník“

Mobilní aplikace 1C-Rating: Mobile Waiter je k dispozici ke stažení zdarma na mobilních zařízeních z oficiálního online obchodu Google Play. Pro komerční použití aplikace si musíte zakoupit požadovaný počet licencí zařízení a aktivovat mobilní aplikaci na každém mobilním zařízení. Ke studiu funkčnosti mobilní aplikace je k dispozici demo režim provozu, který nevyžaduje zakoupení licence zařízení.
Instalace mobilní aplikace 1C-Rating: Mobile Waiter se provádí automaticky a neliší se od instalace jakékoli jiné mobilní aplikace. Aktualizace 1C-Rating: Aplikace Mobile Waiter je k dispozici v oficiálním internetovém obchodě Google Play bez jakýchkoli omezení a registrace s 1C-Rating.
Při prvním spuštění mobilní aplikace se zobrazí formulář pro výběr provozního režimu. Navrhuje se vybrat ze dvou možností akce: Demo režim a Aktivujte aplikaci.
Demo režim lze zapnout při prvním spuštění mobilní aplikace nebo později, po aktivaci, formou nastavení, pomocí stejnojmenného přepínače.
Když je tento režim povolen, databáze mobilní aplikace se automaticky naplní ukázkovými daty, což vám umožní lépe se seznámit s funkčnost produkt.

Aktivace aplikace

Chcete-li pracovat s mobilní aplikací a obousměrnou výměnou dat s konfigurační databází 1C-Rating: Restaurant, musíte aplikaci aktivovat.
Existují dvě možnosti aktivace mobilní aplikace:
  • Aktivace internetu.
  • Offline aktivace.

Aktivace internetu

Chcete -li provést internetovou aktivaci, musíte:
  1. Poskytněte mobilnímu zařízení přístup k internetu.
  2. Do okna zadejte registrační číslo Aktivace aplikace a stiskněte tlačítko aktivovat.

Offline aktivace

Aktivace offline se provádí, pokud není možné připojit mobilní zařízení k internetu.
Chcete -li provést offline aktivaci, musíte:
  1. Získejte registrační číslo mobilní aplikace. Chcete-li to provést, musíte kontaktovat partnery společnosti 1C-Rating ve vašem regionu nebo přímo společnost 1C-Rating.
  2. V okně Aktivace aplikace klikněte na odkaz Offline aktivace aplikace.
  3. V okně Offline aktivace aplikace zadejte registrační číslo mobilní aplikace.
  4. zmáčknout tlačítko Získejte kód aplikace... Otevře se okno obsahující kód aplikace. Tento kód musí být zaslán na 1C-Rating. V reakci na to obdržíte Aktivační kód.
  5. V okně je zadán aktivační kód Offline aktivace aplikace v příslušném poli. Stisknutím tlačítka aktivovat mobilní aplikace se aktivuje.
  6. Po úspěšné aktivaci je mobilní aplikace připravena k použití.

Důležité!

Po přeinstalování mobilní aplikace bude vyžadována opětovná aktivace.

Nastavení připojení k infobáze „1C-Rating: Restaurant“

Po aktivaci mobilní aplikace (pomocí kterékoli z výše uvedených metod) se automaticky otevře formulář pro autorizaci uživatele. Po počáteční autorizaci obsahuje formulář následující pole:
  • Uživatel- uživatel, pod kterým bude práce v „1C-Hodnocení: Mobilní číšník“ prováděna. Uživatelé mobilních zařízení musí být vytvořeni předem v infobáze 1C-Rating: Konfigurace restaurace.
  • Heslo- heslo pro autorizaci uživatele, specifikované v uživatelském nastavení, v hodnocení 1C: Konfigurace restaurace.
  • Adresa serveru- toto pole určuje IP adresu počítače, na kterém je webový server spuštěn.
  • Přístav- ve výchozím nastavení má hodnotu 80. Pokud byl webový server nakonfigurován pro jiný port, musíte zde zadat jeho číslo.
  • Název publikace- název zadaný při publikování služby HTTP v informační databázi 1C-Rating: Konfigurace restaurace.


Autorizace probíhá kliknutím na tlačítko Připojit. Pole adresy serveru a Název publikace obsahují technické údaje pro připojení a jsou vyplněny při prvním připojení. Při příštím spuštění budou tato pole skrytá a jsou k dispozici pouze ve formuláři nastavení.

Důležité!

Uživatelské jméno a název publikace musí rozlišovat malá a velká písmena. Pokud se registr neshoduje, bude autorizace zamítnuta.

Při opětovné autorizaci nebo změně uživatele stačí zadat uživatele, zadat heslo a stisknout tlačítko Připojit.


Po dokončení autorizace se otevře formulář seznamu objednávek - můžete začít pracovat. Chcete -li vytvořit objednávku, klikněte na tlačítko Nová objednávka.

Zprávy o připojení

Při připojování mobilní aplikace k hodnocení 1C: Konfigurace restaurace se mohou objevit následující zprávy:

1. „Došlo k chybě sítě“

Tato zpráva může nastat, pokud:

  • Ztráta signálu Wi-Fi.
  • Provoz webového serveru je nesprávně nakonfigurován.
  • Webový server přestal fungovat - musíte webový server restartovat.
  • Neplatná adresa nebo port webového serveru.
2. "Nedostatečná práva k použití zdroje s touto metodou HTTP"

Tato zpráva znamená, že uživatel nemá povolenou roli Přístup k zařízením mobilního číšníka.
3. „Požadovaná adresa URL / REST / hs / Data / Registrace nebyl nalezeno na tomto serveru. "
Autorizační zpráva se zobrazí, pokud:
Byl zadán neplatný název publikace.
Název publikace v mobilním číšníkovi se liší od názvu uvedeného v konfigurátoru restaurace při nastavování publikace (je nutné zkontrolovat, zda je název publikace stejný, důležitý je registr písmen).
4. „1C: Chyba aplikace Enterprise 8. HTTP: Nenalezeno»
K této zprávě dochází, pokud při konfiguraci publikace nebyla vybrána služba HTTP. V nastavení je nutné zkontrolovat přítomnost vlajek Publikovat služby HTTP standardně a v tabulkové části řádku Data.

  • (3475)
  • Tutorial

Ahoj zlato.

V tomto článku bych vás chtěl seznámit s novým produktem „FBA Toolkit“, který výrazně usnadňuje proces vývoje firemní mobilní aplikace na 1C + Android.
„Sada nástrojů FBA“ je:
- vývoj "nativního" Aplikace pro Android v nativním prostředí Java IDE;
- 1C: Enterprise 8.1 (8.2) jako zdroj dat, podnikový informační systém.

Rámec bude především užitečný pro programátory 1C, kteří by chtěli vyvíjet obchodní aplikace pro Android, ale mají potíže se zvládnutím nové platformy pro ně. K zahájení vývoje budou stačit základní znalosti Javy. Dále vám ukážu, jak vytvořit funkční prototyp aplikace klient / server během několika hodin.

Příprava pracoviště

Před přímým zahájením procesu vývoje se musíte připravit pracoviště vývojář. Požadované:

1. Nainstalujte a nakonfigurujte:
- Java SDK + Eclipse + Android SDK;
- Webový server (IIS nebo Apache);
- 1C: Enterprise 8.1 (8.2)

2. Pro Eclipse importujte dva projekty knihovny: ActionBarSherlock a ru_profu1c_fba z úložiště SVN.

3. Nainstalujte distribuční sadu konfigurace „FBA“ a zkombinujte ji s aplikačním řešením založeným na 1C.

Podrobně celý proces přednastavení popsáno v článcích:
Příprava pracoviště vývojáře
Instalace distribuční sady konfigurace „FBA“
Kombinace konfigurace „FBA“ s aplikačním řešením a publikováním na webovém serveru

Nastavení by nemělo trvat dlouho a s největší pravděpodobností již máte nainstalovaný nějaký požadovaný software.

Popis aplikace

Vytvořme mobilní aplikaci „Hlášení manažerovi“, která bude pravidelně informovat manažera o stavu věcí v podniku. Aplikace se bude skládat ze 3 obrazovek:
  1. „Přihlášení“ - autorizace uživatele při spuštění programu.
  2. „Seznam hlášení“ je hlavní obrazovkou naší aplikace. Zobrazí se seznam dostupných sestav s možností prohlížet a aktualizovat data z databáze 1C.
  3. „Nastavení programu“ - zde uživatel nastavuje autorizační parametry a adresu serveru 1C, nastavuje plán automatické výměny se serverem 1C.

Aplikace implementuje 2 možnosti pro příjem dat ze serveru 1C:

  1. Hlášení „Zboží ve skladech“. Je generován na serveru a kompilován jako dokument HTML; je jednoduše zobrazen v mobilní aplikaci. Nejjednodušší možnost, forma zprávy je pevná a nelze ji změnit.
  2. Zpráva „Finanční ukazatele“. Zde se počáteční data pro sestavu získají ve formě tabulky, která se poté použije k sestavení sestavy. Výhody této možnosti: libovolná forma výstupu zprávy, vč. ve formě grafů a diagramů; instalace výběrů a třídění je možná.

Vytvoření šablony pro mobilní aplikaci v 1C

Vývoj mobilních aplikací začíná v 1C, protože to není překvapující. Zde rozhodujete o složení metadat, nastavujete schéma výměny a regenerujete šablonu pro svou budoucí mobilní aplikaci.

V adresáři „Mobilní aplikace“ vytvořte nový prvek s názvem „Nahlásit správci“ a identifikátorem SAMPLE_REPORT_HEAD.

Vyberte skupinu v seznamu „Metadata“ "Externí data" a na panelu nástrojů klikněte na tlačítko „Přidat“. Vyplňte parametry nové tabulky podle obrázku:

"Index"- testovací prezentace indikátoru sestavy, řádek (250)
"Význam"- číselná hodnota indikátoru, číslo (15.2)
Názvy sloupců a samotné tabulky jsou zde zpravidla nastaveny v ruštině, budou použity k naplnění tabulky údaji pomocí vestavěného jazyka 1C. Klikněte na OK, tabulka bude přidána do stromu metadat, u mobilní aplikace jsou názvy automaticky přeloženy do latinských znaků.

Připravili jsme tedy strukturu hodnotové tabulky (v přepočtu na 1C), ve které budeme přenášet data pro zprávu „Finanční ukazatele“. U druhého hlášení „Zboží ve skladech“ budou data přenesena jako externí soubor.

Na kartě „Schéma výměny“ zaškrtněte políčko „Nahrát“. Příznak „Načítání“ není důležitý, protože přijaté změny této tabulky z mobilní aplikace v 1C nechystáme zpracovat.

Uložte změny. Na panelu nástrojů klikněte na tlačítko „Šablona mobilní aplikace“, nastavte parametry vaší mobilní aplikace

„Adresář šablon“ - cesta k adresáři, kam budou uloženy generované soubory šablon mobilní aplikace.

Na kartě „Obecné“ zadejte název balíčku, musí to být jedinečný identifikátor. Pokud máte webové stránky, použijte je ke generování předpony. V tomto příkladu jsem zadal ru.profi1c.samples.report.head

Na kartě „Webová služba“ je IP adresa 10.0.2.2, ve výchozím nastavení je to adresa vašeho počítače při přístupu z emulátoru Android. Do polí „Název webové služby“ a „Podadresář aplikace“ zadejte data, která byla zadána při publikování webové služby.

Vezměte prosím na vědomí, že pro 1C 8.2 budete s největší pravděpodobností mít podadresář aplikace s dalším podadresářem / ws, tj. demoFba / ws, podrobnosti viz.
Klikněte na Vytvořit, bude vygenerována šablona projektu Android.

Příprava počátečních dat pro zprávy v 1C

Otevřete modul 1C v konfigurátoru fbaPředplatit si akce a do procedury přidejte následující kód Před odesláním externí tabulky:

If AbbrLP (MobileApplication.Code) = "SAMPLE_REPORT_HEAD" Then If TableName = "Report to the Head" Then // fictive report data TempList = fbaGeneral.From RowsWith Separators ("Cash, Amounts with Accounts Receivable, Total Accounts Receivable, sales") ; RNG = nový generátor náhodných čísel (123456789); Pro každý ListElement ze smyčkyTempList NewRow = ExternalTable.Add (); NewString.Indicator = ListItem.Value; NewString.Value = RNG.RandomNumber (0,999999) + Sin (RNG.RandomNumber (0,999)); Konec cyklu; EndIf; EndIf
V tomto případě je tabulka naplněna fiktivními údaji; ve skutečné aplikaci zde můžete přenést libovolný počet indikátorů sestavy.
Po vyřešení dat pro první sestavu zbývá připravit se na druhou. Ve stejném modulu fbaSubscribeOnEvents přidejte do procedury PrepareBinaryDataForSend následující kód:

DD = nedefinováno; If Abbreviation (MobileApplication.Code) = "SAMPLE_REPORT_HEAD" Then If Identifier = "REPORT_PRODUCTS_IN_STOK" Then FileName = GetTemporaryFileName ("html"); Report = Reports.ProductsIn Warehouses.Create (); If Report.SaveReportInHTML (FileName) Then DD = New BinaryData (FileName); DeleteFiles (FileName); EndIf; EndIf; EndIf; Návrat DD;
Vyjádřím se ke kódu. Když mobilní aplikace požaduje libovolná data (ve formě souboru) s identifikátorem „REPORT_PRODUCTS_IN_STOK“, provede se sestava v 1C a výsledek se uloží do dočasného souboru. Tento dočasný soubor je poté načten jako binární data a předán do mobilní aplikace. Dočasný soubor bude odstraněn.

Jak dovnitř tento případ je vygenerován soubor html, na tom nám nezáleží. K uložení tabulkového dokumentu ve formátu HTML můžete použít standardní mechanismus 1C nebo HTML vygenerovat ručně. Příklad výstupu je možné zobrazit v konfiguraci „FBA demo“, v přehledu „Zboží ve skladech“.

S 1C vším se obracíme na vývoj mobilní aplikace pro Android.

Android Design - aplikace

Importujte šablonu projektu Android vytvořenou v 1C do pracovního prostoru Eclipse.

Spusťte Eclipse a importujte projekt: Soubor> Importovat ... Ve skupině Android vyberte položku „Existuje kód Androidu do pracovního prostoru“ klikněte další, zadejte cestu k adresáři šablon projektu Android a klikněte na Dokončit, nový projekt bude přidán do pracovního prostoru. Pokud máte nějaké potíže, viz, postup je popsán na obrázcích.

1. Vytvořte zprávu „Finanční ukazatele“, jejímž zdrojem dat je tabulka hodnot získaná z 1C. Chcete -li to provést, přidejte novou třídu ToChiefReport.java, zde je kompletní zdrojový kód:

Ukázat

/ ** * Příklad sestavení zprávy o datech z místní databáze sqlite. Zdrojem * dat je externí tabulka „Report to the head“ * * / public class ToChiefReport extends SimpleMapHtmlReport (@Override public int getResIdIcon () (return R.drawable.report_01;) @Override public int getResIdTitle () (return R .string.report_name_to_chief;) @Override public void build (Context context, IReportBuilderResult builderResult) (try (makeReport (context);) catch (SQLException e) (e.printStackTrace (); setHeader1 ("Oops, no report created!") ;) Super.build (kontext, builderResult);) private void makeReport (kontext kontextu) vyvolá SQLException (pomocník DBHelper = nový DBHelper (kontext); // Záhlaví sestavy a tabulky setHeader2 ("Finanční ukazatele"); setTableHeader ("Název" , "Částka, rub."); // Řádky tabulky budou v pořadí, v jakém je mapa přidána mapData = nový LinkedHashMap (); // Načítání dat z lokální databáze sqlite, externí tabulka // "Hlášení správci" ExTableRaportRukovoditelyuDao dao = pomocník .getDao (ExTableRaportRukovoditelyu.class); Seznam řádky = dao.select (); pro (řada ExTableRaportRukovoditelyu: řádky) (mapData.put (row.pokazatel, row.znachenie);) setTableData (mapData); )))
Vyjádřím se ke kódu. Abstraktní třída SimpleMapHtmlReport, ze které dědí, je určena k sestavení obyčejný HTML sestava s tabulkou dvou sloupců.
První 2 metody getResIdIcon () a getResIdTitle () vrací ikonu a název naší sestavy, která se má zobrazit v seznamu. V obsluze události "build" se nazývá metoda makeReport, ve které naše implementace kompilace sestavy.
Při sestavování sestavy se nejprve nastaví název sestavy a tabulka a poté se všechny záznamy z místní tabulky sqlite přečtou jako řádky tabulky sestav. Nakonec v metodě setTableData () nastavíme data pro tabulku sestav. Uff, jak těžké je komentovat zjevné věci.


2. Vytvořte druhou zprávu, tady je to ještě jednodušší:

Ukázat

/ ** * Příklad sestavené zprávy, pouze výstupy Html soubor... V tomto případě * je datový soubor generován v 1C a přenesen do mobilního klienta během výměny * */ veřejná třída ProductsInStokReport rozšiřuje SimpleCompiledHtmlReport (// Název, pod kterým je uložen přijatý soubor z 1C (viz postup výměny // MyExchangeTask ) public static final String REPORT_FILE_NAME = "products_in_stok.html"; public ProductsInStokReport (soubor souboru) (super (soubor);) @Override public int getResIdIcon () (return R.drawable.report_02;) @Override public int getResIdTitle () ( vrátit R.string.report_name_products_in_stok;))


3. Rozbalme předdefinovanou proceduru výměny se serverem 1C, tzn. přidejme k tomu ještě jeden krok - získání dat pro naši druhou sestavu ve formě kompilovaného souboru. Přidejme třídu MyExchangeTask dědící z ExchangeTask:

Ukázat

/ ** * Standardní postup výměny doplněný o vlastní pravidla. * Navíc je získán jeden kompilovaný soubor - zpráva. * */ public class MyExchangeTask rozšiřuje ExchangeTask (// ID reportu, jak je uvedeno v 1C private static final String ID_REPORT_PRODUCTS_IN_STOK = "REPORT_PRODUCTS_IN_STOK"; public MyExchangeTask (ExchangeVariant exchangeVariant, dpenHelper wsrvHelperute @DBOperb) Proveďte výměnné kroky podle předdefinovaných pravidel boolean success = super.doExecute (); if (success) (// Získejte libovolná data - naše 2. zpráva onStepInfo ("Příjem zpráv ..."); Řetězec fPath = appSettings.getCacheDir (). GetAbsolutePath () + " /" + ProductsInStokReport.REPORT_FILE_NAME; Soubor f = wsHelper.getLargeData (ID_REPORT_PRODUCTS_IN_STOK, null, "" = fPath!); Null) návratový úspěch;))
K získání dat sestavy se používá metoda webové služby getLargeData, který v případě úspěchu uloží výsledek do souboru na zadané cestě. Věnujte pozornost identifikátoru ID_REPORT_PRODUCTS_IN_STOK, musí být stejný jako v 1C v metodě PrepareBinaryDataForSend.


4. Zobrazení seznamu sestav na hlavním formuláři. Otevřete soubor res \ activity_main.xml a přidejte listView, který zobrazí seznam sestav:

Přidat do MainActtiviy.java:

A) místní proměnná pro seznam
soukromý seznam ListView;
b) metoda inicializace
private void init () (list = (ListView) findViewById (android.R.id.list); // Vytvořte adaptér pro zobrazení seznamu sestav ReportListAdapter adaptér = nový ReportListAdapter (this, createReportList ()); list.setAdapter (adaptér ); list.setOnItemClickListener (new OnItemClickListener () (@Override public void onItemClick (AdapterViewrodič, Zobrazit pohled, int pozice, dlouhé ID) (// Zobrazit sestavu v dialogu kliknutím na ni IReport report = (IReport) list.getItemAtPosition (pozice); report.onShow (MainActivity.this);))); )
a jeho volání v onCreate () po nastavení rozložení formuláře
setContentView (R.layout.activity_main); init ();
c) způsob inicializace seznamu sestav
/ * * Připravte si seznam zpráv * / soukromý seznam createReportList () (Seznam lst = nový ArrayList (); // Vytvořte první sestavu, dočasný adresář, kam je soubor uložen, vezmeme z // nastavení IReport report = new ProductsInStokReport (new File (getAppSettings () .getCacheDir (), ProductsInStokReport.REPORT_FILE_NAME))); lst.add (zpráva); // Vytvořte a přidejte další zprávy do seznamu lst.add (nový ToChiefReport ()); )
d) postup zahájení výměny podle vašich pravidel
/ * * Zahájit výměnu podle mých pravidel. Pamatujte, že v plánovači * (pokud je nainstalován) výměna zůstala podle standardních pravidel */ private void startExchangeMyRules (varianta ExchangeVariant, boolean cancelable) (// pomocník pro volání metod webové služby WSHelper wsHelper = new WSHelper (getExchangeSettings ()); MyExchangeTask task = nový MyExchangeTask (varianta, wsHelper, getHelper ()); startExchange (úkol, zrušitelný);)
A změníme volání procedury výměny startExchange (ExchangeVariant.FULL, true) v obslužném programu onOptionsItemSelected na startExchangeMyRules (ExchangeVariant.FULL, true).

Aplikace je připravena, autorizační formuláře a nastavení programu budou vytvořeny automaticky, nebudeme je měnit.
Podívejme se na to na emulátoru. Pokud jste nikde neudělali chybu, aplikace se spustí. Místo autorizačního okna se však okamžitě zobrazí okno nastavení, protože nejsou zadána autorizační data (uživatelské jméno a heslo).

vložte svoji přezdívku: ivanov
A heslo: 123456

Spusťte databázi 1C a otevřete adresář „Mobilní zaměstnanci“. Předdefinovaný prvek „emulátor zařízení“ zadejte jako mobilní zařízení v tabulková část„Mobilní aplikace“ přidají aplikaci „Nahlásit správci“ a nastaví shodné uživatelské jméno a heslo.

Spusťte postup výměny na emulátoru (tlačítko se šipkou „Nahoru“ na pravém panelu)

Výsledek výměny se zobrazí v oznámení:

Kliknutím na něj spustíte aplikaci (nebo ji zobrazíte detailní informace o chybě, pokud byla výměna neúspěšná).

Podívejme se, co se stalo. Klikněte na zprávu v seznamu:

Ukázat


Vynikající! Zobrazují se zprávy, měřítko můžete změnit pomocí tlačítka nebo gest.


Aplikace je připravena, ukázalo se, že je docela funkční a snadno rozšiřitelná. Přidání dalších zpráv je snadné.
Dokumenty můžete přenášet do různé formáty, například * .doc nebo * .pdf a k jejich zobrazení použijte externí aplikace. Podívejte se na příklad ve zdrojovém kódu, jsou tam další 3 sestavy:
  • graf pomocí Google Chart Tools
  • vykreslete pomocí pluginu jQuery Plot
  • Výstup zprávy PDF externí aplikací (PdfReport.java)
Nebudu popisovat podrobně, a tak se článek ukázal být velký. Pokud máte nějaké dotazy, jsem připraven je zodpovědět v komentářích. Zde je výstup:

Ukázat


Kompletní ukázkový kód si můžete stáhnout na https://xp-dev.com/svn/fba_toolkit_public/samples/fbaSample4ReportHead/

Pomocí HTML pro vytváření sestav vám umožňuje vytvořit velmi různorodou zprávu vč. a s interaktivními prvky. Jeden z našich projektů například používá následující zprávu:

Ukázat

  • pro pole „Dluh“ se používá podmíněné barevné schéma v závislosti na částce;
  • úplný seznam nezaplacených faktur se otevře pouze po kliknutí na značku „Vše“, ve výchozím nastavení se zobrazí pouze poslední 4.

A samozřejmě nejste ničím omezeni, můžete pomocí knihoven třetích stran zobrazovat sestavy a grafy, například achartengine, nebo si svůj vlastní graf / graf vytvořit sami (příkladů je mnoho, včetně sady Android SDK) .

To je vše, další příklady najdete na webu http://profi1c.ru.
V blízké budoucnosti se plánuje přidání lekcí interaktivních prvků a adaptérů knihovny FBA a také ukázka práce s off-line mapami forfor.

Lžíce dehtu

Produkt „FBA Toolkit“ se plánuje distribuovat na komerčním základě, nyní je ve stavu „demo verze“. Můžete jej použít k testování a učení.
Omezení:
  • program přestane fungovat po skončení platnosti demo licence, tj. po 31.12.13;
  • při spuštění se zobrazí oznámení:

V blízké budoucnosti (ne déle než měsíc) bude k dispozici komerční verze, informace o nákladech a licenčním postupu budou přidány na naše webové stránky.

Děkuji za přečtení až do konce. Jsem připraven odpovědět na vaše otázky v komentářích pro 1C i Android.

Štítky: Přidejte značky

Na příkladu mobilní aplikace „1C: Management of our company“ (zkráceně UNF) chci ukázat vývoj mobilní obchodní aplikace od jeho vzniku a vydání úplně první verze až do současnosti. Nyní má tato aplikace více než 220 000 stažení; Aplikace je zdarma, ale má placené možnosti (realizované prostřednictvím nákupů v aplikaci).


První verze mobilního UNF byla vytvořena na jedné z prvních verzí mobilní platformy 1C: Enterprise v roce 2012. V té době již existovala konfigurace klient -server „1C: Management of small company“ (tehdy se ten název jmenoval tak), program pro automatizaci činností malé firmy - prodeje, nákupy, zákaznická a dodavatelská základna, skladové hospodářství, výroba atd.

Stejně jako většina mobilních aplikací napsaných na mobilní platformě 1C: Enterprise pro různé platformy je mobilní UNF k dispozici pro iOS, Android a Windows.

Úkol byl stanoven následovně: vytvořit mobilní aplikaci, která by podporovala část scénářů pro práci „velkého“ UNF. Aplikace by měla být schopna pracovat jak autonomně, tak synchronizovat data s „velkým“ UNF (dále napíšu slovo „velký“ ve vztahu k verzi UNF klient-server bez uvozovek, aby nedošlo k přetížení textu). V případě práce s velkým UNF by měly být podpořeny scénáře „mobilních“ zaměstnanců - obchodního zástupce, servisního technika, obchodníka.

První verze byla vytvořena za 1 člověkoměsíc. Při vytváření mobilní aplikace byly některé objekty metadat (příručky, dokumenty) implementovány na základě velkých objektů UNF. Část funkcionality ale musela být naprogramována od nuly, například proces výměny dat s velkým UNF. Pravda, ve vztahu k výměně dat jsme vlastně museli trochu programovat - použili jsme standardní platformové mechanismy (zejména výměnné plány), které omezily psaní kódu na minimum.

Kromě zjednodušení práce se synchronizací dat platforma 1C výrazně usnadňuje konstrukci plnohodnotné mobilní aplikace tím, že vývojáři poskytuje takové součásti rozhraní, jako jsou seznamy (tabulkové a hierarchické), možnost vyhledávat podle nich, vstupní pole s vyhledávání, tabulky pro zprávy, široký rozsah grafy, možnost tisku na WiFi a Bluetooth tiskárnách atd.

Vlastnosti mobilní verze

Existují dvě hlavní strategie pro výběr funkčnosti mobilní aplikace. První je „jedna aplikace, jedna funkce“. Například mobilní aplikace pro příjem zboží ve skladu, která dokáže pomocí integrované kamery pouze naskenovat čárový kód zboží a odeslat informace o přijatém zboží na server. Druhou strategií je vytvoření mobilní aplikace s rozsáhlými funkcemi typu vše v jednom. Oba přístupy mají právo na život; Při psaní mobilního UNF jsme zvolili druhý přístup - naše aplikace pokrývá mnoho úkolů ve své předmětné oblasti a může pracovat zcela autonomně, což slouží potřebám malé organizace. Další výhodou tohoto přístupu je, že uživatel může pracovat s několika vzájemně propojenými funkcemi z jedné aplikace.

Mobile UNF široce využívá funkce mobilního zařízení, zejména:

  • Vestavěnou kameru zařízení lze použít k pořizování snímků produktu při vyplňování karty produktu, ke čtení čárových a QR kódů
  • Fakturu za platbu lze klientovi zaslat e -mailem nebo SMS
  • Protistranu lze vybrat z adresáře mobilního zařízení
  • Pokud má protistrana telefonní číslo - můžete na protistranu zavolat jedním dotykem nebo poslat SMS, je -li nastaven e -mail - odeslat dopis, je -li nastavena adresa - zobrazit ji na mapě
  • Dokáže tisknout dokumenty do tiskáren přes WiFi a Bluetooth
Existuje možnost zálohovat a obnovit základnu mobilního UNF na Yandex.Disk a odeslat základnu poštou.

Konfigurace mobilního UNF vypadá docela spartánsky (viz screenshot níže):

  • 8 referenčních knih (ve velkém UNF - 273 referenčních knih)
  • 7 dokumentů (ve velkém UNF - 125)
  • 3 deníky dokumentů (ve velkém UNF - 24)
  • 3 registry informací (ve velkém UNF - 357)
  • 4 akumulační registry (64 ve velkém UNF)

Hlavní objekty mobilního UNF

Ale navzdory tak malému počtu použitých předmětů se produkt ukázal být docela funkční.

Zajímavou vlastností mobilního UNF je, že ho často používají lidé, kteří o 1C dosud neslyšeli (ano, někteří v naší zemi jsou), ti, kteří potřebovali mobilní aplikaci k vedení záznamů o svém malém podnikání (např. domácí tvorba). Právě ho našli hledáním Google Play nebo AppStore, přečtěte si recenze - a začali pracovat.

Autonomní práce

Tento scénář je určen pro velmi malé organizace, kde je veškeré účetnictví prováděno výhradně na mobilním zařízení. Může to být například „domácí“ podnikání - výroba šperků doma a jejich prodej na stránce VKontakte. Nebo možná dokonce malý obchod - osobně jsem viděl případ, kdy hračkářství specializující se na prodej Lego konstruktérů vedlo záznamy výhradně na mobilní verzi UNF. Vzhledem k tomu, že mobilní UNF může tisknout na WiFi a Bluetooth tiskárnách, lze jej použít k řešení poměrně velkého počtu úkolů. Mobile UNF podporuje zpracování objednávek, zadávání příchozích a odchozích faktur, účtování příjmů a výdajů peněz.

Práce v synchronizaci se serverem (první verze)

V režimu synchronizace se serverem v mobilním UNF se v dřívějších verzích stávalo nedostupné účetní funkce a práce v něm probíhaly především s objednávkami (přijímání a provádění objednávek) a souvisejícími činnostmi (vedení referenčních knih protistran, zboží a služeb) , atd.).

S velkým UNF byly synchronizovány adresáře zboží a služeb, dodavatelů a objednávek.


Výměna dat mezi mobilními a velkými UNF v prvních verzích

Objednávky zadané z mobilních zařízení směřovaly do velkého UNF a při synchronizaci byly odeslány na mobilní zařízení osob odpovědných za objednávky. Dokumenty, jako jsou pokladní doklady, tržby za zboží atd., Zadané na mobilních zařízeních, odešly do velkého UNF, ale nebyly synchronizovány mezi mobilní zařízení... Veškerá práce v mobilní aplikaci v synchronizačním režimu byla prováděna hlavně kolem objednávek - jejich přijímání a provádění, plnohodnotné účetnictví nebylo prováděno na mobilním zařízení, k tomu bylo nutné použít na počítači velký UNF.

Tak tomu bylo v prvních verzích, ale později jsme situaci změnili a rozšířili seznam scénářů používání mobilního UNF, aby byla práce s ním pro uživatele pohodlnější.

Něco o synchronizaci dat

Výměna dat mezi mobilními a velkými UNF prochází webovými službami; mobilní UNF volá webové služby nasazené na straně velkého UNF. Datové struktury ve velkém a mobilním UNF jsou různé; Při navrhování architektury jsme zvažovali 2 možnosti výměny dat:
  1. Vytvořte datovou strukturu ve velkém UNF, duplikujte datovou strukturu mobilního UNF a vyměňte si data s mobilním UNF „one-to-one“. Při změně dat ve velkém UNF je třeba přenést nová / změněná data do této duplicitní struktury a po výměně dat s mobilním UNF převést data, která pocházela z mobilního zařízení a umístěna do duplicitní struktury do velkého UNF formát.
  2. Vyměňujte si data přímo se strukturami velkého UNF a provádějte převod dat „za běhu“ podle pravidel výměny.
Rozhodli jsme se zůstat u druhé možnosti. První možnost, přestože slibovala určité výhody spojené s jednoduchostí skutečné výměny dat, špatně zvládla situaci, kdy byla v nové verzi mobilního UNF změněna (rozšířena) datová struktura; aby výměna dat jeden na jednoho pokračovala v práci, bylo by nutné aktualizovat velký UNF na straně serveru. Což bylo z mnoha důvodů nepřijatelné.

Mechanismy výměny dat implementované na platformě přebírají většinu práce při generování paketů pro synchronizaci dat, což vám umožňuje omezit kódování na minimum. Proces výměny využívá standardní mechanismus platformy 1C: Enterprise - mechanismus výměny dat; pro každý mobilní UNF je ve velkém UNF vytvořen uzel pro výměnu dat, ve velkém a mobilním UNF je použita služba registrace změn ke sledování dat změněných od poslední synchronizace atd.

Mobilní aplikace zahájí výměnu dat pomocí mechanismů platformy, vytvoří výměnný paket (obsahující identifikátor mobilní aplikace a data aktualizovaná na mobilním UNF od poslední synchronizace) a odešle je do velkého UNF. Na základě informací ve startovacím balíčku velký UNF připraví pro mobilní UNF data změněná ve velkém UNF od poslední synchronizace a zabalí je do paketů. Balíčky ve formátu XDTO jsou objekty metadat 1C serializované v XML; velikost každého balíčku není větší než 500 objektů.

Mobilní UNF přebírá tento datový paket po paketu. Po stažení posledního balíčku začne mobilní UNF zpracovávat přijatá data - posílat dokumenty, psát adresáře atd. Pokud je připojení přerušeno, je podporováno obnovení paketů; Mechanismus obnovení pro UNF jsme napsali sami (není na platformě), ale jelikož je mobilní UNF dodáván ve zdrojových kódech, vývojáři se mohou podívat na implementaci mechanismu a půjčit si ji pro své aplikace.

Během počáteční synchronizace mobilního UNF s velkým UNF není možné pracovat v mobilním UNF - zdá se modální okno ukazující průběh procesu. Všechny následné synchronizace jsou na pozadí a neblokují práci mobilního UNF.

Úplný seznam objektů vyměňovaných mezi mobilními a velkými UNF:

  • Reference:
    • Nomenklatura
    • Dodavatelé
    • seznam uživatelů
  • Dokumenty:
    • Objednávky kupujícího
    • Účtenka v pokladně
    • Hotovostní výdaje
    • Doklad o nákupu
    • Prodejní faktura
    • Výroba
  • Registry (ale ne všechny ceny, ale pouze základní):
    • Ceny Dodavatelé
    • Ceny zboží
  • Podrobnosti o organizaci:
    • název
    • Daňové informace
Ve velkém UNF má zboží obrázky - obrázky samotného zboží. Abychom minimalizovali provoz, nenačítáme obrázky do mobilního UNF, načítají se na vyžádání - například když otevřeme produktovou kartu v mobilním UNF.


Karta produktu s obrázkem produktu

Evoluce aplikací - vývoj případů použití

Typická situace - podnikání roste a funkčnost mobilního UNF na jednom mobilním zařízení již nestačí. V podniku se objevuje další zaměstnanec (nebo zaměstnanci), který také potřebuje pracovat s objednávkami.

V prvních verzích mobilního UNF byl scénář přesunu celkem přímočarý - data zadaná do mobilního UNF byla zkopírována do databáze velkého UNF a uživatel si musel od nynějška vést záznamy v počítači. V takovém případě bude mobilní UNF fungovat v režimu práce s objednávkami a již nebude možné vést záznamy (jako u samostatné verze mobilního UNF).

To samozřejmě nebylo pro koncového uživatele úplně pohodlné - byl již zvyklý vést záznamy z mobilního zařízení a poté byl nucen sedět u klávesnice počítače. Ne každý s tím bude spokojený.

Proto jsme rozšířili seznam scénářů pro mobilní UNF. Vznik naší cloudové služby http://1cfresh.com, na základě cloudová technologie 1cFresh. Nyní můžete do cloudu umístit velký UNF. Popsali jsme tři scénáře používání mobilní aplikace při růstu podnikání uživatele:

  1. Docela malý podnik. Účetnictví se provádí na jednom mobilním zařízení.
  2. Byznys roste - objevili se zaměstnanci. Mobilní UNF můžete vložit na mobilní zařízení zaměstnanců. V takovém případě musíte být schopni vyměňovat data mezi mobilními zařízeními a synchronizovat data; za tímto účelem jsme se rozhodli nepoužívat výměnu souborů, ale použít pro synchronizaci (a zároveň pro zálohování) verzi velkého UNF umístěného v cloudu http://1cfresh.com. Když je tento skript povolen, vytvoří se v cloudu http://1cfresh.com instance velkého UNF, jehož databáze bude použita k synchronizaci dat mezi mobilními zařízeními. Použití jednoho mobilního zařízení v takovém scénáři je zdarma, za každé další zařízení účtujeme 75 rublů / měsíc, v tomto scénáři nelze použít více než tři zařízení. V tomto případě mohou být uživatelům mobilních zařízení přiřazeny předdefinované role - obchodní zástupce, servisní technik, prodejce (je také možné podrobné nastavení role); funkce mobilní aplikace bude odpovídajícím způsobem omezena. Je také možné pracovat prostřednictvím webového klienta nebo tenkého klienta s velkým UNF hostovaným v cloudu, ale funkce cloudového UNF bude omezena na funkčnost mobilního UNF. Není však nutné pracovat přímo v cloudovém UNF - veškerou práci lze provádět pouze z mobilních zařízení.
  3. Firma se rozrostla na průměrnou firmu. V tomto případě má smysl pronajmout si plnohodnotnou verzi velkého UNF v cloudu, abyste získali (prostřednictvím webového klienta nebo tenkého klienta) další funkce - CRM (plány mají zahrnout CRM do mobilního UNF, ale zatím k dispozici pouze ve velké verzi), správa skladu, rozšířené ceny, možnost pracovat s bankami atd. V tomto případě není počet mobilních zařízení pracujících s velkým UNF omezen (za každé zařízení je účtován dodatečný poplatek podle tarifu, jako za jedno pracoviště; 1 licence pro UNF ve Freshetu nebo pro „krabicový“ UNF udává právo používat zdarma a 1 mobilní aplikaci).

Zkušenosti se zpeněžením aplikace

Mobilní aplikace UNF, jak jsem již psal, je zdarma. Před nějakou dobou jsme se rozhodli zpeněžit naši aplikaci (pomocí funkcionality nákupů v aplikacích implementovaných v mobilní platformě 1C: Enterprise verze 8.3.8), prodávat další funkce - produkci a možnost synchronizace s dalšími mobilními zařízeními.


Zakoupení produkční funkce je jednorázový nákup a možnost synchronizace s dalšími mobilními zařízeními je koncipována jako předplatné, které je třeba každý měsíc obnovovat. Zajímavé je, že pouhé 3 týdny po přidání funkce nakupování se mobilní UNF dostal do top 15 Google Play, co se týče prodeje obchodních aplikací.

Závěr

Mobile UNF je relativně malý (z hlediska objemu zdrojového kódu), ale docela populární produkt. Doufáme, že příběh o jeho vývoji bude užitečný pro tvůrce produktů mobilních koncových uživatelů využívajících technologie 1C i další vývojové nástroje.

Bude užitečné připomenout, že na mobilní platformě 1C můžete vytvářet aplikace, které interagují nejen s backendem 1C serveru; protokoly používané pro výměnu dat v mobilních aplikacích na platformě 1C jsou nezávislé na platformě (webové a HTTP služby, podpora XML a JSON atd.). Pokud tedy potřebujete rychle a dynamicky vyvinout multiplatformního (Android, iOS, Windows) mobilního klienta s možností pracovat offline bez stálého připojení k internetu pro vaši obchodní aplikaci, pak mobilní platforma 1C klidně může být optimální volba Pro tebe.

Praxe vývoje mobilní aplikace 1C 8.3 (část 1)

Tento článek bude mluvit o tom, co jsem musel vyzkoušet a na jaké hrábě šlápnout, než se mi podařilo udělat víceméně normální aplikaci pro tablety. Aplikace byla původně zostřena pouze pro Android na základě konfigurace 1C: Orders a mobilní aplikace pro vývoj.

Zpočátku byl zvolen „špatný“ přístup se zkompilováním aplikace a jejím hodením na tablet ručně. Připomínám, že MobileAppWizzard se používá k vytváření mobilních aplikací. Poté bylo na jednom z fór nalezeno krásné řešení pomocí mobilní aplikace pro vývoj. Tato aplikace je součástí instalace mobilní platformy. V době vývoje byla použita verze platformy 8.3.3.24. Ve složce "Android" najdete soubor 1cem.apk. Toto je vývojová mobilní aplikace. Jeho největší plus, který nám ušetřil spoustu času, je, že můžete publikovat mobilní aplikaci na webovém serveru a zadat cestu jako http: // [ Adresa webového serveru]/[ Název mobilní aplikace].

Na počítači Tablet PC můžete v nastavení přidané aplikace zaškrtnout políčko „Aktualizovat z konfigurátoru“ a při každém spuštění aplikace se aplikace pokusí připojit k webovému serveru a vyhledat aktualizace.

Poté, co byla mobilní aplikace nasazena, začal proces její finalizace.

Co bylo požadováno:

1. Nastavte ústřednu mezi centrální základnou a mobilním zařízením.

2. Uspořádejte asymetrickou synchronizaci: stahujte data ze seznamu akcií, protistran, stavů skladů a zúčtování z centrální databáze a stahujte pouze objednávky zákazníků z mobilní aplikace.

3. Implementujte jednoduché rozhraní pro manažery, kde mohou rychle zobrazit zůstatky, ceny a vyrovnání.

Ve fázi testování byla použita přechodná základna „Managed Application“, protože demo aplikace 1C: Orders byla původně navržena pro výměnu se Managed Application.

První palačinka vyšla hrudkovitě. Doslova. K výměně s centrální databází byl použit v82.ComConnector. Nebudu zacházet do podrobností o jeho nastavení, existuje o tom spousta samostatných materiálů. Projdu pouze obtížemi, se kterými jsem se setkal.

1. Pomocí com- objekty na 64bitovém operačním systému serveru. K vyřešení problému byl použit obal COM + aplikace, který je nakonfigurován v Služby komponent.

2. Vzdálené volání Com z jiného serveru. Volaný server musí mít roli Aplikační server, a mělo by být nakonfigurováno COM + přístup k síti. Kromě toho server Apache musí mít příslušná práva (tj. běžet jako služba jménem oprávněného uživatele)

Poté, co se opotřebovali s Com-connections, rozhodli se přenést pracovní základnu na webové služby.

Hodně bylo také napsáno o publikování webových služeb, ale je to psáno o tom, jak to funguje. Jak to NEJDE, podělím se níže.

Pracovní základna je nasazena na platformě 8.2, mobilní aplikace 8.3.

Při publikování nejprve přílohy 8.3 a poté 8.2. pravidelně zachytil závadu „Chyba formátu streamu“ ve webovém klientu 8.3 nebo chybová zpráva „Verze klientské a serverové platformy se liší“. Publikování nepomůže, ani restartování Apache. Vypnutí publikace a její opětovné připojení však pomáhá.

Dále jsem zachytil legrační chybu při autorizaci uživatele (při vytváření ws Definice). Při testování na počítači je autorizace s dlouhým názvem snadná. Při pokusu o autorizaci stejného uživatele ze spuštěného tabletu Android, autorizace skončila dříve, než začala. Experimentálně bylo možné vypočítat, že délka přihlášení v azbuce je omezena na 22 znaků. Současně kombinace cyrilice a čísel umožňovala přihlášení pomocí přihlášení o délce 27 znaků. Existuje podezření, že je to kvůli převodu cyrilice. Tedy například v prohlížeči Firefox řetězec z Wikipedie "ivo "je převedeno na"».

Technologicky má mobilní platforma 8.3.3 v současné době řadu omezení. Nejočekávanější, podle mého názoru, inovací je podpora požadavků. Ale od svévolné požadavky mobilní platforma zatím nepodporuje dynamické seznamy, takže jsme museli „jít jinou cestou“.

K vyřešení problému se zobrazením referenční knihy položek s cenami a zůstatky byl použit následující přístup:

1. Byly vytvořeny dvě tabulky ve formě příručky k seznamu akcií. První je dynamický seznam, samotný adresář. Filtr dynamického seznamu je nakonfigurován tak, aby zobrazoval pouze skupiny. Druhá tabulka je skutečné zůstatky a ceny. Když je aktivován řádek dynamického seznamu, tabulka hodnot se vyplní na serveru, který se pak zobrazí ve druhé tabulce. Objektový model byl použit k získání cen a zůstatků. Všechny tyto tance s tamburínou byly provedeny pouze proto, že neexistuje metoda „při výstupu řádku“ nebo „při příjmu dat“, což je obvyklé pro tlustého klienta, a není možné dynamicky kreslit čísla ve sloupci.

Podobný přístup byl použit ve formě výběru

2. FormattedString je ideální pro zobrazení řádku s aktuálními cenami.

Níže je ukázkový kód.

& OnServerWithoutContext Balance FunctionWhenActivatingRowOnServer (nome) RecordSet = Information Registers.Prices of Goods.CreateRecordSet (); SetRecords.Selection.Product.Value = číslo; SetRecords.Selection.Product.Use = True; Recordset.Read (); ArrayFormattedStrings = Nové pole; Pro každý RecordSetStringFormattedLines Loop.Add (New FormattedString (SetString.Price.Name, WebColors.Blue)); FormattedString Array.Add (New FormattedString ("" + String (SetString.Price) + "")); Konec cyklu; Vrátit nový FormattedString (FormattedString Array); // Vložte obsah obslužné rutiny. Koncová funkce

3. K načtení adresářů, zůstatků a cen do mobilní aplikace byla použita webová služba, která na vstupu přijímá strukturu parametrů a na výstupu vrací úložiště hodnot. Dalším nepříjemným objevem byl pád burzy s příliš dlouhým zpracováním na straně serveru. Dojem je, že existuje nějaký časový limit, po kterém si aplikace „myslí“, že bylo připojení přerušeno (i když ve skutečnosti jsou data stále zpracovávána v pracovní databázi prostřednictvím připojení ws) a ukončuje výměna s chybou.

Aby se tomu zabránilo, bylo rozhodnuto rozdělit plnou výměnu na části se zaměřením zpět na mobilní aplikaci. Tito. nejprve synchronizujte nomenklaturu, poté protistrany, pak zůstatky atd.

4. Pro příjem zpráv je ponechán stejný přístup jako v konfiguraci 1C: Objednávky. Volá se webová služba s parametry, tabulkový dokument je generován na straně serveru pracovní základny a poté je hotový tabulkový dokument vrácen do mobilní aplikace.