1s for mobile devices. So, why are 1C mobile applications a good idea? Landing on Android

The 1C:Enterprise mobile platform is a set of tools and technologies for the rapid development of applications for mobile operating systems iOS, Android, Windows Phone / 8.1 / 10, using the same development environments (Configurator or 1C:Entrprise Development Tools) and the same development techniques, that are used for “regular” 1C applications. The result is autonomous, offline applications, but with the ability to exchange information with the outside world using a wide range of integration tools provided by the platform: Web and HTTP services, e-mail, etc. Since the exchange protocols are platform-independent, the 1C mobile platform, among other things, is a means of quickly creating a mobile front-end for almost any server solution.

Background

Back in the days of 1C:Enterprise version 8.0 (and subsequent versions), there was a software product called “Extension for Pocket PCs”. The extension allowed creating products only for Windows Mobile, Windows CE, etc. The product had its own configurator and server, and was supported until the release of 1C:Enterprise version 8.3. The latest version of the extension (8.2.9) was released in October 2013, and full support ended on January 1, 2015.
The extension had limited use even during the heyday of Windows Mobile communicators, and the departure of such devices from the mobile market clearly did not add to the popularity of this software product. iOS and Android devices have taken over almost the entire mobile device market, and it has become obvious that support for these operating systems is one of the key points for a system that must be operated in the modern mobile world. It also seemed obvious that the main approach of the existing 1C:Enterprise platform should be used on mobile devices: the application developer should first of all think about solving application problems, and secondly, about what capabilities of the operating system he uses to solve these problems . In other words, we need a tool that isolates the application developer from the peculiarities of a specific mobile OS and development tool.

Mobile platform

Based on the experience of developing and operating extensions for pocket computers, it was decided to develop a specialized system that would satisfy several requirements:
  • it must support modern popular mobile operating systems and devices running them. First of all, these are iOS from Apple and Android from Google.
  • this system should allow the use of developed applications in the style adopted on modern mobile devices. In particular, the interface should rely on manual control (literally) using touch screens.
  • the system must provide a uniform software interface for implementing various specific mechanisms, regardless of the mobile OS used.
  • the developer must use the same tool and the same development approaches as when developing applications for a “regular” computer.
  • An application developer should develop an application solution in a familiar development environment, if possible using a single code for desktop and mobile systems.
  • the interface of an application solution running on a mobile device should be similar for different platforms and, in general, be clearly recognizable.
The result of the development was the so-called mobile platform, which was released on May 29, 2013 in versions for iOS and Android. The 1C:Enterprise mobile platform is a set of tools and technologies that allows you to create applications for mobile operating systems iOS, Android, Windows Phone / 8.1 / 10, using the same development environment (Configurator) and the same development techniques as for regular applications on the 1C:Enterprise platform. The result is autonomous, offline applications, but with the ability to exchange information with the outside world using a wide range of integration tools provided by the platform: Web and HTTP services, email, etc.
The mobile platform was quite well received by the community, and various articles on this topic began to appear (for example, and). In order to develop a fully functional application that runs simultaneously on the vast majority of mobile devices, now required minimal time and knowledge, which is not fundamentally different from the knowledge of a “regular” application developer on the 1C:Enterprise platform. Of course, such a low barrier to entry attracts developers who need to provide some basic functionality for employees working on the road, management, and other mobile employees who need to work with the corporate system.
It’s easy to start developing a mobile application on the 1C:Enterprise platform. In the Configurator, you need to set the “Use Purpose” property of the configuration to the “Mobile device” value. In this case, some application configuration objects will become unavailable (characteristic type plans, charts of accounts, etc.), but properties specific to mobile applications will become available (for example, built-in multimedia tools and geopositioning of a mobile device, etc.).


At the same time, you can debug the main algorithms of the application (not directly related to mobile specifics) directly in the Configurator on the developer’s computer. At the same time, it is recommended to frame sections of the code in which “mobile” functionality is accessed with appropriate instructions to the preprocessor in order to avoid errors when executing the code on a personal computer:
#If the Mobile Application is a Client Then Data = GeopositioningServer.GetProviderName(); #EndIf
Starting with version 8.3.7 of the mobile platform, debugging the application directly on a mobile device has become available (more on this below).

Development on a mobile platform can follow different approaches, but there are a few main points that can be highlighted. From the point of view of building the mobile application itself, its functional richness and role in the IT infrastructure of the enterprise:

  • a mobile application can be an integral and integral part of an enterprise’s existing information system. The mobile application will provide an interface and other capabilities (including data exchange) tailored to the capabilities of the existing information system. In this case, the mobile application is very tightly connected with the “regular” information system and cannot be operated in isolation from it.
  • a mobile application performs specific tasks that have virtually no connection with the enterprise information system. There is only a minimum set of data that is exchanged between the mobile application and the information system. In this case, most likely, the mobile application will perform the exchange using some standardized protocol, which makes it possible to use this mobile application in completely different cases and situations.
The two situations described above can be considered extreme options. But these are not the only development options. An application developer can independently choose the integration options between a mobile application and the information system that acts as a back office for it.
The mobile application is developed as a completely standalone configuration, but may share some of the source code with the “parent” configuration. By the way, the “parent” configuration may not physically exist (for example, if you are developing some kind of universal application that can work with different systems using a universal protocol).

Mobile platform device

What is a mobile platform and what can it do?
To be fair, the mobile platform is just one of the components of the entire complex, thanks to which 1C:Enterprise 8 works on mobile devices. So, the application developer operates with the following components:
  1. The mobile platform itself is the mobile part of the 1C:Enterprise framework. It can be a regular one (which is used during the build of the application for publication in the app store) and a mobile developer platform, which is used (surprise) during the development of a mobile application.
  2. Mobile configuration is a configuration of the 1C:Enterprise program system, written in the form of an XML file.
  3. The combination of a mobile platform and a mobile configuration results in a mobile application.
  4. Mobile application builder is a specialized application solution that can make a ready-made mobile application file from a mobile platform, configuration, screensavers, icons and other components, which can be uploaded to the Apple AppStore, Google Play, Windows Phone Apps / Windows Apps stores.
Why is everything so difficult? Why can’t it be done on a mobile device exactly as it is done on a large platform? Those. install one mobile platform on the device and load any number of configurations/applications into it? This is prohibited by licensing restrictions on applications that are distributed through application stores. For example, if your app downloads executable code (in the form of a script) over the Internet, it will never appear in the Apple app store. It should be understood, however, that the ability to download any configuration that is available in the developer’s mobile platform is not intended for distribution of mobile applications even within the same company, not to mention distribution to the developer’s clients.
After the mobile application is on the target mobile device, it becomes necessary to use some kind of database (the data must be stored somewhere). As a database engine, the mobile platform uses its own database engine, which is ported to the mobile platform from the platform for a personal computer. It is compact and fast enough, but the main thing is that it provides exactly the same behavior that application developers are accustomed to when working on a platform for personal computers.
It is also worth noting that internally, the mobile application is built according to the same scheme as the work of a regular platform with a file version of the information base: there is a client part, there is a server part, there is a database, and there is client-server interaction.
The mobile platform itself is written as a native application, compiled into binary code for the main processor architectures currently used in the mobile world: this is the ARM v5 and higher architecture and x86.
In addition, special permissions may be required to interact with certain capabilities of a mobile device (telephony, GPS, working with the built-in camera, etc.). For iOS, they are set directly during the operation of the application itself, and for Android, permissions are specified when creating the application. The required permissions are specified when developing a mobile application and are used by the mobile application builder, but more on the builder a little later.

A little about the developer platform

