The 1C:Enterprise platform facilitates the development of applications for mobile devices that combine the convenient interface of the mobile platform and online operation with an infobase similar to a thin client. For this, the special technology of the 1C mobile client is used.
Mobile operation scenarios
The mobile platform is one of the 1C:Enterprise Platform technologies that allows a user to work with its applications using mobile devices.
This technology enables the creation of specialized offline mobile apps with a convenient and functional mobile interface. Mobile apps are developed for solving certain mobile tasks and are optimized for them in terms of architecture and interface. Such applications are designed to fulfill mobile operation scenarios – so it’s convenient to use them both on tablets and smartphones.
As for the architecture, such applications are very similar to the file version of the 1C:Enterprise system. The mobile device has its own database, and moreover, the mobile app includes both a client that provides interaction with a user and a server that ensures interaction with a database.
Furthermore, such mobile applications can interact with the “main” application installed in the office. However, this is not an online interaction but a periodic data exchange with the back office. The basic operation mode in the mobile app is offline. And when there is an Internet connection, data is synchronized.
Thus, the mobile platform is perfectly suitable for developing offline workplaces for employees who work outside the company and don’t have a reliable and constant Internet connection. However, such workplaces usually have less functionality than that of “main” applications. In addition, they do not ensure online interaction with the infobase.
So, as a result, the mobile app does not cover a considerable range of features with the following properties:
1) required online interaction with the infobase;
2) availability of the full functionality of the “main” applied solution, even as large as, for example, 1C:ERP.
3) interface convenience for any mobile devices with any scale, size, or screen resolution.
To solve the above tasks, we developed the 1C mobile client, a thin client for mobile devices with an interface similar to the mobile platform. The mobile client distribution package contains all the necessary executable files that can be used by developers to build an application for a mobile device in the same way that they build mobile applications from the mobile platform.
On the one hand, such an app can directly interact with the 1C:Enterprise server cluster in the same way as the thin client does it. On the other hand, the mobile client ensures the automatic transformation of the forms declaratively described in the configuration into the interface, similar to what happens with a mobile platform.
Forms developed for 1C:Enterprise desktop version are by default edited by the mobile client in a way that enables a user to easily operate them using mobile devices with small screens.
To make this transformation smoother, a developer needs to specify further form element properties tailored to the mobile client and get rid of specific and unconventional interface solutions. In other words, some kind of enhancement is required. However, it is much easier than developing a specialized and fully-featured mobile application from scratch.
This technology will be in demand in those implementations where online access to the system from mobile devices is obligatorily required so that the data entered on a mobile device can go directly to the “common” database without intermediate synchronization steps.
The mobile client will also be in demand in small companies that have neither extra budget nor time for developing specialized mobile apps. Since, as we suppose, exactly creation of the data exchange system is the most complicated development stage.
If we compare the mobile client’s functionality with the thin client’s capabilities, we see that there are not only limitations but advantages as well.
One of the crucial advantages of the mobile client is that it contains the full functionality of the mobile platform driven by usable devices. It allows one, for example, to take photos, enter subscriber number, receive PUSH-messages, and much more.
Another advantage is that the mobile client is compatible not only with that server version for which it was designed. It will work with almost any server version until some considerable changes happen in the exchange protocol or platform architecture. We did so because mobile application publication is a quite complicated and durable process, that is practically impossible to implement at the same time with the update of the server cluster to the new platform version.
As for the drawbacks, the most obvious of them is that the mobile client interacts with the server cluster only via the HTTP(HTTPS) protocol.
Another limitation, as for the mobile platform though, consists in the inaccessibility of several embedded language objects and some interface elements. But we will do our best to minimize these differences as the mobile client develops.
Form interface building automation
When creating the mobile client, we paid particular attention to ensure that the adaptation of the configuration for the mobile client required minimal effort. We developed several technologies and approaches so that the large forms designed for the desktop version automatically adapt to the small screens on mobile devices.
For instance, a mobile client allocates more disk space for the most important and material form elements, including but not limited to, dynamic list tables in list format or spreadsheet documents in report format. Form elements which are not deemed material are allocated less disk space and thus placed into collapsible groups, etc. A similar approach applies to the most significant columns which exist in a list, for instance, ID or Date.
Secondly, the mobile client expands horizontal groups vertically if these fail to fit the screen width. It is neither convenient nor common-used to scroll a form horizontally on mobile devices, so such a solution is quite reasonable.
Configuration adaptation to the mobile client
Despite the entire automation process, the configuration developer will nonetheless require some effort to adapt the applied solution for the mobile client.
Speaking laconically, we can say that all such improvements divide into two main directions.
The first approach consists in getting rid of specific interface solutions relying more on the automatic form of composition performed by the platform on the basis of information about data types. Such specific solutions may be fixed field sizes, strictly arranged horizontal element grouping and so on.
The other direction is to give the mobile client additional information about the form elements. We taught the mobile client to easily recognize elements in standard or small forms and determine their importance. However, if a form is non-standard or large, it will be useful to manually specify which elements are more or less important. To do this, you can use the new property for elements – ImportanceWhenDisplaying: high, normal, low, etc.
Moreover, it will probably be necessary to analyze those functions of the applied solution where the algorithms for the thin client and web client differ. We need to do this in order to indicate which of the algorithms will be used in the mobile client. For this, we add a new MobileClient compilation directive.
Distribution package, building and publication
The mobile client, in its essence, is a “coat” which can launch this or that applied solution. Herewith, the functionality of the started apps may considerably differ from each other. At the same time, AppStore requires the application published in the store not to significantly change its functionality after publication.
Therefore, we don’t publish the mobile client as a separate universal application. The mobile client is delivered together with the mobile platform as a set of executable files. Based on these files, a developer should build an app that will operate on a mobile device. Building and publication procedures for both the mobile platform and mobile client are alike since the same tool, the mobile application builder, is used in both cases.
In order for the mobile client published in the app store to have fixed functionality, when building it, it’s necessary to specify certain configurations with which this application will work. In the operation process, the mobile client verifies if only one of the established configurations is used and without significant changes. It is special protection so that a mobile client published for certain configurations cannot work with other configurations. As practice shows, it is convenient for users when one mobile application is compatible with any one configuration, or similar configurations.