So fügen Sie Benutzer zur mobilen 1c-Anwendung hinzu. Grundeinstellungen der mobilen Anwendung „1C-Rating: Mobiler Kellner. Erfahrung mit der Monetarisierung von Anwendungen

Entwicklungspraxis mobile Applikation 1C 8.3 (Teil 1)

In diesem Artikel werden wir darüber sprechen, was wir versucht haben und welche Fehler wir gemacht haben, bevor wir es geschafft haben, eine mehr oder weniger normale Anwendung für Tablets zu erstellen. Die Anwendung wurde ursprünglich nur für Android entwickelt, basierend auf der Konfiguration 1C: Orders und einer mobilen Anwendung für die Entwicklung.

Zunächst wurde der „falsche“ Ansatz gewählt: den Antrag manuell zusammenzustellen und auf das Tablet hochzuladen. Ich möchte Sie daran erinnern, dass Sie zum Erstellen mobiler Anwendungen den „Assistenten zur Erstellung mobiler Anwendungen“ (MobileAppWizzard) verwenden. Dann wurde in einem der Foren eine schöne Lösung gefunden, bei der eine mobile Anwendung für die Entwicklung verwendet wurde. Diese Anwendung ist in der Installation der mobilen Plattform enthalten. Zum Zeitpunkt der Entwicklung wurde die Plattformversion 8.3.3.24 verwendet. Im Ordner „Android“ finden Sie die Datei 1cem.apk. Dies ist eine mobile Anwendung für die Entwicklung. Sein größter Vorteil, der uns viel Zeit gespart hat, besteht darin, dass Sie eine mobile Anwendung auf einem Webserver veröffentlichen und auf einem Tablet einen Pfad wie http://[ angeben können. Webserveradresse]/[ Name der mobilen Anwendung].

Auf einem Tablet-PC können Sie in den Einstellungen der hinzugefügten Anwendung das Kontrollkästchen „Update aus dem Konfigurator“ aktivieren. Bei jedem Start der Anwendung versucht diese, eine Verbindung zum Webserver herzustellen und nach Updates zu suchen.

Nachdem die mobile Anwendung bereitgestellt wurde, begann der Prozess der Verfeinerung.

Was war erforderlich:

1. Richten Sie den Austausch zwischen der zentralen Datenbank und dem mobilen Gerät ein.

2. Organisieren Sie die asymmetrische Synchronisierung: Laden Sie Daten zu Produktartikeln, Auftragnehmern, verbleibenden Waren im Lager und gegenseitigen Abrechnungen aus der zentralen Datenbank herunter und laden Sie nur Kundenbestellungen aus der mobilen Anwendung herunter.

3. Implementieren Sie eine einfache Schnittstelle für Manager, über die sie schnell Salden, Preise und gegenseitige Abrechnungen einsehen können.

In der Testphase wurde eine Zwischenbasis verwendet. Verwaltete Anwendung", da die Demoanwendung 1C: Orders ursprünglich für den Austausch mit der Managed-Anwendung konzipiert war.

Der erste Pfannkuchen war klumpig. Buchstäblich. Für den Austausch mit der zentralen Datenbank wurde v82.ComConnector verwendet. Ich werde nicht näher auf die Einrichtung eingehen; dazu gibt es viele separate Materialien. Ich werde nur auf die Schwierigkeiten eingehen, auf die ich gestoßen bin.

1.Mit Com- Objekte auf einem 64-Bit-Serverbetriebssystem. Zur Lösung des Problems wurde ein Wrapper verwendet COM+-Anwendungen welches in konfiguriert ist Komponentendienste.

2. Fernanruf Com von einem anderen Server. Der aufgerufene Server muss über die Rolle verfügen Anwendungsserver und es sollte konfiguriert werden COM+-Netzwerkzugriff. Darüber hinaus der Server Apache muss über die entsprechenden Rechte verfügen (d. h. als Dienst im Namen eines autorisierten Benutzers ausgeführt werden)

Da wir mit den Com-Verbindungen zu kämpfen hatten, beschlossen wir, die Arbeitsbasis dorthin zu verlegen Internetdienste.

Es wurde auch viel über das Veröffentlichen von Webdiensten geschrieben, aber es wird darüber geschrieben, wie es funktioniert. Ich werde unten erläutern, warum es NICHT funktioniert.

Die Arbeitsbasis wird auf Plattform 8.2 bereitgestellt, die mobile Anwendung jeweils auf 8.3.

Beim Veröffentlichen von Anwendungen zuerst 8.3 und dann 8.2. Ich habe regelmäßig den Fehler „Stream-Formatfehler“ im Webclient 8.3 oder die Fehlermeldung „Die Versionen der Client- und Serverplattform unterscheiden sich“ festgestellt. Eine erneute Veröffentlichung hilft nicht, ein Neustart auch nicht Apache. Aber es hilft, die Veröffentlichung zu deaktivieren und erneut eine Verbindung herzustellen.

Als nächstes ist mir beim Autorisieren eines Benutzers (beim Erstellen) ein lustiger Fehler aufgefallen ws Definitionen). Beim Testen auf einem Computer ist die Autorisierung mit einem langen Namen einfach. Wenn Sie versuchen, denselben Benutzer von einem laufenden Tablet aus zu autorisieren Android, Die Autorisierung endete, bevor sie begann. Experimentell konnte berechnet werden, dass im Kyrillischen die Länge eines Logins auf 22 Zeichen begrenzt ist. Gleichzeitig ermöglichte mir die Kombination aus kyrillischen Zeichen und Zahlen, mich mit einem Login von 27 Zeichen einzuloggen. Es besteht der Verdacht, dass dies auf die Umwandlung kyrillischer Zeichen zurückzuführen ist. Also zum Beispiel im Browser Feuerfuchs Zeile aus Wikipedia“ivo“ wird in „ konvertiert».

Technologisch, mobile Plattform 8.3.3 weist derzeit eine Reihe von Einschränkungen auf. Die am meisten erwartete Neuerung ist meiner Meinung nach die Abfrageunterstützung. Da die mobile Plattform jedoch noch keine beliebigen Abfragen in dynamischen Listen unterstützt, mussten wir „einen anderen Weg einschlagen“.

Um das Problem der Anzeige eines Produktverzeichnisses mit Preisen und Salden zu lösen, wurde folgender Ansatz verwendet:

1. Es wurden zwei Tabellen in Form eines Nomenklatur-Nachschlagewerks erstellt. Die erste ist eine dynamische Liste, das Verzeichnis selbst. Filter dynamische Liste so konfiguriert, dass nur Gruppen angezeigt werden. Die zweite Tabelle enthält die tatsächlichen Salden und Preise. Bei Aktivierung einer dynamischen Listenzeile wird auf dem Server eine Wertetabelle gefüllt, die dann in die zweite Tabelle ausgegeben wird. Zur Ermittlung von Preisen und Salden wurde ein Objektmodell verwendet. Alle diese Tänze mit einem Tamburin wurden nur aufgeführt, weil die übliche Thick-Client-Methode „beim Ausgeben einer Zeile“ oder „beim Empfangen von Daten“ nicht existiert und es unmöglich ist, Zahlen dynamisch in eine Spalte zu zeichnen.

Ein ähnlicher Ansatz wurde in Form der Auswahl verwendet

2. Für die Anzeige einer Zeile mit aktuellen Preisen war FormattedString perfekt.

Unten finden Sie ein Codebeispiel.

&OnServerWithoutContext Function RemainingWhenActivatingStringsOnServer(nom)RecordSet = InformationRegisters.ProductPrices.CreateRecordSet(); RecordSet.Selection.Product.Value = nom; RecordSet.Selection.Product.Use = True; Recordset.Read(); ArrayFormatStrings = Neues Array; Führen Sie für jede festgelegte Zeile aus dem Datensatzsatz den Zyklus Array of Formatted Rows.Add(New Formatted Row(Set Row.Price Type.Name,WebColors.Blue)); durch. Array of FormattedStrings.Add(New FormattedString(" " + String(SetString.Price) + " ")); EndCycle; Return New FormattedString(ArrayFormatStrings); // Den Inhalt des Handlers einfügen. EndFunction

3. Um Verzeichnisse, Salden und Preise in die mobile Anwendung zu laden, wurde ein Webservice verwendet, der als Input eine Parameterstruktur erhält und als Output einen Wertespeicher zurückgibt. Eine weitere unangenehme Entdeckung war, dass die Börse abstürzte, weil die Verarbeitung auf der Serverseite zu lange dauerte. Es scheint, dass es eine Art Zeitüberschreitung gibt, nach der die Anwendung „glaubt“, dass die Verbindung unterbrochen wurde (obwohl tatsächlich noch Daten in der Arbeitsdatenbank über eine WS-Verbindung verarbeitet werden), und den Austausch mit einem Fehler stoppt .