While we are developing a mobile application, we are not bound by licensing restrictions imposed on mobile applications distributed through application stores. This means that we can use the 1C mobile platform in the same way as we use a “large” platform on a personal computer - install the mobile platform itself on a smartphone/tablet and load mobile application configurations into it. After launch, the platform will show us a list of applications registered in it:

To add a new application to the platform, you need to place an XML file with its description on a resource accessible from a mobile device via the HTTP protocol. The most convenient way to do this is from the Configurator, through the menu “Configuration \ Mobile application \ Publish”. In this case, the XML file with the application configuration is placed on a web server on the developer’s computer (accordingly, this computer must have a web server - IIS or Apache).

If you specify the “Restart from configurator” option for the application, the application on the mobile device will be automatically updated from the developer’s computer every time the developer updates the XML configuration file located on the web server.
When the “Debugging Allowed” option is enabled, step-by-step debugging of the application on a mobile device is possible from the Configurator on the developer’s computer (in the Configurator, the “Debugging via HTTP” option must be selected in the “Tools\Options” menu). If you set breakpoints in the code in the Configurator and select the “Mobile application - start debugging” command, the mobile application on the device will stop when the executing code reaches the breakpoint, and in the Configurator you can view the values ​​of variables, the call stack, etc.

What can he do?

So, what can the mobile platform do? Enough:)
If you don’t use specific 1C:Enterprise terms, the mobile platform provides the ability to work with regulatory and reference information, draw up documents describing some external actions, view reports, communicate with the outside world using Internet services, and much more. Those. it provides an application developer with the opportunity to write a fairly functional application, for example, a home finance accounting program, a field trading program, and the like.
But in addition to the usual functionality that is found on a platform for a personal computer, the mobile platform must provide work with specific capabilities that are unique to mobile devices:
  • working with calls and call logs;
  • working with short messages (SMS) and their list;
  • contacts;
  • calendars;
  • geopositioning (without routing);
  • allows you to take photographs, as well as video and audio recording;
  • respond to changes in screen orientation;
  • work with notifications (local and PUSH, both directly and through a special intermediary service);
  • scan barcodes and QR codes using the camera
  • Monetization of mobile applications (i.e. a way to give the mobile application developer opportunities for additional income):
    • Work with the Apple In-App Purchase (for iOS OS) and Google Play In-App Billing (for Android OS) shopping services, with which you can organize various types of subscriptions, purchases of functionality, etc. in a mobile application
    • Displaying advertising in mobile applications (iAd services for iOS and AdMob for Android are currently supported).
  • etc.
It is clear that some features may not be available on each specific device, therefore, to determine what can be done on the device on which the mobile application is running, special methods are provided that allow you to find out what is available on this device, for example, the ability to dial numbers or not. Thus, approximately the following usage scheme is implemented: we check whether some feature can be used or not, and if it is possible, we use it:
If Telephony Tools.SupportedDialing() Then Telephony Tools.DialNumber(PhoneNumber, CallImmediately); endIf;
Hiding details about the mobile OS used from the application developer and providing him with unified mechanisms for using mobile functionality is an important task for us. We believe that we are successfully solving the problem. Differences in the implemented mechanisms are either absent or minimized. Except, of course, for cases where there is no functionality at all in one of the operating systems.
For example, the technique for working with PUSH notifications is very different between Google and Apple. We have made a lot of effort to unify the mechanism for working with PUSH notifications from application code. In the case of a mobile application, we succeeded almost 100%: the same application code on a mobile device processes the reception of PUSH notifications on both iOS and Android. And the code for sending PUSH notifications in the server application also looks the same. But in order to achieve such unification, we had to develop a special proxy server https://pushnotifications.1c.com/, which hides from the developer different techniques for working with Apple Push Notification Service (APNS) and Google Cloud Messaging (GCM). The whole difference lies in the different settings directly on the proxy site https://pushnotifications.1c.com/; to work with APNS, you need to upload an SSL certificate to the site (which Apple issues for the application at the request of the developer); to work with GCM, you need to specify a unique application identifier.
Obviously, it is impossible to implement all the features you want in a mobile application right away. And you always have to find a compromise between several very useful things. And if you are missing something, write to us about what business tasks (after all, a platform is, first of all, a tool for implementing business tasks!) you cannot solve and what mechanism would help you with this.

What does it look like?

The graphical interface of the mobile platform is a separate issue. In 1C:Enterprise, as you know, the interface is described declaratively. This, on the one hand, imposes some restrictions on UI development (for example, there is no possibility of pixel-by-pixel positioning), but, on the other hand, it allows the platform to uniformly render the interface on screens of different sizes, in thin and web clients. We tried to adhere to the same principle in the mobile platform. How well have we done this? Let's try to figure it out.
In the first versions of the mobile platform (up to 8.3.5 inclusive), the graphical interface of the applications looked very familiar to experienced 1C users; in fact, he transferred the interface familiar from the “desktop” versions of 1C to the mobile world. But from the point of view of users who were not previously familiar with 1C, the interface looked somewhat archaic.
Taking into account comments and suggestions, we have radically revised our approach to the mobile interface in version 8.3.6. We can say that we have made a completely new mobile interface for our applications. It has a lot in common with our Taxi interface. The development model for mobile application developers corresponds to the development model in Taxi. At the same time, the mobile interface fully complies with the design approaches adopted in mobile applications. The interface fully takes into account the specifics of the mobile world: small screen size (which means the design of graphic elements should become more ascetic - without shadows, gradients), there is support for finger gestures, etc. Interesting fact: the new platform mechanism responsible for placing elements in the form (layouter) turned out to be so successful and timely for the mobile platform that it was released earlier (in version 8.3.6) than in the PC platform (in version 8.3.7) , for which it was primarily intended.
In the picture you can see how our interface has changed.
Application “Management of a small company” on mobile platform version 8.3.5:


It is the same on version 8.3.6:

And this is what the interface of the mobile platform looks like in real life:

The collector - and what kind of beast is this?

As mentioned earlier, a mobile application consists of several components (the mobile platform itself, configuration, various resources), which must form a single whole in order to place the application in the store. To make it easier to turn components into an application, a mobile application builder was developed. This is a configuration (application) created on the 1C:Enterprise platform, which stores in its database all the components necessary to create a mobile application. In order for the collector to do its job, you need to download and install various software packages that are needed for its operation (Java and Android SDK, etc.), then specify the paths to these packages in the collector settings and set some additional parameters (developer keys etc.).


After configuration, the assembler is ready for use. In general, working with the collector looks like this:
  1. Download the version of the 1C mobile platform on which we will build the application
  2. Loading the configuration from which we will build the mobile application
  3. We create a mobile application in which we indicate for which platforms (Android, iOS, Windows) the build should be performed, what configuration and platform should be used (in particular, indicate which certificate to use for building for iOS if the application works with PUSH- notifications).
  4. We build a mobile application for all selected platforms with one click
  5. “With another click” we send the collected mobile applications to the application stores (if it is an application for iOS or Android). The application must be downloaded manually to the Windows Apps / Windows Phone Apps stores, because... Microsoft does not yet provide an API for placing an application in the store.
It should be separately noted that the collector is not needed to develop and debug a mobile application. To do this, you can use the mobile developer platform and Configurator tools to transfer the configuration to the mobile device. But to distribute a mobile application, you need a collector.

Applications on the mobile platform

The 1C company itself produces a number of applications on the mobile platform that are mobile clients of 1C server applications (1C: Document Flow, 1C: Small Firm Management, etc.). These applications implement some subset of the functionality of "regular" clients. In the case of the mobile version of 1C: Small Firm Management, the functionality is sufficient for full use of the program, and we have often seen a situation where the mobile version of the application is enough for clients to conduct business.
Our partners use the mobile platform both to develop mass-produced mobile applications distributed through application stores, and for custom applications created according to the requests of specific clients. Among mass-produced applications, there are applications that use a non-1C back-end as a central data storage.
Among the mobile applications created at the request of clients, we can mention the mobile client for 1C:Manufacturing Enterprise Management, created by order of a large machine-building holding. About a hundred employees of the holding use the mobile application in hot shops, where for safety reasons it is impossible to install desktop computers. The built-in camera of a mobile device is used to read barcodes of products and search for them in the item directory; the mobile application allows you to understand at what stage of the technological chain a given product is located, mark the passage of the next operation by the product, etc.

Conclusion

We tried to very superficially describe the mobile platform, what it allows you to do and why it turned out the way it did. This article says almost nothing about mobile Windows. There are several reasons for this: firstly, the version of the mobile platform for Windows was released relatively recently (“1C:Enterprise” version 8.3.7), and secondly, this version of the mobile platform does not have any significant differences from the implementation for other mobile operating systems . Naturally, we will increase functionality for Windows OS. As well as increasing the functionality of the mobile platform as a whole. So, in the near future we have support for external components in the mobile platform; this mechanism (long available in the “big” platform) will allow developers to implement functionality that is not available for some reason in the mobile platform.
Traditionally, the strengths of the 1C:Enterprise technology platform are its ease of use for developers and the speed of creating and modifying business applications. The 1C mobile platform brought both of these trump cards to the mobile world. The 1C mobile platform is an opportunity to quickly develop an application that runs on the three most popular mobile platforms (iOS, Android, Windows Phone / 8.1 / 10). And thanks to the wide range of available platform-independent integration tools (Web and HTTP services, etc.), the 1C mobile platform is the ability to quickly create a mobile client for three mobile platforms for almost any server application that supports any of the integration methods available in the 1C platform (Web and HTTP services, file sharing, etc.).

Only registered users can participate in the survey. , Please.

So we come to 1C: Enterprise in the form of a mobile application -A short overview of the mobile application from the inside.

The mobile application is a self-contained application with its own database for working with user information. For now, mobile applications from 1C can run on the three most popular platforms - Android, Apple iOS, and Windows.


Installation of the mobile application is carried out from the “markets” on these platforms. If the application is not published, you can install it by transferring the distribution file to your mobile device.

You can configure and program the mobile application itself only in the full Configurator mode, and then assemble it using the special configuration Mobile Application Builder.
This is a huge plus, since the development of a mobile application can be carried out by a 1C configuration developer who maintains your 1C: Enterprise program.
Of course, the mobile application has fewer capabilities than the desktop platform: for example, there are no objects such as Reports, Accounting Registers, Business Processes.




Another minus - you will not be able to connect to a 1C database that runs on a desktop platform in a file or server version.


But there is functionality for using mobile advantages: when developing a mobile application, you can use the Contact Book, make a call from the application through the “ T telephony”, obtain location data through Geopositioning.

You ask: " How to work with a regular 1C database? Why is such an application even needed?

To communicate with the “outside world” there are severalmechanisms, such as Exchange Plans. They allow you to link a full-fledged 1C database and a mobile application database - in much the same way as distributed databases work.

A mobile application must perform the function of a mobile application and the corresponding functionality, so all data from one database to another is not completely synchronized, and they could not due to the object limitation described above.
This exchange implementation is available, for example, in a combination of 1C programs: Enterprise 8 Trade Management rev.11 andmobile application "1C:Orders" . The databases exchange information about counterparties, customer orders, product ranges and prices. At the same time, the mobile application can work offline and, if the Internet is available, exchange data.
The mobile application looks decent, there is a visually recognizable style compared to the desktop version of 1C, as well as a set of standard operations performed with objects, such as: “Pass”, “Mark for deletion” and the like. Therefore, users of the mobile application will be familiar with the work context.

This is what the application interface looks like in the latest versions:


The second popular way of communication between a mobile application and an accounting system
1C:Enterprise 8 is work through web services

The general organization scheme is as follows: in the application solution 1C: Enterprise 8, or more simply - in the configuration, a web service is described that performs some functions on the side where the service is published and can transmit data.

Simply put: from the mobile application online you can access the 1C: Enterprise 8 accounting system, perform any function described in the service - for example, obtain data on a report or create a new counterparty

More details:

The service may transmit data in the format described in XDTO package, and the developer himself describes this data model. You can transfer primitive types: numbers, strings, dates. You can transfer complex types, you can transfer binary data - for example, pictures, or PDF, XLS documents. We will show a simple example where a package with tasks is described - task number and title. An example of what the package looks like:

In turn, inIn the mobile application, an object with type WS-Link is created. It specifies the address of the web service, after which the data types and methods that the service operates are automatically loaded:

All is ready! In the mobile application you can now call the 1C: Enterprise 8 service function or receive the necessary data.

What about licenses for mobile applications from 1C?

This issue is covered in the information letter from 1C. The excerpt is below.

Our recommendations:
Mobile applications from 1C are a fairly new product, but in the usual “wrapper” - development can be carried out by a full-time 1C specialist. They open new horizons for expanding interaction with the accounting system and consolidating data for management accounting. We recommend using this option when the stationary option of working with 1C is not suitable and mobile functionality will be sufficient, for example, access to only part of the data or part of a process.

And according to tradition, the case:

Task:

The customer has central office and several points in its distribution network. At each point there are several sales managers and one workstation for selling goods with an accounting program.

Wherein , the central office gives instructions to sellers- for example, collect an order for another point from your leftovers or disassemble the specified product.

To set tasks, the Customer first used email and phone calls, but -There was only one automated workstation and workers could not quickly receive tasks and respond to them. The central office had difficulties in monitoring such tasks, since when set over the phone, the task was not written down anywhere, and it was difficult to review mail for uncompleted tasks.

Solution:

We proposed the following solution. Develop the necessary functionality for setting tasks for employees based on the 1C: Orders mobile application and integrate it with the central accounting system.

An employee of a retail outlet could use their own mobile phone as a platform for launching and working with a mobile application, and those who did not have one, the central office purchased inexpensive smartphones for them.

Due to the fact that the mobile application and the central accounting system work in the same information space, tasks were quickly set and addressed exactly to the employee for whom it was intended.

The accuracy of information transfer has increased - if previously the manager in the office wrote by e-mail - “prepare goods according to Order No. ___”, now in the task he simply indicated a link to the required order, which the point employee could open on the phone.

The level of control over tasks increased - they did not disappear anywhere and had a status that was assigned to them by the employee in the process of completing the task. And the central office could always control the task.

Anatoly Nikulin

Mobile application development is always associated with the need to learn additional technologies. What if we reconsider the question and use already familiar tools?

For the first time, the 1C company tried to enter mobile development market in 2006 year. At that time, there was a real rush to automate the work of remote employees using PDAs. New programs for solving such problems appeared like mushrooms, and a vendor like 1C with successful products for automating various business areas could not miss the chance to enter a profitable market.

By mid-2006, the company presented the release of a new product with the promising name “1C:Enterprise 8. Extension for handheld computers.” 1C developers, who saw the prospects of the 8th platform, began to hope that now, using one tool, it became possible without much difficulty to develop for the mobile operating system “Windows Mobile”, which was popular in those years.

In practice, everything looked much worse. This tool did not allow us to implement original ideas. Plastic bag " Extension for handheld computers» was more of an add-on for certain typical configurations than a full-fledged development solution. There was no provision to expand the configuration functionality by adding new metadata objects. Very simple things were left to third-party programmers: creating new forms for user interaction, processing user events.