Um dies zu vermeiden, wurde beschlossen, den gesamten Austausch in Teile aufzuteilen und den Schwerpunkt wieder auf die mobile Anwendung zu legen. Diese. Synchronisieren Sie zuerst die Posten, dann die Gegenparteien, dann die Salden usw.

4. Um Berichte zu erhalten, wird der gleiche Ansatz wie in der 1C: Orders-Konfiguration verwendet. Ein Webdienst mit Parametern wird aufgerufen, ein Tabellenkalkulationsdokument wird auf der Serverseite der Arbeitsdatenbank generiert und anschließend wird das fertige Tabellenkalkulationsdokument an die mobile Anwendung zurückgegeben.

Am Beispiel der mobilen Anwendung „1C: Managing Our Company“ (abgekürzt UNF) möchte ich die Entwicklung einer mobilen Geschäftsanwendung von ihren Anfängen und der Veröffentlichung der allerersten Version bis heute zeigen. Die App hat derzeit über 220.000 Downloads; Die Anwendung ist kostenlos, verfügt jedoch über kostenpflichtige Optionen (implementiert durch In-App-Käufe).


Die erste Version des mobilen UNF wurde 2012 auf einer der ersten Versionen der mobilen Plattform 1C:Enterprise erstellt. Zu dieser Zeit gab es bereits eine Client-Server-Konfiguration „1C: Management eines Kleinunternehmens“ (damals hieß es so), ein Programm zur Automatisierung der Aktivitäten eines Kleinunternehmens – Vertrieb, Beschaffung, Kunden- und Lieferantenstamm, Lager Management, Produktion usw.

Wie die meisten mobilen Anwendungen, die auf der plattformübergreifenden mobilen Plattform 1C:Enterprise geschrieben wurden, ist mobile UNF für iOS, Android und Windows verfügbar.

Die Aufgabe lautete: eine mobile Anwendung zu erstellen, die einen Teil der Arbeitsszenarien der „großen“ UNF unterstützt. Die Anwendung muss sowohl autonom arbeiten als auch Daten mit der „großen“ UNF synchronisieren können (im Folgenden werde ich das Wort „groß“ in Bezug auf die Client-Server-Version der UNF ohne Anführungszeichen schreiben, um den Text nicht zu überladen). Bei der Zusammenarbeit mit einem großen CNF müssen Szenarien „mobiler“ Mitarbeiter – Außendienstmitarbeiter, Servicetechniker, Verkäufer – unterstützt werden.

Die erste Version wurde in einem Mannmonat erstellt. Bei der Erstellung einer mobilen Anwendung wurden einige Metadatenobjekte (Verzeichnisse, Dokumente) auf Basis von Objekten der großen UNF implementiert. Einige Funktionen mussten jedoch von Grund auf programmiert werden, beispielsweise der Prozess des Datenaustauschs mit einer großen UNF. Allerdings mussten wir in Bezug auf den Datenaustausch tatsächlich ein wenig programmieren – wir verwendeten Standardplattformmechanismen (insbesondere Austauschpläne), die die Codierung auf ein Minimum reduzieren.

Die 1C-Plattform vereinfacht nicht nur die Arbeit mit der Datensynchronisierung, sondern erleichtert auch die Erstellung einer mobilen Anwendung mit vollem Funktionsumfang erheblich, indem sie dem Entwickler Schnittstellenkomponenten wie Listen (tabellarisch und hierarchisch) mit der Möglichkeit zur Suche danach und Eingabefelder zur Verfügung stellt mit Suche, Tabellen für Berichte, einer großen Auswahl an Diagrammen, der Möglichkeit zum Drucken über WLAN und Bluetooth-Drucker usw.

Funktionen der mobilen Version

Es gibt zwei Hauptstrategien für die Auswahl der Funktionalität einer mobilen Anwendung. Die erste lautet „eine Anwendung – eine Funktion“. Zum Beispiel eine mobile Anwendung für den Wareneingang in einem Lager, die lediglich den Barcode eines Produkts mit einer eingebauten Kamera scannen und Informationen über das empfangene Produkt an den Server senden kann. Die zweite Strategie besteht darin, eine mobile Anwendung mit umfassender „All-in-One“-Funktionalität zu erstellen. Beide Ansätze sind gültig; Beim Schreiben einer mobilen UNF haben wir den zweiten Ansatz gewählt – unsere Anwendung deckt damit viele Aufgaben ab Fachbereich und kann völlig autonom arbeiten und so den Anforderungen einer kleinen Organisation gerecht werden. Ein weiterer Vorteil dieses Ansatzes besteht darin, dass der Benutzer mit mehreren zusammenhängenden Funktionen einer Anwendung arbeiten kann.

Mobile UNF nutzt die Funktionalität umfassend Mobilgerät, insbesondere:

  • Mit der eingebauten Kamera des Geräts kann das Produkt beim Ausfüllen der Produktkarte fotografiert, Barcodes und QR-Codes gelesen werden
  • Eine Zahlungsrechnung kann dem Kunden per E-Mail oder SMS zugesandt werden
  • Der Kontrahent kann ausgewählt werden Adressbuch Mobilgerät
  • Wenn die Gegenpartei eine Telefonnummer hat, können Sie die Gegenpartei mit einem Tastendruck anrufen oder eine SMS senden; wenn eine E-Mail angegeben ist, senden Sie einen Brief; wenn eine Adresse angegeben ist, zeigen Sie diese auf der Karte an
  • Sie können Dokumente über WLAN und Bluetooth auf Druckern drucken
Es besteht die Möglichkeit, die mobile UNF-Datenbank auf Yandex.Disk zu sichern und wiederherzustellen und die Datenbank per E-Mail zu versenden.

Die Konfiguration des mobilen UNF sieht recht spartanisch aus (siehe Screenshot unten):

  • 8 Nachschlagewerke (in der großen UNF gibt es 273 Nachschlagewerke)
  • 7 Dokumente (im großen UNF – 125)
  • 3 Dokumentenjournale (im großen UNF – 24)
  • 3 Informationsregister (im großen UNF – 357)
  • 4 Akkumulationsregister (im großen UNF – 64)

Hauptziele der mobilen UNF

Aber trotzdem große Menge Anhand der verwendeten Gegenstände erwies sich das Produkt als recht funktionsfähig.

Ein interessantes Merkmal des mobilen UNF ist, dass es oft von Leuten genutzt wird, die noch nie von 1C gehört haben (ja, es gibt solche in unserem Land), die eine mobile Anwendung benötigen, um Aufzeichnungen über ihr kleines Unternehmen zu führen ( zum Beispiel Heimwerken). Sie haben es einfach durch Suchen gefunden Google Play oder AppStore, lesen Sie die Rezensionen - und beginnen Sie mit der Arbeit.

Autonomer Betrieb

Dieses Arbeitsszenario ist für sehr kleine Organisationen gedacht, bei denen die gesamte Buchhaltung ausschließlich auf einem mobilen Gerät erfolgt. Dies könnte zum Beispiel ein „Heimgeschäft“ sein – die Herstellung von Schmuck zu Hause und den Verkauf auf der VKontakte-Seite. Oder vielleicht sogar ein kleiner Laden – ich habe persönlich einen Fall gesehen, in dem ein Spielzeugladen, der sich auf den Verkauf von Lego-Konstrukteuren spezialisiert hat, Aufzeichnungen ausschließlich für … führte mobile Version UNF. Wenn man bedenkt, dass der mobile UNF auf WLAN- und Bluetooth-Druckern drucken kann, lassen sich damit eine ganze Reihe von Problemen lösen. Mobile UNF unterstützt die Auftragsabwicklung, die Erfassung von Ein- und Ausgangsrechnungen sowie die Abrechnung von Geldeingängen und -ausgaben.

Arbeiten im Synchronisationsmodus mit dem Server (erste Versionen)

Im Modus der Synchronisierung mit dem Server im mobilen UNF in früheren Versionen war die Buchhaltungsfunktion nicht mehr verfügbar und die Arbeit darin wurde hauptsächlich mit Bestellungen (Annahme und Ausführung von Bestellungen) und damit verbundenen Aktivitäten (Pflege von Verzeichnissen von Gegenparteien, Waren und Dienstleistungen, usw.).

Verzeichnisse von Waren und Dienstleistungen, Auftragnehmern und Bestellungen wurden mit der großen UNF synchronisiert.


Datenaustausch zwischen mobilen und großen UNF in den ersten Versionen