Yes, there were all sorts of workarounds for the restrictions, but even they didn’t allow for real development. In addition to technical limitations, consumers felt a serious financial barrier. Companies that decided to implement the solution from 1C were required to purchase productive PDAs, purchase licenses for Windows Mobile, and also pay 1C for the delivery of the solution and the final application.

The solution from 1C was too expensive. Companies accustomed to saving money continued to use alternative solutions. Moreover, the developers of alternatives managed to equip their products with functionality for interaction with standard 1C solutions.

Technical limitations and high cost did not allow the product to repeat the colossal success of the desktop platform. The idea to conquer the mobile market of the building.

applications failed miserably.

Step forward

The loss and losses from an unsuccessful project did not put an end to the development of a promising direction. In 2013, the 1C company introduced the first stable version of the new platform 8.3, which has the function of developing mobile applications.

1C completely rethought its approach to solving the mobile “theorem” and took into account the mistakes of the previous unsuccessful product. The result is a completely new tool that has nothing in common with its predecessor and is focused on the most current mobile platforms - Android and iOS.

Mobile applications in 1C style

To fully get acquainted with the development capabilities for mobile platforms, we will try to develop a small configuration. Using an end-to-end example, you can better evaluate the available functionality and decide on the possibility of using the 1C platform to solve problems.

To work, you will need the latest release of the 1C:Enterprise 8.3 platform. The educational version of the distribution is available on the official 1C website. There is more than enough to recreate an example of its capabilities.

In addition to the 1C:Enterprise 8.3 platform, we will need a number of additional tools. This article will look at an example of developing an Android application. In this regard, you will have to download: Android SDK and Apache WEB server. The first component contains everything needed to build the application and an emulator for testing, and the WEB server is useful for quickly downloading the application to the mobile OS.

We will also require delivery of a “Mobile Developer Platform”. It contains a configuration to simplify the process of building the created mobile application, as well as a mobile developer platform. It must be installed on a mobile device or emulator.

To build an application ready for distribution via Google Play, you will need to download Apacheant And JavaJDK. This topic is beyond the scope of the article, so you can find out more about working with these tools and assembling the application in the corresponding section of my.

Configuring tools

Platform " 1C:Enterprise 8.3" and the Apache web server are supplied with installers and are installed in a standard way. Android SDK you just need to unzip it into a separate directory and run “ sdk manager.exe" A window will appear in front of you with a selection of available packages for installation. To test the example discussed in this article, you will need to select and install: Android SDK Tools, A ndroid Platform Tools, SDK Platform API 17.

The last step will be to create a new information base. For those who are not involved in development under " 1C:Enterprise“I’ll explain that any solution for this platform consists of an information base and configuration. Adding a new database is done by clicking the " Add» start window. After adding the database, open it in " Configurator».

First mobile configuration

In the main menu of the configurator we will find the section “ Configuration" and select "Open configuration". The configuration tree (the objects that will make up the future application) will be displayed on the left side of the window. Select the configuration root in it and press the key combination “ Alt+Enter" The properties editor will open in the right part of the configurator window.

Let's call the configuration " TODO" and in the "Purpose of use" property we indicate " Mobile device" Please note that after performing the last action, some nodes of the configuration tree will become inactive. Unfortunately, it is not possible to use all metadata objects on the mobile platform.

To solve our problem, we will need to create several metadata objects in the configuration tree:


Procedure AddTask(Task) ExportRecordManager = CreateRecordManager(); RecordManager.Period = CurrentDate(); RecordManager.Task = Task; RecordManager.Status = Task.Status; RecordManager.Record(); EndProcedure

Listing 2. Code of the function “Get List of Unclosed Tasks()”

Function GetList of UnClosedTasks() Export Request = New Request; Query.Text = "SELECT |TaskStatusSliceLast.Task AS Task, |TaskStatusSliceLast.Task.ExecutionDate AS ExecutionDate |FROM | Information Register.TaskStatus.SliceLast(&CurrentDate, Status<>VALUE(Enumeration.TaskStatuses.Completed)) AS StateTasksSliceLast | |ORDER BY | Execution Date DESC"; Request.SetParameter("CurrentDate", CurrentDate()); Return Request.Execute().Unload(); EndFunction

We've sorted out getting data from the information register and recording it, now let's teach our directory how to work with the register. To do this, add a common module to the configuration tree with the name “ Working With Tasks" You can do without it, but I would immediately like to focus on the possibility of breaking the code into modules. Many 1C developers still neglect this recommendation and describe all the logic in one place, thereby complicating subsequent code maintenance. Let's create a new procedure in the module " Create NewTask"(see Listing 3).

Listing 3. Code for the “Create NewTask” procedure

Procedure CreateNewTask(Link) Export If Link.ThisGroup Then Return; endIf; Request = New Request; Query.Text = "SELECT |TaskStatusSliceLast.Status |FROM |Information Register.TaskStatus.SliceLast(&CurrentDate, Task = &Task) AS TaskStatusSliceLast"; Query.SetParameter("CurrentDate", CurrentDate()); Request.SetParameter("Task", Link); Result = Query.Run().Select(); If Result.Next() Then If Result.Status<>Link.Status Then Information Registers.Task Status.AddTask(Link); endIf; Otherwise Information Registers.TaskStatus.AddTask(Link); endIf; EndProcedure

Before creating a new record, a check is made for the presence of existing records for the task. If the record already exists, then you need to compare task statuses. If the status from the register does not differ from the status of the element being written, there is no need to create an additional entry.

As a finishing touch, let’s open the form of the “Tasks” directory item and create an event handler “ AfterRecordingOnServer" In it we will write a call to the procedure described in the third listing:

WorkWithTasks.CreateNewTask(CurrentObject.Link);

We are working on the interface

The main functionality of the application is ready - the user can create tasks, and each new task creates an entry in the periodic information register. Now let's move on to the interface. Let's bring work with tasks to the forefront. Surely it would be logical to immediately display a list of unclosed tasks and the ability to create a new one immediately after launching the application?

Let's find the node " General forms" and add a new form called " Desktop" Let's open the created form in the interface designer and add an attribute like " Table of Values" Let's call it “OpenZachi”. The table will contain two columns - " Task"(Reference Link.Tasks) and " Execution Date" (Date of).

The next step is to drag the added props onto the form. We should have an interface for a simple table. We won’t specify any dimensions; we’ll leave the worry of scaling the interface to the platform.

For the created table, in the Property Inspector, set the checkbox for the property " View only", and the property " Command Panel Position» set the value “No”. We will fill the table with dynamic information, so there is no point in editing by the user.

Now let’s describe the “When CreatedOnServer” event handler for the form. Let's add one line of code to it:

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

In the code, we refer to the procedure we described " Get the List of Unclosed Tasks" and the result of its execution is placed in the table.

Let's go back to the form designer and add a group of type “Regular group without display” with two buttons: “ Create" And " Update" Property " Grouping"For the added group, set the value to "Horizontal". To make the buttons more expressive, add images and change the default font.

Now select the button " Create" and give it the global command " Tasks: create" This will allow you to create tasks without entering the directory itself. By clicking the second button, we will update the contents of the table with tasks. To do this, you will need to create an additional form command.

All new form commands are created on the tab of the same name " Teams" The principle is simple - we add a new command, describe the action code in it and then associate the command with the interface, in our case with the button.

We should also not forget that we are developing a managed application, so we need to clearly distinguish between client and server code. When the button is clicked there will be a context " OnClient", and we will receive data from the database from the server. In code it looks like this:

&On the Client Procedure UpdateTaskList(Command) UpdateList(); End of Procedure &On the Server Procedure When Created on the Server (Failure, Standard Processing) OpenTasks.Load(InformationRegisters.TaskStatus.GetListofUnClosedTasks()); EndProcedure

Now let's define our desktop form as the home page area. Open the configuration properties (select the topmost node and click “ Alt+Enter") and for the property "Working area of ​​the home page" set the value " One column", then add our form to the list " Desktop».

The application is completely ready and it's time to test it in action. Try running the example and creating several tasks with a status other than " Completed" The information register has been replenished with new entries (this can be viewed through the menu item “ All functions") and some of them are displayed on the desktop.

Landing on Android

The configuration works great on the desktop, and now is the time to test it on a mobile OS emulator. To prepare a new emulator, run the command interpreter ( cmd.exe) and go to the “toos” directory of the Android SDK distribution. Run the command " android.bat avd", which will launch the virtual Android device manager. In it, click the “Create” button and in the window that appears, specify the parameters of the virtual device. In my work environment I decided to emulate Nexus S with Android version 4.2.2. (API Level 17).

After creating the device, we will immediately launch it. While Android is loading, let's return to the configurator and publish our application on the web server. In the main menu of the configurator, select the item “ Configuration» -> « Mobile app» -> « Publish" In the publishing settings window, we specify the name of the application (can be anything), the web server (in our environment there should be one) and the directory for storing the settings.

Specifying as the name " todo-mobile", the application will be available at the address - " http://host/todo-mobile" Click “ok” and try to access the published application using a browser. If successful, the server will return the XML code of the created configuration.

Let's return to the emulator and load the application with the mobile developer platform into it. The application file itself is available along with the delivery of the mobile developer platform and is called “1cem-arm.apk”. To install this application in the emulator, we will use the utility “ adb.exe" from directory " platform-tools»: adb.exe install –r 1cem-arm.apk.

After successful installation, open the list of applications in the emulator and launch the mobile developer platform. In the window that opens, click “ Add application" and in the "address" field we indicate the URL to our web server. I have this http://192.0.168.106/todo-mobile. Click " Add"and our configuration is successfully transferred to the mobile platform. The application is ready to use. Test the result and return to the configurator, it’s time to provide the applications with “mobile functionality”.

Sending SMS/MMS messages

Functions for working with SMS/MMS messaging is supported differently by mobile platforms. For example, when running an application on Android, the developer has the opportunity to subscribe to SMS and gain access to new messages immediately after receiving them. Unfortunately, this same feature is not available on iOS, so documentation should be at hand during development.

An object is provided for sending SMS messages SMSMessage. Let's look at an example:

&OnClient Procedure SendSMSMessage(Recipient, MessageText) NewMessage = New SMSMessage(); NewMessage.Text = MessageText; NewMessage.Recipients.Add(Recipient); Telephony Tools.SendSMS(NewMessage); EndProcedure

The code is quite simple and hardly needs comments. Now let's look at subscribing to incoming messages:

&On the Client Procedure ConnectMessageReceivingHandler() SubscribeToMessages = New AlertDescription("ProcessingNewMessages", ThisObject); Telephony Tools.ConnectSMSMessageHandler(SubscribeToMessages); End of Procedure &On the Client Procedure Processing New Messages (Message, Additional Parameters) // Processing a new message // Message. Sender, Message. Text; EndProcedure

Procedure " Processing New Messages" will be called every time a new SMS is received. Through the parameter " Message" an object of type " is transmitted SMSMessage» and we can easily obtain the text of the message and information about the sender.

Working with MMS messages is performed in the same way. First we create an SMS message, and then we add an attachment (for example, images) to it. With this simple action, an SMS turns into an MMS:

NewMessage= New SMSMessage(); Attachment = New MMSAttachment; Attachment.Data = Image; Attachment.ContentType = "image/jpeg"; MMSMessage.Attachments.Add(Attachment);

Making calls from a mobile application

A programmatic call is made using the “Dial Number” method of the global object “Telephony Tools”. Before calling the method, it is highly advisable to check the possibility of making a call:

If Telephony Tools.SupportedDialing() Then Telephony Tools.DialNumber(PhoneNumber, CallImmediately); endIf;

Parameter " Call Immediately» affects dialing performance. When it is equal to " True", dialing is performed automatically through the standard calling application. If set to False, the user will also see the standard dialer interface, but will need to press the " button to make a call Call».

Call log

The mobile platform allows the developer to interact with the call log. For example, you can easily get a list of outgoing, missed or incoming calls. This feature is only supported on Android:

Call Log = Telephony Tools.GetCall Log(); Selection = NewDataCompositionSelection; Selection Element = Selection.Elements.Add(Type("DataCompositionSelection Element")); SelectionElement.LeftValue = NewDataCompositionField("CallType"); SelectionElement.ComparisonView = ComparisonTypeDataLayout.Equals; SelectionElement.RightValue = CallLogCallType.Missed; SelectionElement.Use = True; List of CallLog Entries = CallLog.FindRecords(Selection); //The List of Call Log Entries will contain a collection of entries

Geopositioning

Almost any modern smartphone has geolocation functions. You can use this functionality from the built-in 1C language. Obtaining the current coordinates of the device can be divided into 2 stages: selecting a geopositioning provider and processing the received coordinates:

//Let's provide the choice of provider to the platform IdealProvider = Geopositioning Tools.GetMost AccurateProvider(); Coordinates = GeoPositioningTools.GetLastLocation(IdealProvider); //If the coordinates were received a long time ago, then update If Coordinates = Undefined OR CurrentDate() – Coordinates.Date > 3600 Then Geopositioning Tools.UpdateLocation(IdealProvider, 60); Coordinates = GeoPositioningTools.GetLastLocation(IdealProvider); endIf;

Working with multimedia features

The developer has the opportunity to take pictures, videos, and audio recordings using the built-in language: Take a Photo(), Make a video recording(), Make an audio recording().

Which mobile OS is better to develop for on 1C?

Despite my love for Apple technology, it is best to create mobile applications using the 1C platform for Android. There are several reasons for this, but the most important one is the supported functions. Unfortunately, many necessary things are not supported under iOS. For example, the inability to programmatically subscribe to SMS messages or interact with call logs may make it impossible to implement some ideas. Android is more friendly in this regard. Don't forget about the cost of the devices themselves. Not every company will be ready to splurge on purchasing mobile devices from Apple.

Instead of completion

Platform " 1C:Enterprise 8» has proven in practice its readiness to become a simple tool for developing corporate development. Applications for mobile platforms. The examples discussed in the article are additional confirmation of this. It is not at all necessary to spend resources on studying native tools if the functionality of the application fits into the capabilities of the mobile platform and the company is dominated by 1C products.

The 1C:Enterprise mobile platform is a set of tools and technologies for the rapid development of applications for mobile operating systems iOS, Android, Windows Phone / 8.1 / 10, using the same development environments (Configurator or 1C:Entrprise Development Tools) and the same development techniques, that are used for “regular” 1C applications. The result is autonomous, offline applications, but with the ability to exchange information with the outside world using a wide range of integration tools provided by the platform: Web and HTTP services, e-mail, etc. Since the exchange protocols are platform-independent, the 1C mobile platform, among other things, is a means of quickly creating a mobile front-end for almost any server solution.

Background