Von Mobilgeräten eingegebene Bestellungen landeten in einem großen UNF und landeten bei der Synchronisierung auf den Mobilgeräten der für die Bestellungen Verantwortlichen. Dokumente wie Kassenbelege, Warenverkäufe usw., die auf mobilen Geräten erfasst wurden, gingen an die große UNF, wurden aber nicht zwischen mobilen Geräten synchronisiert. Alle Arbeiten in der mobilen Anwendung im Synchronisierungsmodus wurden hauptsächlich rund um Aufträge durchgeführt – deren Annahme und Ausführung; eine vollständige Abrechnung wurde nicht auf dem mobilen Gerät durchgeführt; hierfür war die Verwendung eines großen CNF auf dem Computer erforderlich.

Dies war in den ersten Versionen der Fall, aber später haben wir die Situation geändert und die Liste der Szenarien für die Verwendung von mobilem CNF erweitert, um den Benutzern die Arbeit damit komfortabler zu machen.

Ein wenig über die Datensynchronisierung

Der Datenaustausch zwischen mobilen und großen UNF erfolgt über Webdienste; Die mobile UNF ruft Webdienste auf, die auf der großen UNF-Seite bereitgestellt werden. Die Datenstrukturen in großen und mobilen CNFs sind unterschiedlich; Beim Entwurf der Architektur haben wir zwei Optionen für den Datenaustausch berücksichtigt:
  1. Erstellen Sie eine Datenstruktur in einem großen CNF, die die Datenstruktur eines mobilen CNF dupliziert, und tauschen Sie Daten eins zu eins mit dem mobilen CNF aus. Wenn Sie Daten in einer großen UNF ändern, müssen Sie die neuen/geänderten Daten in diese Duplikatstruktur übertragen und nach dem Datenaustausch mit der mobilen UNF die Daten, die vom mobilen Gerät stammen und sich in der Duplikatstruktur befinden, in die große UNF konvertieren Format.
  2. Tauschen Sie Daten direkt mit den Strukturen einer großen UNF aus und konvertieren Sie Daten „on the fly“ gemäß den Austauschregeln.
Wir haben uns für die zweite Option entschieden. Die erste Option versprach zwar einige Vorteile im Zusammenhang mit der Einfachheit des eigentlichen Datenaustauschs, konnte die Situation jedoch nicht gut bewältigen neue Version mobile UNF die Datenstruktur geändert (erweitert); Damit der Eins-zu-Eins-Datenaustausch weiterhin funktioniert, wäre ein Update des Servers erforderlich, große UNF. Was aus vielen Gründen inakzeptabel war.

Die in der Plattform implementierten Datenaustauschmechanismen übernehmen den Großteil der Arbeit bei der Erstellung von Paketen für die Datensynchronisierung, sodass Sie den Programmieraufwand auf ein Minimum reduzieren können. Während des Austauschprozesses wird der Standardmechanismus der 1C:Enterprise-Plattform verwendet – der Datenaustauschmechanismus; Für jede mobile UNF wird in der großen UNF ein Datenaustauschknoten erstellt. In der großen und mobilen UNF wird ein Änderungsregistrierungsdienst verwendet, um Daten zu verfolgen, die seit der letzten Synchronisierung usw. geändert wurden.

Die mobile Anwendung initiiert den Datenaustausch mithilfe der Plattformmechanismen, generiert ein Austauschpaket (das die Kennung der mobilen Anwendung und seit der letzten Synchronisierung auf der mobilen UNF aktualisierte Daten enthält) und sendet es an die große UNF. Basierend auf den Informationen im Startpaket bereitet der große CNF die seit der letzten Synchronisierung im großen CNF geänderten Daten für den mobilen CNF auf und verpackt sie in Paketen. Pakete im XDTO-Format sind in XML serialisierte 1C-Metadatenobjekte; Die Größe jedes Pakets beträgt nicht mehr als 500 Objekte.

Mobile UNF sammelt diese Daten Paket für Paket. Nach dem Herunterladen des letzten Pakets beginnt das mobile UNF mit der Verarbeitung der empfangenen Daten – Prozessdokumente, Aufzeichnungsverzeichnisse usw. Im Falle eines Verbindungsabbruchs wird die Wiederaufnahme von Paketen unterstützt; Wir haben den Wiederaufnahmemechanismus für CNF selbst geschrieben (er ist nicht in der Plattform enthalten), aber da mobiles CNF im Quellcode bereitgestellt wird, können Entwickler sich die Implementierung des Mechanismus ansehen und ihn für ihre Anwendungen ausleihen.

Während der anfänglichen Synchronisierung eines mobilen CNF mit einem großen CNF können Sie nicht im mobilen CNF arbeiten – es erscheint ein modales Fenster, das den Fortschritt des Prozesses anzeigt. Alle nachfolgenden Synchronisierungen erfolgen im Hintergrund und blockieren nicht den Betrieb des mobilen UNF.

Vollständige Liste der zwischen mobilen und großen UNF ausgetauschten Objekte:

  • Verzeichnisse:
    • Nomenklatur
    • Gegenparteien
    • eine Liste von Benutzern
  • Dokumentation:
    • Kundenbestellungen
    • Quittung an der Kasse
    • Spesen aus der Kasse
    • Kaufrechnung
    • Verkaufsrechnung
    • Produktion
  • Register (aber nicht alle Preise, sondern nur die Hauptpreise):
    • PreiseLieferanten
    • Preise der Produkte
  • Informationen zur Organisation:
    • Name
    • Steuerinformation
In der großen UNF sind die Produkte mit Bildern versehen – Bildern der tatsächlichen Produkte. Um den Datenverkehr zu minimieren, laden wir keine Bilder in das mobile UNF, sondern sie werden bei Bedarf geladen – zum Beispiel, wenn wir eine Produktkarte im mobilen UNF öffnen.


Produktkarte mit Produktbild

Weiterentwicklung der Anwendung – Entwicklung von Anwendungsfällen

Eine typische Situation ist, dass ein Unternehmen wächst und die Funktionalität von mobilem CNF auf einem mobilen Gerät nicht mehr ausreicht. Ein weiterer Mitarbeiter (oder mehrere Mitarbeiter) erscheint im Unternehmen und muss ebenfalls mit Aufträgen arbeiten.

In den ersten Versionen des mobilen UNF war das Bewegungsszenario recht einfach: Die im mobilen UNF eingegebenen Daten wurden in die Datenbank des großen UNF kopiert, und der Benutzer musste nun Aufzeichnungen auf dem Computer führen. In diesem Fall arbeitet das mobile UNF im Auftragsmodus und es ist nicht mehr möglich, Aufzeichnungen zu führen (wie bei der Standalone-Version des mobilen UNF).

Für den Endbenutzer war das natürlich nicht ganz praktisch – er war es bereits gewohnt, Aufzeichnungen von einem mobilen Gerät aus zu führen, aber hier war er gezwungen, an der Computertastatur zu sitzen. Damit wird nicht jeder zufrieden sein.

Aus diesem Grund haben wir die Liste der Szenarien für den Einsatz mobiler UNF erweitert. Die Entstehung unseres Cloud-Dienstes http://1cfresh.com, basierend auf Cloud-Technologie 1cFrisch. Es ist jetzt möglich, große CNF in der Cloud zu platzieren. Wir haben drei Szenarien für die Verwendung einer mobilen Anwendung beschrieben, wenn das Unternehmen des Benutzers wächst:

  1. Ziemlich kleines Unternehmen. Die Abrechnung erfolgt auf einem mobilen Gerät.
  2. Das Geschäft wächst – Mitarbeiter sind erschienen. Sie können mobile UNF auf mobilen Geräten Ihrer Mitarbeiter installieren. Gleichzeitig müssen Sie in der Lage sein, Daten zwischen mobilen Geräten auszutauschen, um Daten zu synchronisieren. Aus diesem Grund haben wir uns entschieden, keinen Dateiaustausch zu verwenden, sondern zur Synchronisierung (und gleichzeitig zur Sicherung) eine Version des großen UNF zu verwenden, die sich in der Cloud http://1cfresh.com befindet. Wenn Sie dieses Skript aktivieren, wird in der http://1cfresh.com-Cloud eine Instanz eines großen CNF erstellt, dessen Datenbank zum Synchronisieren von Daten zwischen Mobilgeräten verwendet wird. Die Nutzung eines Mobilgeräts ist in diesem Szenario für jeden kostenlos Zusatzgerät Wir berechnen 75 Rubel/Monat, Sie können in diesem Szenario nicht mehr als drei Geräte verwenden. Gleichzeitig können Benutzern mobiler Geräte vordefinierte Rollen zugewiesen werden – Vertriebsmitarbeiter, Servicetechniker, Verkäufer (es ist auch möglich). detaillierte Einrichtung Rollen); Der Funktionsumfang der mobilen Anwendung wird entsprechend eingeschränkt. Sie können auch über einen Web-Client oder Thin Client mit einem großen CNF arbeiten, der in der Cloud gehostet wird, aber die Funktionalität des Cloud-CNF wird auf die Funktionalität des mobilen CNF reduziert. Es ist jedoch nicht notwendig, direkt in der UNF-Cloud zu arbeiten – alle Arbeiten können nur von mobilen Geräten aus erledigt werden.
  3. Das Unternehmen hat sich zur Größe eines mittelständischen Unternehmens entwickelt. In diesem Fall ist es sinnvoll, eine vollwertige Version eines großen UNF in der Cloud zu mieten, um (über einen Webclient oder Thin Client) zusätzliche Funktionalität zu erhalten – CRM (geplant ist, CRM in das mobile UNF einzubinden, aber im Moment ist es nur in erhältlich große Version), Lagerverwaltung, erweiterte Preisgestaltung, die Möglichkeit, mit Banken zusammenzuarbeiten usw. In diesem Fall ist die Anzahl der mobilen Geräte, die mit einem großen CNF arbeiten, nicht begrenzt (für jedes Gerät wird eine zusätzliche Gebühr gemäß Tarif erhoben, wie für einen Arbeitsplatz; 1 Lizenz für CNF in Fresh oder für ein „verpacktes“ CNF gibt). das Recht auf kostenlose Nutzung einer mobilen Anwendung).