Back in the days of 1C:Enterprise version 8.0 (and subsequent versions), there was a software product called “Extension for Pocket PCs”. The extension allowed creating products only for Windows Mobile, Windows CE, etc. The product had its own configurator and server, and was supported until the release of 1C:Enterprise version 8.3. The latest version of the extension (8.2.9) was released in October 2013, and full support ended on January 1, 2015.
The extension had limited use even during the heyday of Windows Mobile communicators, and the departure of such devices from the mobile market clearly did not add to the popularity of this software product. iOS and Android devices have taken over almost the entire mobile device market, and it has become obvious that support for these operating systems is one of the key points for a system that must be operated in the modern mobile world. It also seemed obvious that the main approach of the existing 1C:Enterprise platform should be used on mobile devices: the application developer should first of all think about solving application problems, and secondly, about what capabilities of the operating system he uses to solve these problems . In other words, we need a tool that isolates the application developer from the peculiarities of a specific mobile OS and development tool.

Mobile platform

Based on the experience of developing and operating extensions for pocket computers, it was decided to develop a specialized system that would satisfy several requirements:
  • it must support modern popular mobile operating systems and devices running them. First of all, these are iOS from Apple and Android from Google.
  • this system should allow the use of developed applications in the style adopted on modern mobile devices. In particular, the interface should rely on manual control (literally) using touch screens.
  • the system must provide a uniform software interface for implementing various specific mechanisms, regardless of the mobile OS used.
  • the developer must use the same tool and the same development approaches as when developing applications for a “regular” computer.
  • An application developer should develop an application solution in a familiar development environment, if possible using a single code for desktop and mobile systems.
  • the interface of an application solution running on a mobile device should be similar for different platforms and, in general, be clearly recognizable.
The result of the development was the so-called mobile platform, which was released on May 29, 2013 in versions for iOS and Android. The 1C:Enterprise mobile platform is a set of tools and technologies that allows you to create applications for mobile operating systems iOS, Android, Windows Phone / 8.1 / 10, using the same development environment (Configurator) and the same development techniques as for regular applications on the 1C:Enterprise platform. The result is autonomous, offline applications, but with the ability to exchange information with the outside world using a wide range of integration tools provided by the platform: Web and HTTP services, email, etc.
The mobile platform was quite well received by the community, and various articles on this topic began to appear (for example, and). In order to develop a fully functional application that runs simultaneously on the vast majority of mobile devices, now required minimal time and knowledge, which is not fundamentally different from the knowledge of a “regular” application developer on the 1C:Enterprise platform. Of course, such a low barrier to entry attracts developers who need to provide some basic functionality for employees working on the road, management, and other mobile employees who need to work with the corporate system.
It’s easy to start developing a mobile application on the 1C:Enterprise platform. In the Configurator, you need to set the “Use Purpose” property of the configuration to the “Mobile device” value. In this case, some application configuration objects will become unavailable (characteristic type plans, charts of accounts, etc.), but properties specific to mobile applications will become available (for example, built-in multimedia tools and geopositioning of a mobile device, etc.).


At the same time, you can debug the main algorithms of the application (not directly related to mobile specifics) directly in the Configurator on the developer’s computer. At the same time, it is recommended to frame sections of the code in which “mobile” functionality is accessed with appropriate instructions to the preprocessor in order to avoid errors when executing the code on a personal computer:
#If the Mobile Application is a Client Then Data = GeopositioningServer.GetProviderName(); #EndIf
Starting with version 8.3.7 of the mobile platform, debugging the application directly on a mobile device has become available (more on this below).

Development on a mobile platform can follow different approaches, but there are a few main points that can be highlighted. From the point of view of building the mobile application itself, its functional richness and role in the IT infrastructure of the enterprise:

  • a mobile application can be an integral and integral part of an enterprise’s existing information system. The mobile application will provide an interface and other capabilities (including data exchange) tailored to the capabilities of the existing information system. In this case, the mobile application is very tightly connected with the “regular” information system and cannot be operated in isolation from it.
  • a mobile application performs specific tasks that have virtually no connection with the enterprise information system. There is only a minimum set of data that is exchanged between the mobile application and the information system. In this case, most likely, the mobile application will perform the exchange using some standardized protocol, which makes it possible to use this mobile application in completely different cases and situations.
The two situations described above can be considered extreme options. But these are not the only development options. An application developer can independently choose the integration options between a mobile application and the information system that acts as a back office for it.
The mobile application is developed as a completely standalone configuration, but may share some of the source code with the “parent” configuration. By the way, the “parent” configuration may not physically exist (for example, if you are developing some kind of universal application that can work with different systems using a universal protocol).

Mobile platform device

What is a mobile platform and what can it do?
To be fair, the mobile platform is just one of the components of the entire complex, thanks to which 1C:Enterprise 8 works on mobile devices. So, the application developer operates with the following components:
  1. The mobile platform itself is the mobile part of the 1C:Enterprise framework. It can be a regular one (which is used during the build of the application for publication in the app store) and a mobile developer platform, which is used (surprise) during the development of a mobile application.
  2. Mobile configuration is a configuration of the 1C:Enterprise program system, written in the form of an XML file.
  3. The combination of a mobile platform and a mobile configuration results in a mobile application.
  4. Mobile application builder is a specialized application solution that can make a ready-made mobile application file from a mobile platform, configuration, screensavers, icons and other components, which can be uploaded to the Apple AppStore, Google Play, Windows Phone Apps / Windows Apps stores.
Why is everything so difficult? Why can’t it be done on a mobile device exactly as it is done on a large platform? Those. install one mobile platform on the device and load any number of configurations/applications into it? This is prohibited by licensing restrictions on applications that are distributed through application stores. For example, if your app downloads executable code (in the form of a script) over the Internet, it will never appear in the Apple app store. It should be understood, however, that the ability to download any configuration that is available in the developer’s mobile platform is not intended for distribution of mobile applications even within the same company, not to mention distribution to the developer’s clients.
After the mobile application is on the target mobile device, it becomes necessary to use some kind of database (the data must be stored somewhere). As a database engine, the mobile platform uses its own database engine, which is ported to the mobile platform from the platform for a personal computer. It is compact and fast enough, but the main thing is that it provides exactly the same behavior that application developers are accustomed to when working on a platform for personal computers.
It is also worth noting that internally, the mobile application is built according to the same scheme as the work of a regular platform with a file version of the information base: there is a client part, there is a server part, there is a database, and there is client-server interaction.
The mobile platform itself is written as a native application, compiled into binary code for the main processor architectures currently used in the mobile world: this is the ARM v5 and higher architecture and x86.
In addition, special permissions may be required to interact with certain capabilities of a mobile device (telephony, GPS, working with the built-in camera, etc.). For iOS, they are set directly during the operation of the application itself, and for Android, permissions are specified when creating the application. The required permissions are specified when developing a mobile application and are used by the mobile application builder, but more on the builder a little later.

A little about the developer platform

While we are developing a mobile application, we are not bound by licensing restrictions imposed on mobile applications distributed through application stores. This means that we can use the 1C mobile platform in the same way as we use a “large” platform on a personal computer - install the mobile platform itself on a smartphone/tablet and load mobile application configurations into it. After launch, the platform will show us a list of applications registered in it:

To add a new application to the platform, you need to place an XML file with its description on a resource accessible from a mobile device via the HTTP protocol. The most convenient way to do this is from the Configurator, through the menu “Configuration \ Mobile application \ Publish”. In this case, the XML file with the application configuration is placed on a web server on the developer’s computer (accordingly, this computer must have a web server - IIS or Apache).

If you specify the “Restart from configurator” option for the application, the application on the mobile device will be automatically updated from the developer’s computer every time the developer updates the XML configuration file located on the web server.
When the “Debugging Allowed” option is enabled, step-by-step debugging of the application on a mobile device is possible from the Configurator on the developer’s computer (in the Configurator, the “Debugging via HTTP” option must be selected in the “Tools\Options” menu). If you set breakpoints in the code in the Configurator and select the “Mobile application - start debugging” command, the mobile application on the device will stop when the executing code reaches the breakpoint, and in the Configurator you can view the values ​​of variables, the call stack, etc.