Erfahrung mit der Monetarisierung von Anwendungen

Die mobile UNF-Anwendung ist, wie ich bereits geschrieben habe, kostenlos. Vor einiger Zeit haben wir beschlossen, unsere Anwendung zu monetarisieren (mithilfe der In-App-Kauffunktionalität, die in der mobilen 1C:Enterprise-Plattform Version 8.3.8 implementiert ist), zusätzliche Funktionalität zu verkaufen – Produktion und die Möglichkeit der Synchronisierung mit zusätzlichen mobilen Geräten.


Die Produktionsfunktionalität ist ein einmaliger Kauf und die Möglichkeit zur Synchronisierung mit zusätzlichen Mobilgeräten ist in einem Abonnement enthalten, das jeden Monat erneuert werden muss. Interessanterweise war mobile UNF nur drei Wochen nach der Einführung der Einkaufsfunktion unter den Top 15 bei Google Play für den Verkauf von Geschäftsanwendungen.

Abschluss

Mobile UNF ist ein relativ kleines (im Hinblick auf das Quellcodevolumen), aber recht beliebtes Produkt. Wir hoffen, dass die Geschichte seiner Entwicklung für die Entwickler mobiler Endbenutzerprodukte nützlich sein wird, die sowohl 1C-Technologien als auch andere Entwicklungstools verwenden.

Es wäre nützlich, Sie daran zu erinnern, dass Sie auf der mobilen 1C-Plattform Anwendungen erstellen können, die nicht nur mit dem 1C-Server-Backend interagieren; Protokolle, die für den Datenaustausch in mobilen Anwendungen auf der 1C-Plattform verwendet werden, sind plattformunabhängig (Web- und HTTP-Dienste, Unterstützung für XML und JSON usw.). Wenn Sie also schnell und dynamisch einen plattformübergreifenden (Android, iOS, Windows) mobilen Client entwickeln müssen, mit der Möglichkeit, offline ohne ständige Internetverbindung für Ihre Geschäftsanwendung zu arbeiten, dann ist die mobile 1C-Plattform möglicherweise die beste Wahl für dich.

In diesem Artikel gehen wir auf die ersten Einstellungen ein, die vorgenommen werden müssen, bevor Sie mit der Arbeit mit der mobilen Anwendung beginnen können.
Die mobile Anwendung „1C-Rating: Mobile Waiter“ wird in Verbindung mit der Konfiguration „1C-Rating: Restaurant“ verwendet, mit der sie durch periodischen Datenaustausch verbunden ist. Daher müssen Sie vor der Installation der Konfiguration „1C-Rating: Mobiler Kellner“ die entsprechenden Einstellungen im Programm „1C-Rating: Restaurant“ vornehmen.

Aufbau der Informationsbasis „1C-Bewertung: Restaurant“

Alle bei der Arbeit mit der mobilen Anwendung verwendeten Regulierungs- und Referenzinformationen werden in der Informationsdatenbank der Konfiguration „1C-Rating: Restaurant“ ausgefüllt. Bevor Sie einen Austausch zwischen der mobilen Anwendung und der Konfiguration „1C-Bewertung: Restaurant“ aktivieren und durchführen, müssen Sie in der Konfiguration „1C-Bewertung: Restaurant“ folgende Daten ausfüllen:
  • Verzeichnis Organisation;
  • Verzeichnis Aktie;
  • Verzeichnis Kasse;
  • Verzeichnis Saal;
  • Verzeichnis Modifikatoren;
  • Informationsregister Lebensmittelmodifikatoren;
  • Informationsregister Vordefinierte Bestellpositionen;
  • Informationsregister Routing für den Briefmarkendruck;
  • Verzeichnis Menütypen;
  • Verzeichnis Einrichten des RMK;
  • Verzeichnis Benutzer.

Benutzer einrichten

Benutzer, die mit der mobilen Anwendung arbeiten, müssen vorab in der 1C-Rating: Restaurantinformationsdatenbank angelegt werden. Für den Benutzer der mobilen Anwendung muss zusätzlich zu den Grundeinstellungen und Rollen im Zusammenhang mit der Konfiguration „1C-Rating: Restaurant“ eine Rolle festgelegt werden, die es dem Benutzer ermöglicht, mit der mobilen Anwendung zu arbeiten.

Automatischer Stempeldruck

Nach der Bestellung über ein mobiles Gerät besteht die Möglichkeit, Stempel am Zubereitungsort (Küche, Bar) auszudrucken. Der Stempeldruck erfolgt nach folgendem Algorithmus: In der mobilen Anwendung erstellt oder ändert der Nutzer Bestellungen, die an die zentrale Informationsdatenbank der Konfiguration „1C-Rating: Restaurant“ übertragen werden. In der zentralen Datenbank werden sie im Informationsregister gesammelt Warteschlange für den Stempeldruck. Mit der in den Einstellungen der Buchhaltungsparameter angegebenen Häufigkeit wird ein Verfahren gestartet, das Stempel aus diesem Informationsregister an die Vorbereitungsorte druckt.
Um diese Funktion zu aktivieren, müssen Sie in den Gruppenabrechnungseinstellungen zur Konfiguration „1C-Bewertung: Restaurant“ gehen Mobiler Kellner Legen Sie die folgenden Einstellungen fest:
  • Drucken Sie mobile Kellnerstempel– Wenn Sie diese Option aktivieren, können Sie Briefmarken mit Informationen zur Druckvorbereitung versenden.
  • Benutzer zum Drucken mobiler Kellnerstempel– Sie müssen einen Benutzer aus dem Verzeichnis auswählen Benutzer, in dessen Auftrag Druckvorgänge durchgeführt werden. Um Stempel zu drucken, müssen Sie eine Sitzung im Namen des angegebenen Benutzers starten. Um sicherzustellen, dass Stempeldruckvorgänge die Arbeit der Benutzer nicht verlangsamen, wird empfohlen, einen separaten Benutzer zu erstellen (z. B. „RMK ausführen“ oder „Stempel drucken“) und eine separate 1C:Enterprise-Sitzung mit diesem Benutzer zu starten, um Hintergrundarbeiten durchzuführen Drucken.
  • Druckintervall für mobile Kellnerstempel– Diese Einstellung gibt das Zeitintervall in Sekunden für den Druck an. Füllung diesen Parameter, ist für den Stempeldruck zwingend erforderlich. Der Wert dieses Parameters wird basierend auf den Anforderungen einer bestimmten Organisation ausgewählt; der empfohlene Wert beträgt 10 Sekunden.

Veröffentlichung auf einem Webserver

Für Zusammenarbeit mobile Anwendung und Festnetz Informationsbasis„1C-Bewertung: Restaurant“ muss die entsprechende Infrastruktur organisieren:
1. Der Arbeitsbereich des Kellners muss konfiguriert werden drahtloses Netzwerk W-lan.
2. Auf dem Computer, auf dem die Informationsbasis „1C-Bewertung: Restaurant“ veröffentlicht wird, muss ein Webserver installiert und konfiguriert sein (funktioniert mit Apache-Webserver oder IIS).
3. Die 1C:Enterprise-Plattform- und Webserver-Erweiterungsmodule müssen auf demselben Computer installiert sein. Die Installation der Module erfolgt während der Plattforminstallation.