What can he do?

So, what can the mobile platform do? Enough:)
If you don’t use specific 1C:Enterprise terms, the mobile platform provides the ability to work with regulatory and reference information, draw up documents describing some external actions, view reports, communicate with the outside world using Internet services, and much more. Those. it provides an application developer with the opportunity to write a fairly functional application, for example, a home finance accounting program, a field trading program, and the like.
But in addition to the usual functionality that is found on a platform for a personal computer, the mobile platform must provide work with specific capabilities that are unique to mobile devices:
  • working with calls and call logs;
  • working with short messages (SMS) and their list;
  • contacts;
  • calendars;
  • geopositioning (without routing);
  • allows you to take photographs, as well as video and audio recording;
  • respond to changes in screen orientation;
  • work with notifications (local and PUSH, both directly and through a special intermediary service);
  • scan barcodes and QR codes using the camera
  • Monetization of mobile applications (i.e. a way to give the mobile application developer opportunities for additional income):
    • Work with the Apple In-App Purchase (for iOS OS) and Google Play In-App Billing (for Android OS) shopping services, with which you can organize various types of subscriptions, purchases of functionality, etc. in a mobile application
    • Displaying advertising in mobile applications (iAd services for iOS and AdMob for Android are currently supported).
  • etc.
It is clear that some features may not be available on each specific device, therefore, to determine what can be done on the device on which the mobile application is running, special methods are provided that allow you to find out what is available on this device, for example, the ability to dial numbers or not. Thus, approximately the following usage scheme is implemented: we check whether some feature can be used or not, and if it is possible, we use it:
If Telephony Tools.SupportedDialing() Then Telephony Tools.DialNumber(PhoneNumber, CallImmediately); endIf;
Hiding details about the mobile OS used from the application developer and providing him with unified mechanisms for using mobile functionality is an important task for us. We believe that we are successfully solving the problem. Differences in the implemented mechanisms are either absent or minimized. Except, of course, for cases where there is no functionality at all in one of the operating systems.
For example, the technique for working with PUSH notifications is very different between Google and Apple. We have made a lot of effort to unify the mechanism for working with PUSH notifications from application code. In the case of a mobile application, we succeeded almost 100%: the same application code on a mobile device processes the reception of PUSH notifications on both iOS and Android. And the code for sending PUSH notifications in the server application also looks the same. But in order to achieve such unification, we had to develop a special proxy server https://pushnotifications.1c.com/, which hides from the developer different techniques for working with Apple Push Notification Service (APNS) and Google Cloud Messaging (GCM). The whole difference lies in the different settings directly on the proxy site https://pushnotifications.1c.com/; to work with APNS, you need to upload an SSL certificate to the site (which Apple issues for the application at the request of the developer); to work with GCM, you need to specify a unique application identifier.
Obviously, it is impossible to implement all the features you want in a mobile application right away. And you always have to find a compromise between several very useful things. And if you are missing something, write to us about what business tasks (after all, a platform is, first of all, a tool for implementing business tasks!) you cannot solve and what mechanism would help you with this.

What does it look like?

The graphical interface of the mobile platform is a separate issue. In 1C:Enterprise, as you know, the interface is described declaratively. This, on the one hand, imposes some restrictions on UI development (for example, there is no possibility of pixel-by-pixel positioning), but, on the other hand, it allows the platform to uniformly render the interface on screens of different sizes, in thin and web clients. We tried to adhere to the same principle in the mobile platform. How well have we done this? Let's try to figure it out.
In the first versions of the mobile platform (up to 8.3.5 inclusive), the graphical interface of the applications looked very familiar to experienced 1C users; in fact, he transferred the interface familiar from the “desktop” versions of 1C to the mobile world. But from the point of view of users who were not previously familiar with 1C, the interface looked somewhat archaic.
Taking into account comments and suggestions, we have radically revised our approach to the mobile interface in version 8.3.6. We can say that we have made a completely new mobile interface for our applications. It has a lot in common with our Taxi interface. The development model for mobile application developers corresponds to the development model in Taxi. At the same time, the mobile interface fully complies with the design approaches adopted in mobile applications. The interface fully takes into account the specifics of the mobile world: small screen size (which means the design of graphic elements should become more ascetic - without shadows, gradients), there is support for finger gestures, etc. Interesting fact: the new platform mechanism responsible for placing elements in the form (layouter) turned out to be so successful and timely for the mobile platform that it was released earlier (in version 8.3.6) than in the PC platform (in version 8.3.7) , for which it was primarily intended.
In the picture you can see how our interface has changed.
Application “Management of a small company” on mobile platform version 8.3.5:


It is the same on version 8.3.6:

And this is what the interface of the mobile platform looks like in real life:

The collector - and what kind of beast is this?

As mentioned earlier, a mobile application consists of several components (the mobile platform itself, configuration, various resources), which must form a single whole in order to place the application in the store. To make it easier to turn components into an application, a mobile application builder was developed. This is a configuration (application) created on the 1C:Enterprise platform, which stores in its database all the components necessary to create a mobile application. In order for the collector to do its job, you need to download and install various software packages that are needed for its operation (Java and Android SDK, etc.), then specify the paths to these packages in the collector settings and set some additional parameters (developer keys etc.).


After configuration, the assembler is ready for use. In general, working with the collector looks like this:
  1. Download the version of the 1C mobile platform on which we will build the application
  2. Loading the configuration from which we will build the mobile application
  3. We create a mobile application in which we indicate for which platforms (Android, iOS, Windows) the build should be performed, what configuration and platform should be used (in particular, indicate which certificate to use for building for iOS if the application works with PUSH- notifications).
  4. We build a mobile application for all selected platforms with one click
  5. “With another click” we send the collected mobile applications to the application stores (if it is an application for iOS or Android). The application must be downloaded manually to the Windows Apps / Windows Phone Apps stores, because... Microsoft does not yet provide an API for placing an application in the store.
It should be separately noted that the collector is not needed to develop and debug a mobile application. To do this, you can use the mobile developer platform and Configurator tools to transfer the configuration to the mobile device. But to distribute a mobile application, you need a collector.

Applications on the mobile platform

The 1C company itself produces a number of applications on the mobile platform that are mobile clients of 1C server applications (1C: Document Flow, 1C: Small Firm Management, etc.). These applications implement some subset of the functionality of "regular" clients. In the case of the mobile version of 1C: Small Firm Management, the functionality is sufficient for full use of the program, and we have often seen a situation where the mobile version of the application is enough for clients to conduct business.
Our partners use the mobile platform both to develop mass-produced mobile applications distributed through application stores, and for custom applications created according to the requests of specific clients. Among mass-produced applications, there are applications that use a non-1C back-end as a central data storage.
Among the mobile applications created at the request of clients, we can mention the mobile client for 1C:Manufacturing Enterprise Management, created by order of a large machine-building holding. About a hundred employees of the holding use the mobile application in hot shops, where for safety reasons it is impossible to install desktop computers. The built-in camera of a mobile device is used to read barcodes of products and search for them in the item directory; the mobile application allows you to understand at what stage of the technological chain a given product is located, mark the passage of the next operation by the product, etc.

Conclusion