4. Die Informationsbasis „1C-Bewertung: Restaurant“ muss veröffentlicht werden.
5. Der Computer mit der veröffentlichten Informationsbasis und die mobilen Geräte müssen sich im selben lokalen Netzwerk befinden.
Um die Informationsdatenbank „1C-Rating: Restaurant“ zu veröffentlichen, müssen Sie „1C:Enterprise“ im Konfiguratormodus starten (Menü). Verwaltung - Veröffentlichung auf einem Webserver). Im sich öffnenden Fenster müssen Sie die folgenden Aktionen ausführen:
  • Geben Sie den Publikationsnamen manuell in das Feld ein Name, und es kann nur aus Zeichen des lateinischen Alphabets bestehen. Vorname wird später in den Einstellungen der mobilen Anwendung eingetragen.
  • Auf dem Feld Webserver Geben Sie den Typ des Webservers an, auf dem Sie veröffentlichen.
  • Auf dem Feld Katalog Geben Sie den Pfad zu dem Verzeichnis an, in dem sich die Dateien befinden, die das virtuelle Verzeichnis beschreiben.
  • Gehen Sie zu Lesezeichen HTTP-Dienste und aktivieren Sie die Einstellung Veröffentlichen Sie standardmäßig HTTP-Dienste. Markieren Sie im tabellarischen Abschnitt das HTTP-Service-Flag Daten in der Liste der verfügbaren Dienste.
  • Drücken Sie den Knopf Veröffentlichen. Nach der Veröffentlichung müssen Sie den Server neu starten.

Einrichten der Konfiguration „1C Rating: Mobile Waiter“

Die mobile Anwendung „1C-Rating: Mobile Waiter“ kann im offiziellen Online-Shop Google Play kostenlos auf mobile Geräte heruntergeladen werden. Um die Anwendung kommerziell nutzen zu können, müssen Sie die erforderliche Anzahl an Gerätelizenzen erwerben und die mobile Anwendung auf jedem mobilen Gerät aktivieren. Um die Funktionalität der mobilen Anwendung zu studieren, steht ein Demomodus zur Verfügung, für den kein Kauf einer Gerätelizenz erforderlich ist.
Die Installation der mobilen Anwendung „1C-Rating: Mobile Waiter“ erfolgt automatisch und unterscheidet sich nicht von der Installation anderer mobiler Anwendungen. Aktualisierungen der Anwendung „1C-Rating: Mobile Waiter“ sind im offiziellen Google Play-Onlineshop ohne Einschränkungen und Registrierung beim Unternehmen 1C-Rating verfügbar.
Beim ersten Start der mobilen Anwendung erscheint ein Formular zur Auswahl eines Betriebsmodus. Ihnen wird die Auswahl zwischen zwei Optionen angeboten: Demo-Modus Und Aktivieren Sie die Anwendung.
Der Demomodus kann beim ersten Start der mobilen Anwendung oder später, nach der Aktivierung, im Einstellungsformular über den gleichnamigen Schalter aktiviert werden.
Wenn dieser Modus aktiviert ist, wird die Datenbank der mobilen Anwendung automatisch mit Demodaten gefüllt, sodass Sie sich besser mit der vertraut machen können Funktionalität Produkt.

Anwendungsaktivierung

Um mit der mobilen Anwendung und dem bidirektionalen Datenaustausch mit der Buchhaltungsdatenbank 1C-Rating: Restaurantkonfiguration arbeiten zu können, müssen Sie die Anwendung aktivieren.
Es gibt zwei Möglichkeiten, eine mobile Anwendung zu aktivieren:
  • Internetaktivierung.
  • Offline-Aktivierung.

Internetaktivierung

Um die Internetaktivierung durchzuführen, müssen Sie:
  1. Bieten Sie mobilen Geräten Zugriff auf das Internet.
  2. Geben Sie die Registrierungsnummer in das Fenster ein Anwendungsaktivierung und drücken Sie die Taste aktivieren Sie.

Offline-Aktivierung

Die Offline-Aktivierung erfolgt, wenn keine Verbindung des Mobilgeräts mit dem Internet möglich ist.
Um eine Offline-Aktivierung durchzuführen, müssen Sie:
  1. Erhalten Sie eine Registrierungsnummer für mobile Anwendungen. Dazu müssen Sie sich an die Partner des 1C-Rating-Unternehmens in Ihrer Region oder direkt an das 1C-Rating-Unternehmen wenden.
  2. Im Fenster Anwendungsaktivierung klick auf den Link Offline-Anwendungsaktivierung.
  3. Im Fenster Offline-Anwendungsaktivierung Geben Sie Ihre Registrierungsnummer für die mobile Anwendung ein.
  4. Drücken Sie den Knopf Holen Sie sich den Anwendungscode. Es öffnet sich ein Fenster mit dem Anwendungscode. Dieser Code sind dem 1C-Rating-Unternehmen vorzulegen. Die Antwort wird gegeben Aktivierungscode.
  5. Im Fenster wird der Aktivierungscode eingegeben Offline-Anwendungsaktivierung im entsprechenden Feld ein. Auf Knopfdruck aktivieren Sie Die mobile Anwendung wird aktiviert.
  6. Nach erfolgreicher Aktivierung ist die mobile Anwendung einsatzbereit.

Wichtig!

Nach der Neuinstallation der mobilen Anwendung ist eine erneute Aktivierung erforderlich.

Verbindungsaufbau zur Informationsdatenbank „1C-Bewertung: Restaurant“

Nach der Aktivierung der mobilen Anwendung (mit einer der oben genannten Methoden) wird automatisch das Benutzerautorisierungsformular geöffnet. Bei der Erstautorisierung enthält das Formular folgende Felder:
  • Benutzer– der Benutzer, unter dem im „1C-Rating: Mobiler Kellner“ gearbeitet wird. Benutzer mobiler Geräte müssen zuvor in der Kon„1C-Rating: Restaurant“ angelegt werden.
  • Passwort– Passwort zur Benutzerautorisierung, angegeben in den Benutzereinstellungen, in der Konfiguration „1C-Rating: Restaurant“.
  • Serveradresse– Dieses Feld gibt die IP-Adresse des Computers an, auf dem der Webserver läuft.
  • Hafen– Der Standardwert ist 80. Wenn der Webserver auf einem anderen Port konfiguriert wurde, müssen Sie hier dessen Nummer angeben.
  • Name der Veröffentlichung– der Name, der bei der Veröffentlichung des HTTP-Dienstes in der Kon„1C-Rating: Restaurant“ angegeben wurde.


Die Autorisierung erfolgt durch Anklicken einer Schaltfläche Verbinden. Serveradresse und Name der Veröffentlichung enthalten technische Daten zum Anschluss und werden beim ersten Anschluss ausgefüllt. Beim nächsten Start werden diese Felder ausgeblendet und sind nur im Einstellungsformular verfügbar.

Wichtig!

Bei Ihrem Benutzernamen und Publikationsnamen muss die Groß-/Kleinschreibung beachtet werden. Wenn das Register nicht übereinstimmt, wird die Autorisierung verweigert.

Wenn Sie einen Benutzer erneut autorisieren oder ändern, geben Sie einfach den Benutzer an, geben Sie das Passwort ein und drücken Sie die Taste Verbinden.


Nach der Autorisierung öffnet sich das Bestelllistenformular und Sie können mit der Arbeit beginnen. Um eine Bestellung zu erstellen, klicken Sie auf den Button Neue Bestellung.

Verbindungsnachrichten

Beim Verbinden einer mobilen Anwendung mit der Konfiguration „1C-Rating: Restaurant“ können folgende Meldungen erscheinen:

1. „Es ist ein Netzwerkfehler aufgetreten“

Diese Meldung kann auftreten, wenn:

  • Das Wi-Fi-Netzwerksignal geht verloren.
  • Der Webserver ist nicht richtig konfiguriert.
  • Der Webserver funktioniert nicht mehr. Sie müssen den Webserver neu starten.
  • Die angegebene Webserveradresse und/oder der angegebene Port sind falsch.
2. „Unzureichende Rechte zur Nutzung der Ressource mit dieser HTTP-Methode“

Diese Meldung bedeutet, dass für den Benutzer keine Rolle aktiviert ist Zugriff auf mobile Kellnerobjekte.
3. „Die angeforderte URL /REST/hs/Data/Registration wurde auf diesem Server nicht gefunden.“
Eine Autorisierungsmeldung erscheint, wenn:
Der Publikationsname ist falsch.
Der Name der Publikation im Mobile Waiter unterscheidet sich von dem Namen, der im Restaurant-Konfigurator beim Einrichten der Publikation angegeben wurde (Sie müssen prüfen, ob der Publikationsname übereinstimmt, das Buchstabenregister ist wichtig).
4. „1C:Enterprise 8-Anwendungsfehler. HTTP: Nicht gefunden»
Diese Meldung erscheint, wenn beim Einrichten der Veröffentlichung kein HTTP-Dienst ausgewählt wurde. Es ist notwendig, das Vorhandensein von Flags in der Einstellung zu überprüfen Veröffentlichen Sie HTTP-Dienste standardmäßig und im tabellarischen Teil der Zeile Daten.

  • (3475)

Voreinstellungen

Bevor Sie mit der Arbeit beginnen, müssen Sie das Stammzertifikat des 1C:Link-Dienstes auf Ihrem Mobilgerät installieren.