We tried to very superficially describe the mobile platform, what it allows you to do and why it turned out the way it did. This article says almost nothing about mobile Windows. There are several reasons for this: firstly, the version of the mobile platform for Windows was released relatively recently (“1C:Enterprise” version 8.3.7), and secondly, this version of the mobile platform does not have any significant differences from the implementation for other mobile operating systems . Naturally, we will increase functionality for Windows OS. As well as increasing the functionality of the mobile platform as a whole. So, in the near future we have support for external components in the mobile platform; this mechanism (long available in the “big” platform) will allow developers to implement functionality that is not available for some reason in the mobile platform.
Traditionally, the strengths of the 1C:Enterprise technology platform are its ease of use for developers and the speed of creating and modifying business applications. The 1C mobile platform brought both of these trump cards to the mobile world. The 1C mobile platform is an opportunity to quickly develop an application that runs on the three most popular mobile platforms (iOS, Android, Windows Phone / 8.1 / 10). And thanks to the wide range of available platform-independent integration tools (Web and HTTP services, etc.), the 1C mobile platform is the ability to quickly create a mobile client for three mobile platforms for almost any server application that supports any of the integration methods available in the 1C platform (Web and HTTP services, file sharing, etc.).

Only registered users can participate in the survey. , Please.

Today, accounting and other accounting in a large enterprise is, for the most part, a rather complex process.

Dear readers! The article talks about typical ways to resolve legal issues, but each case is individual. If you want to know how solve exactly your problem- contact a consultant:

APPLICATIONS AND CALLS ARE ACCEPTED 24/7 and 7 days a week.

It's fast and FOR FREE!

That is why if you implement it manually, there is a high probability of some errors occurring.

The 1C: Enterprise software product allows you to avoid this and receive all the necessary information directly on the screen of a smartphone or other similar device.

What you need to know

Platform 1C: Enterprise 8 is a powerful software product that, through the use of a large number of application solutions, allows you to generate reports and keep records automatically.

In fact, this application represents a software shell for a database with the operating algorithms incorporated into it by the creators.

All operations must be carried out within the framework of current legislation.

1C: Enterprise is a fairly powerful software environment, which includes the following application solutions and configurations:

  1. Accounting.
  2. Trade and warehouse.
  3. Salary and personnel.
  4. Production, services.

There are also other, less universal configurations, which are separate working components of the above-mentioned application solutions.

Today, the 1C: Enterprise platform is ported to personal computers equipped with the following operating systems:

  • Windows;
  • Linux.

Relatively recently, special versions of the application in question were released for mobile devices.

The following architectures are supported:

  • Android;

The software installed on a smartphone or tablet PC is practically not inferior in functionality to similar products for conventional computers.

Moreover, all kinds of mobile devices support functions that are simply not available for regular PCs:

  • geopositioning;
  • multimedia capabilities;
  • barcode scanning;
  • local notifications;
  • mail;
  • SMS/MMS messages.

Everyone who is in one way or another connected with the use of the mobile version of 1C: Enterprise must definitely understand the following important issues:

  • basic concepts;
  • who can be the user?
  • legal grounds.

Basic Concepts

To understand what it is - the 1C: Enterprise mobile platform - it is imperative to familiarize yourself with the basic concepts related to the functioning of the system in question.

The basic terms are the following:

  • applied solutions;
  • component system;
  • specific configuration capabilities;
  • licensing.

An applied solution is understood as a specific configuration that performs certain tasks in production.

In fact, the configuration is one of the components of the 1C: Enterprise software product. It performs certain functions intended by its creators.

A component system is a system created by a supplier within a specific application solution.

For example, one of the 1C: Enterprise configurations called Accounting can perform, in addition to its main tasks (accounting, reporting), more specific ones:

For each configuration, the components are completely individual. Configuration capabilities are a specific set of functions that allows you to implement a large number of different tasks.

Most often they have some basic, specific purpose. 1C: Enterprise includes many configurations.

In fact, this product is a compilation of all software environments developed by this manufacturer.

Licensing refers to the requirement to use the officially purchased version. During installation, integration, or afterwards, you must enter a special electronic key.

Under no circumstances should you use various kinds of emulators and other pirated methods of using this product, since this act is criminally punishable.

Who can be a user?

Users of both the mobile and full versions can be company employees in a variety of positions.

In most cases they are:

Also, all the indicated configurations are used by the executive or general director to analyze the activities of the enterprise and make any important decisions and build a further economic strategy.

Since the 1C: Enterprise product allows you to obtain summary information from all working application solutions.

If necessary, you can quickly and easily build graphs of various types and obtain all the necessary data in tabular form.

Legal grounds

The most important advantage of a software product of this type is that all calculations, reporting and other operations performed are carried out only within the framework of current legislation.

Which is especially convenient, since there is absolutely no chance of making any mistakes when used correctly and entering accurate data.

This makes it possible to spend a minimum amount of time studying the legislation. In addition, 1C: Enterprise is updated automatically - if this option was included in a specific delivery.

But at the same time, it is necessary to remember that the user of this software environment must know the legal framework himself. This allows you to avoid errors and shortcomings in the program.

Moreover, for each individual configuration/application solution 1C: Enterprise, the legislative framework is purely individual:

Also, if possible, you should carefully monitor relevant legislative updates on the official website of the Federal Tax Service and other resources.

Even programs tend to make mistakes; work must always be monitored.

Mobile platform 1C: Enterprise and trade management

You can install both individual application solutions and their entire complex – 1C: Enterprise – on the mobile platform. This also applies to the Trade Management configuration.

But before use, it is imperative to understand the following important questions:

  • where does the mobile platform work?
  • platform capabilities;
  • where can it be installed?
  • what problems may arise.

Where does the mobile platform operate?

The 1C mobile platform can work on almost any device with the iOS or Android operating systems installed.

Photo: speed of the mobile platform

These operating systems provide a convenient environment for porting a software product of the type in question. It is especially convenient to work with this application on tablets with a large screen.

The requirements of a mobile platform of this type for the performance of the device hardware are minimal.

In most cases, 512 MB of RAM and the simplest processor with a clock speed of 1 GHz will be sufficient.

Today, almost all devices have a similar set of characteristics on board. That is why the mobile platform will work almost everywhere; you will not need to purchase a separate device for this.

Platform capabilities

The list of capabilities of the mobile platform is limited by the functionality of the device itself on which it is installed.

One of the most convenient functions is scanning barcodes using a camera - this is especially convenient and in demand for people involved in purchasing goods.

An excellent addition to this is geopositioning - with its help you can automatically determine the address, postal code and link it to specific data.

Video: updating the 1C: Enterprise platform

If necessary, you can also enter into the database:

  • video;
  • audio;
  • photo.

The capabilities of the mobile platform are only slightly inferior to the version installed on a regular desktop PC.

There is a navigation panel (where work begins), all data is presented in a tabular format.

If necessary, you can edit them, changes can be synchronized with databases located in the office.

How can I install

The installation procedure for this application is extremely simple. Its implementation does not require the help of people involved in implementation.

The installation procedure itself depends on which platform the software will be used on:

  • Android;

In the first case, you will need to visit the 1C section in the Google Play store. To install, all you need is a stable Internet connection and free space on your device.

The installation itself is performed automatically. If you need to install the mobile platform on the iOS operating system, you should visit the App Store.

Installation will also require a sufficiently fast Internet connection, as well as free space in the device memory.

What problems may arise

During the operation of applications of this type, there are some features that must be taken into account.

The most important ones include the following:

  • it is necessary to configure the server accordingly to work together with the application in question;
  • You should use only current versions of 1C.

One of the most common problems is the inability to synchronize with the bathhouse database located on enterprise servers.

Most often, problems of this kind arise due to inappropriate settings. Before using the mobile platform, you must enter the appropriate parameters.

It is also necessary to use only current versions of applications for 1C, since some of the latest ones are not always compatible with previous ones.

Today, the 1C: Enterprise mobile platform is an excellent way to obtain all the necessary information about the activities of a company of any size with minimal time.

Devices