In den Einstellungen der mobilen Anwendung müssen Sie den Pfad zur über 1C:Link veröffentlichten Informationsdatenbank angeben. Eine Besonderheit bei der Arbeit mit mobilen Anwendungen über „1C:Link“ besteht darin, dass die Verbindung zu Webdiensten über deren Namen und nicht über Pseudonyme (Aliase) erfolgt. In einigen mobilen Anwendungen (z. B. „1C:DO“) wird die Verbindungszeichenfolge automatisch generiert und erfordert keine Angabe des Webdienstnamens.

Funktionen zum Einrichten mobiler Anwendungen

1C: Bestellungen

  • Gehen Sie in der Informationsdatenbank zum Abschnitt „Administration“, wählen Sie den Menüpunkt „CRM und Vertrieb“, aktivieren Sie das Kontrollkästchen „Datensynchronisierung mit der mobilen 1C-Anwendung zulassen: Kundenbestellungen“, klicken Sie auf den Link „Synchronisierungseinstellungen“ und fügen Sie hinzu eine Einstellung für den Benutzer.
  • Login: 1C-Benutzerlogin
  • Die Einstellung „1C:LINK“ ist aktiviert
  • Tunnelname:<ваш-туннель>
  • Die Einstellung „SSL“ muss aktiviert sein, um mit der Informationssicherheit über HTTPS zu arbeiten, und deaktiviert sein, um über HTTP zu funktionieren
  • Katalog: <путь веб-приложения>

Mobiles Dokumentenmanagement

  • Aktivieren Sie in den Infobase-Einstellungen die Arbeit mit dem mobilen Client.
    Gehen Sie dazu als Benutzer mit Administratorrechten in die Informationsdatenbank, wählen Sie den Menüpunkt „Einstellungen und Verwaltung“ – „Programmeinstellungen“ – „Datenaustausch“ und aktivieren Sie die Checkbox „Mobile Clients verwenden“.
  • Verbindungsadresse: https://<ваш-туннель>.Webseite/<путь веб-приложения>
  • Login: 1C-Benutzerlogin
  • Passwort: sein Passwort

Bitte beachten Sie, dass Sie zum Arbeiten mit der mobilen Anwendung Version 1C: Document Flow 8 mindestens 1.3.1.3 KORP installiert haben müssen

1C: UNF

  • Gehen Sie in den Synchronisierungseinstellungen der mobilen Anwendung „1C: UNF“ zum Abschnitt „Anderer Dienst“.
  • Geben Sie im Feld „Bewerbungsadresse“ ein (ohne ru_RU)
  • Geben Sie den Benutzernamen und das Passwort des Infobase-Benutzers an und klicken Sie auf die Schaltfläche „Anmelden“.

1C: ERP-Monitor

  • Login: 1C-Benutzerlogin
  • Passwort: sein Passwort
  • Die Einstellung „1C:LINK“ ist aktiviert
  • Tunnelname:<ваш-туннель>
  • Katalog: <путь веб-приложения>

Buchhaltungskunde 1cfresh

Zur Synchronisierung mit der in 1C: Link veröffentlichten Ukönnen Sie die mobile Anwendung „Accounting Client 1cfresh“ verwenden.

  • Gehen Sie in den Einstellungen der mobilen Anwendung „Accounting Client 1cfresh“ zum Abschnitt „Andere Dienste“.
  • Geben Sie im Feld „Basisadresse für Verbindung“ ein https://tunnel name.link.1c.ru/web-Anwendungspfad(ohne ru_RU)
  • Geben Sie den Benutzernamen und das Passwort des Infobase-Benutzers an und klicken Sie auf die Schaltfläche „Verbinden“.


  • Lernprogramm

Hallo, meine Lieben.

In diesem Artikel möchte ich Ihnen das neue Produkt „FBA Toolkit“ vorstellen, das den Prozess der Entwicklung einer mobilen Unternehmensanwendung auf 1C + Android erheblich vereinfacht.
„FBA-Toolkit“ ist:
- Entwicklung von „native“ Android-Anwendungen in nativer IDE in Java-Sprache;
- 1C: Enterprise 8.1 (8.2) als Datenquelle, Unternehmensinformationssystem.

Erstens wird das Framework für 1C-Programmierer nützlich sein, die Geschäftsanwendungen für Android entwickeln möchten, aber Schwierigkeiten haben, eine neue Plattform für sie zu beherrschen. Um mit der Entwicklung zu beginnen, reichen Grundkenntnisse in Java aus. Als Nächstes zeige ich Ihnen, wie Sie in nur wenigen Stunden einen funktionierenden Prototyp einer Client-Server-Anwendung erstellen.

Den Arbeitsplatz vorbereiten

Bevor mit dem eigentlichen Entwicklungsprozess begonnen wird, ist es notwendig, den Arbeitsplatz des Entwicklers vorzubereiten. Erforderlich:

1. Installieren und konfigurieren Sie:
- Java SDK + Eclipse + Android SDK;
- Webserver (IIS oder Apache);
- 1C: Unternehmen 8.1 (8.2)

2. Importieren Sie für Eclipse zwei Bibliotheksprojekte: ActionBarSherlock und ru_profu1c_fba aus dem SVN-Repository.

3. Installieren Sie die Konfigurationsverteilung „FBA“ und kombinieren Sie sie mit Ihrer 1C-basierten Anwendungslösung.

Der gesamte Vorkonfigurationsprozess wird in den Artikeln ausführlich beschrieben:
Vorbereiten des Arbeitsplatzes des Entwicklers
Installation der „FBA“-Konfigurationsverteilung
Kombination der „FBA“-Konfiguration mit einer Anwendungslösung und Veröffentlichung auf einem Webserver

Die Einrichtung sollte nicht viel Zeit in Anspruch nehmen und höchstwahrscheinlich haben Sie bereits einen Teil der erforderlichen Software installiert.

Anwendungsbeschreibung

Wir werden eine mobile Anwendung „Bericht an den Manager“ erstellen, die den Manager regelmäßig über den Stand der Dinge im Unternehmen informieren soll. Die Anwendung besteht aus 3 Bildschirmen:
  1. „Login“ – Benutzerautorisierung beim Starten des Programms.
  2. „Liste der Berichte“ ist der Hauptbildschirm unserer Anwendung. Es wird eine Liste der verfügbaren Berichte mit der Möglichkeit angezeigt, Daten aus der 1C-Datenbank anzuzeigen und zu aktualisieren.
  3. „Programmeinstellungen“ – hier legt der Benutzer Autorisierungsparameter und die Adresse des 1C-Servers fest und konfiguriert den Zeitplan für den automatischen Austausch mit dem 1C-Server.

Die Anwendung implementiert zwei Optionen zum Empfangen von Daten vom 1C-Server:

  1. Meldung „Waren im Lager“. Es wird auf dem Server generiert und als HTML-Dokument kompiliert; es wird einfach in der mobilen Anwendung angezeigt. Die einfachste Möglichkeit besteht darin, dass die Berichtsform festgelegt ist und nicht geändert werden kann.
  2. Bericht „Finanzkennzahlen“. Hierbei werden die Quelldaten für den Bericht in Form einer Tabelle abgerufen, die dann zur Erstellung des Berichts verwendet werden. Profis diese Option: freie Form der Berichtsausgabe, inkl. in Form von Grafiken und Diagrammen; Es besteht die Möglichkeit, Selektionen und Sortierungen zu installieren.

Erstellen einer mobilen Anwendungsvorlage in 1C

Die Entwicklung einer mobilen Anwendung beginnt in 1C, was nicht überraschend ist. Hier legen Sie die Zusammensetzung der Metadaten fest, konfigurieren das Austauschschema und generieren die Vorlage Ihrer zukünftigen mobilen Anwendung neu.

Erstellen Sie im Verzeichnis „Mobile Anwendungen“ ein neues Element mit dem Namen „An den Manager melden“ und der Kennung SAMPLE_REPORT_HEAD.

Wählen Sie in der Liste „Metadaten“ eine Gruppe aus "Externe Daten" und klicken Sie in der Symbolleiste auf die Schaltfläche „Hinzufügen“. Geben Sie die Parameter der neuen Tabelle wie in der Abbildung gezeigt ein:

"Index"- Testdarstellung des Meldeindikators, Zeile (250)
"Bedeutung"- numerischer Wert des Indikators, Zahl (15.2)
Die Namen der Spalten und der Tabelle selbst werden hier in der Regel auf Russisch angegeben und dienen zum Füllen der Tabelle mit Daten mithilfe der integrierten 1C-Sprache. Klicken Sie auf OK. Die Tabelle wird zum Metadatenbaum hinzugefügt. Für die mobile Anwendung werden die Namen automatisch ins Lateinische übersetzt.

Daher haben wir die Struktur der Wertetabelle (in Bezug auf 1C) vorbereitet, in die wir Daten für den Bericht „Finanzkennzahlen“ übertragen werden. Für die zweite Meldung „Waren im Lager“ werden die Daten als externe Datei übertragen.

Überprüfen Sie auf der Registerkarte „Exchange Scheme“, ob das Flag „Upload“ aktiviert ist. Das Flag „Laden“ ist nicht wichtig, weil Wir werden die von der mobilen Anwendung in 1C erhaltenen Änderungen an dieser Tabelle nicht verarbeiten.

Speichern Sie Ihre Änderungen. Klicken Sie in der Symbolleiste auf die Schaltfläche „Vorlage für mobile Anwendungen“ und legen Sie die Parameter Ihrer mobilen Anwendung fest

„Vorlagenverzeichnis“ – Pfad zum Verzeichnis, in dem die generierten Vorlagendateien für mobile Anwendungen gespeichert werden.

Geben Sie auf der Registerkarte „Basic“ den Namen des Pakets an; dies muss eine eindeutige Kennung sein. Wenn Sie eine Website haben, verwenden Sie diese zum Generieren des Präfixes. In diesem Beispiel habe ich angegeben ru.profi1c.samples.report.head

Auf der Registerkarte „Webdienst“ lautet die IP-Adresse 10.0.2.2; standardmäßig ist dies die Adresse Ihres Computers, wenn Sie über einen Android-Emulator darauf zugreifen. Geben Sie in den Feldern „Webservice-Name“ und „Anwendungsunterverzeichnis“ die Daten ein, die beim Veröffentlichen des Webservices angegeben wurden.

Bitte beachten Sie, dass Sie für 1C 8.2 höchstwahrscheinlich ein Anwendungsunterverzeichnis mit einem zusätzlichen Unterverzeichnis haben /ws, also demoFba/ws, siehe für weitere Details.
Klicken Erstellen, wird die Android-Projektvorlage generiert.

Aufbereitung der Quelldaten für Berichte in 1C

Öffnen Sie das 1C-Modul im Konfigurator fbaVeranstaltungen abonnieren und fügen Sie der Prozedur den folgenden Code hinzu Vor dem Versand externer Tisch:

If AbbrLP(MobileApp.Code) = "SAMPLE_REPORT_HEAD" Then If TableName = "Bericht an den Manager" Then // fiktive Berichtsdaten ListTemp = fbaTotal.FromLineWithSeparators("Bargeld, Verbindlichkeiten, Gesamtforderungen, Warensalden, Verbindlichkeiten, Volumen Verkäufe"); RNG = NewRandomNumberGenerator(123456789); Für jedes ListElement aus dem ListTemp-Zyklus NewRow = ExternalTable.Add(); NewRow.Indicator = ListElement.Value; NewRow.Value = RNG.RandomNumber(0.999999) + Sin(RNG.RandomNumber(0.999)); EndCycle; endIf; EndIf
In diesem Beispiel ist die Tabelle mit fiktiven Daten gefüllt, in einer realen Anwendung können hier beliebig viele Reportindikatoren übergeben werden.
Wir haben die Daten für den ersten Bericht sortiert, jetzt müssen wir sie nur noch für den zweiten vorbereiten. Fügen Sie im selben Modul das fbaEvent-Abonnement zur Prozedur hinzu Bereiten Sie Binärdaten zum Senden vor der folgende Code:

DD = Undefiniert; If AbbrLP(MobileApp.Code) = "SAMPLE_REPORT_HEAD" Then If Identifier = "REPORT_PRODUCTS_IN_STOK" Then FileName = GetTemporaryFileName("html"); Report = Reports.ProductsInWarehouses.Create(); If Report.SaveReportInHTML(FileName) Then DD = New BinaryData(FileName); DeleteFiles(FileName); endIf; endIf; endIf; Rückgabe DD;
Ich werde den Code kommentieren. Wenn eine mobile Anwendung beliebige Daten (in Form einer Datei) mit der Kennung „REPORT_PRODUCTS_IN_STOK“ anfordert, wird in 1C ein Bericht ausgeführt und das Ergebnis in einer temporären Datei gespeichert. Diese temporäre Datei wird dann als Binärdaten gelesen und an die mobile Anwendung übertragen. Die temporäre Datei wird gelöscht.

Wie die HTML-Datei in diesem Fall generiert wird, ist für uns nicht wichtig. Sie können den Standard-1C-Speichermechanismus verwenden Tabellenkalkulationsdokument als HTML oder generieren Sie HTML manuell. Ein Beispiel für die Ausgabe finden Sie in der Konfiguration „FBA-Demo“, Bericht „Produkte in Lagern“.

Das war's mit 1C. Fahren wir mit der Entwicklung einer mobilen Anwendung für Android fort.

Design von Android-Anwendungen

Wir importieren die in 1C erstellte Android-Projektvorlage in den Eclipse-Arbeitsbereich.

Starten Sie Eclipse und importieren Sie das Projekt: Datei > Importieren… Wählen Sie in der Android-Gruppe das Element aus „Existiert Android-Code im Arbeitsbereich“ klicken Nächste, geben Sie den Pfad zum Android-Projektvorlagenverzeichnis an und klicken Sie auf Beenden, das neue Projekt wird dem Arbeitsbereich hinzugefügt. Sollten dennoch Schwierigkeiten auftreten, schauen Sie bitte nach, der Vorgang ist in Bildern beschrieben.

1. Erstellen Sie einen Bericht „Finanzindikatoren“, dessen Datenquelle die von 1C erhaltene Wertetabelle ist. Fügen Sie dazu eine neue Klasse ToChiefReport.java hinzu. Hier ist der vollständige Quellcode:

Zeigen

/** * Ein Beispiel für die Erstellung eines Berichts unter Verwendung von Daten aus einer lokalen SQLite-Datenbank. Die * Datenquelle ist die externe Tabelle „Bericht an den Manager“ * */ public class ToChiefReport erweitert 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("Ups, Bericht nicht erstellt!"); ) super.build (context, builderResult); ) private void makeReport(Context context) throws SQLException ( DBHelper helper = new DBHelper(context); // Überschrift des Berichts und der Tabelle setHeader2("Finanzindikatoren"); setTableHeader("Name ", "Amount, rub ."); // Die Tabellenzeilen werden in der Reihenfolge angezeigt, in der sie hinzugefügt wurden. Map mapData = neue LinkedHashMap (); // Auswählen von Daten aus einer lokalen SQLite-Datenbank, einer externen Tabelle // „Bericht an den Manager“ ExTableRaportRukovoditelyuDao dao = helper .getDao(ExTableRaportRukovoditelyu.class); Aufführen rows = dao.select(); for (ExTableRaportRukovoditelyu row: rows) ( mapData.put(row.pokazatel, row.znachenie); ) setTableData(mapData); ) )
Ich werde den Code kommentieren. Die abstrakte Klasse SimpleMapHtmlReport, von der sie erbt, ist zum Erstellen gedacht einfaches HTML Bericht mit einer zweispaltigen Tabelle.
Die ersten beiden Methoden getResIdIcon() und getResIdTitle() geben das Symbol und den Titel unseres Berichts zurück, die in der Liste angezeigt werden sollen. Im „build“-Ereignishandler wird die Methode makeReport aufgerufen, die unsere Implementierung der Berichtskompilierung darstellt.
Beim Erstellen eines Berichts werden zunächst der Berichts- und Tabellentitel festgelegt, dann werden alle Datensätze aus der lokalen SQLite-Tabelle als Berichtstabellenzeilen gelesen. Und schließlich legen wir in der Methode setTableData() die Daten für die Berichtstabelle fest. Ach, wie schwierig ist es, offensichtliche Dinge zu kommentieren.


2.Erstellen Sie einen zweiten Bericht, hier ist alles noch einfacher:

Zeigen

/** * Ein Beispiel für einen kompilierten Bericht, der einfach eine HTML-Datei ausgibt. In diesem Beispiel * wurde die Datendatei in 1C generiert und während des Austauschs an den mobilen Client übertragen * */ öffentliche Klasse ProductsInStokReport erweitert SimpleCompiledHtmlReport ( // Der Name, unter dem die empfangene Datei von 1C gespeichert wird (siehe Austauschverfahren // MyExchangeTask ) public static final String REPORT_FILE_NAME = "products_in_stok.html"; public ProductsInStokReport(File file) ( super(file); ) @Override public int getResIdIcon() ( return R.drawable.report_02; ) @Override public int getResIdTitle() ( return R.string.report_name_products_in_stok ; ) )


3. Erweitern wir das vordefinierte Austauschverfahren mit dem 1C-Server, d.h. Fügen wir noch einen weiteren Schritt hinzu – die Beschaffung der Daten für unseren zweiten Bericht in Form einer kompilierten Datei. Fügen wir die MyExchangeTask-Klasse hinzu, einen Nachkommen von ExchangeTask:

Zeigen

/** * Standard-Austauschverfahren ergänzt durch benutzerdefinierte Regeln. * Zusätzlich wird eine kompilierte Datei erhalten – ein Bericht. * */ public class MyExchangeTask extends ExchangeTask ( // Report ID as defined in 1C private static final String ID_REPORT_PRODUCTS_IN_STOK = "REPORT_PRODUCTS_IN_STOK"; public MyExchangeTask(ExchangeVariant exchangeVariant, WSHelper wsrvHelper, DBOpenHelper dbOpenHelper) ( super(exchangeVariant, wsrvH elper, dbOpenHelper); ) @Override protected boolean doExecute() throws Exception ( // Austauschschritte gemäß vordefinierten Regeln ausführen boolean success = super.doExecute(); if (success) ( // Beliebige Daten empfangen – unser 2. Bericht onStepInfo("Empfangen von Berichten.. . "); String fPath = appSettings.getCacheDir().getAbsolutePath() + "/" + ProductsInStokReport.REPORT_FILE_NAME; File f = wsHelper.getLargeData(ID_REPORT_PRODUCTS_IN_STOK, null, "", fPath); success = (f != null) ; ) Erfolg zurückgeben ; ) )
Um Berichtsdaten zu erhalten, verwenden Sie die Webservice-Methode getLargeData, das bei Erfolg das Ergebnis in einer Datei im angegebenen Pfad speichert. Achten Sie auf die Kennung ID_REPORT_PRODUCTS_IN_STOK, sie sollte mit der in 1C in der Methode „Binärdaten zum Senden vorbereiten“ identisch sein.


4. Zeigen Sie eine Liste der Berichte im Hauptformular an. Öffne die Datei res\activity_main.xml und fügen Sie eine Listenansicht hinzu, die eine Liste von Berichten anzeigt:

In MainActiviy.java fügen wir Folgendes hinzu:

A) eine lokale Variable für die Liste
private ListView-Liste;
b) Initialisierungsmethode
private void init() ( list = (ListView) findViewById(android.R.id.list); // Einen Adapter erstellen, um eine Liste von Berichten anzuzeigen ReportListAdapter adapter = new ReportListAdapter(this,createReportList()); list.setAdapter( adapter); list.setOnItemClickListener(new OnItemClickListener() ( @Override public void onItemClick(AdapterViewparent, View view, int position, long id) ( // Den Bericht im Dialog anzeigen, indem Sie darauf klicken IReport report = (IReport) list.getItemAtPosition(position); report.onShow(MainActivity.this); ) )); )
und es in onCreate() aufzurufen, nachdem das Formularlayout festgelegt wurde
setContentView(R.layout.activity_main); drin();
c) Methode zum Initialisieren der Berichtsliste
/* * Bereiten Sie eine Liste mit Berichten vor */ private Liste createReportList() ( Liste lst = neue ArrayList (); // Erstelle den ersten Bericht, nimm das temporäre Verzeichnis, in dem die Datei gespeichert ist, // die Einstellungen IReport report = new ProductsInStokReport(new File(getAppSettings() .getCacheDir(), ProductsInStokReport.REPORT_FILE_NAME)); lst.add(Bericht); // Weitere Berichte erstellen und zur Liste hinzufügen lst.add(new ToChiefReport()); )
d) das Verfahren zum Starten einer Börse gemäß Ihren Regeln
/* * Einen Austausch nach meinen Regeln starten. Bitte beachten Sie, dass im Scheduler * (falls installiert) der Austausch gemäß den Standardregeln blieb */ private void startExchangeMyRules(ExchangeVariant variant,boolean cancelable) ( // Helfer zum Aufrufen von Webservice-Methoden WSHelper wsHelper = new WSHelper(getExchangeSettings()) ; MyExchangeTask task = new MyExchangeTask(variant, wsHelper, getHelper()); startExchange(task, cancelable); )
Und ändern Sie den Aufruf der Austauschprozedur startExchange(ExchangeVariant.FULL, true) im onOptionsItemSelected-Handler in startExchangeMyRules(ExchangeVariant.FULL, true).

Die Anwendung ist fertig, Autorisierungsformulare und Programmeinstellungen werden automatisch erstellt; wir werden sie nicht ändern.
Testen wir es auf einem Emulator. Wenn Sie nirgends einen Fehler gemacht haben, wird die Anwendung gestartet. Anstelle des Autorisierungsfensters wird jedoch sofort das Einstellungsfenster angezeigt, da keine Autorisierungsdaten (Benutzername und Passwort) angegeben werden.

Bitte geben Sie Ihren Benutzernamen ein: Iwanow
Und Passwort: 123456

Starten Sie die 1C-Datenbank und öffnen Sie das Verzeichnis „Mobile Employees“. Geben Sie als mobiles Gerät das vordefinierte Element „Geräteemulator“ an, fügen Sie die Anwendung „An Manager melden“ zum tabellarischen Abschnitt „Mobile Anwendungen“ hinzu und legen Sie einen identischen Benutzernamen und ein identisches Passwort fest.

Starten Sie den Austauschvorgang auf dem Emulator (Schaltfläche mit dem Pfeil „Nach oben“ im rechten Bereich).

Das Ergebnis des Austauschs wird in der Benachrichtigung angezeigt:

Klicken Sie darauf, um Ihre Anwendung zu starten (oder anzuzeigen). genaue Information Fehlermeldung, wenn der Austausch nicht erfolgreich war).

Schauen wir uns an, was passiert ist. Klicken Sie auf den Bericht in der Liste:

Zeigen


Großartig! Berichte werden angezeigt, Sie können den Maßstab per Knopfdruck oder Gesten ändern.


Die Anwendung ist fertig, sie erwies sich als recht funktional und leicht erweiterbar. Das Hinzufügen weiterer Berichte wird nicht schwierig sein.
Sie können Dokumente in verschiedenen Formaten wie *.doc oder *.pdf übertragen und mit externen Anwendungen anzeigen. Sehen Sie sich den Beispielquellcode an, es gibt 3 weitere Berichte:
  • Diagramm mit Google Chart Tools
  • Diagramm verwenden jQuery-Plugin Handlung
  • Ausgabe eines PDF-Berichts durch eine externe Anwendung (PdfReport.java)
Ich werde es nicht im Detail beschreiben, daher ist der Artikel lang geworden. Wenn Sie Fragen haben, stehe ich Ihnen gerne in den Kommentaren zur Verfügung. Hier ist die Ausgabe:

Zeigen


Sie können den vollständigen Beispielcode unter https://xp-dev.com/svn/fba_toolkit_public/samples/fbaSample4ReportHead/ herunterladen.

Verwendung von HTML zum Erstellen von Berichten ermöglicht Ihnen die Erstellung einer Vielzahl von Berichten, inkl. und mit interaktiven Elementen. In einem unserer Projekte wird beispielsweise der folgende Bericht verwendet:

Zeigen

  • für das Feld „Schulden“ wird je nach Betrag ein bedingtes Farbschema verwendet;
  • Die vollständige Liste der unbezahlten Rechnungen öffnet sich erst, wenn Sie auf die Markierung „Alle“ klicken; standardmäßig werden nur die letzten 4 angezeigt.

Und natürlich sind Sie durch nichts eingeschränkt, Sie können Bibliotheken von Drittanbietern verwenden, um Berichte und Diagramme anzuzeigen, zum Beispiel achartengine, oder Ihr eigenes Diagramm/Diagramm erstellen (es gibt viele Beispiele, auch im Android SDK).

Das ist alles, weitere Beispiele finden Sie auf der Website http://profi1c.ru.
In naher Zukunft ist geplant, Lektionen zu interaktiven Elementen und Adaptern der FBA-Bibliothek hinzuzufügen und zu zeigen, wie man mit Offline-Karten von MapsForge arbeitet.

Ein Löffel Teer

Der kommerzielle Vertrieb des FBA Toolkit-Produkts ist geplant; es befindet sich derzeit im Status „Demoversion“. Es steht Ihnen frei, es zum Testen und Lernen zu verwenden.
Einschränkungen:
  • Das Programm funktioniert nach Ablauf der Demolizenz nicht mehr, d. h. nach dem 31.12.13;
  • Beim Start wird eine Benachrichtigung angezeigt:

In naher Zukunft (höchstens in einem Monat) wird es eine kommerzielle Version geben; Informationen zu den Kosten und dem Lizenzierungsverfahren werden auf unserer Website hinzugefügt.

Vielen Dank, dass Sie bis zum Ende gelesen haben. Ich bin bereit, Ihre Fragen in den Kommentaren zu 1C und Android zu beantworten.

Tags: Tags hinzufügen

gastroguru 2017