The history of one application: mobile "1C: Management of our company"

    Using the example of the 1C: Managing Our Company mobile application (abbreviated as UNF), I want to show the evolution of a mobile business application from its inception and release of the very first version to today. Now this application has more than 220,000 downloads; the application is free, but it has paid options (implemented through in-app purchases).


    The first version of the mobile UNF was made on one of the first versions of the 1C: Enterprise mobile platform in 2012. At that time, there was already a client-server configuration “1C: Small Business Management” (the name was then), a program for automating the activities of a small company - sales, purchases, a customer and supplier base, warehouse management, production, etc.

    Like most mobile applications written on the cross-platform mobile platform 1C: Enterprise, mobile UNF is available on iOS, Android and Windows.

    The task was set as follows: to make a mobile application that supports part of the scenarios of the "large" UNF. The application should be able to work both autonomously and synchronize data with the “large” UNF (hereinafter, I will write the word “large” with respect to the client-server version of the UNF without quotes so as not to overload the text). In the case of working with a large UNF, the scenarios of “mobile” employees — sales representative, service engineer, and seller — should be supported.

    The first version was created in 1 person-month. When creating a mobile application, some of the metadata objects (directories, documents) were implemented on the basis of large UNF objects. But part of the functionality had to be programmed from scratch, for example, the process of exchanging data with a large UNF. However, in relation to data exchange, I actually had to program a little bit - we used standard platform mechanisms (in particular, exchange plans ) that reduce code writing to a minimum.


    In addition to simplifying work with data synchronization, the 1C platform significantly simplifies the work of designing a fully functional mobile application by providing the developer with such interface components as lists (tabular and hierarchical) with the ability to search by them, input fields with search, tables for reports, a wide range of diagrams, the ability to printing on WiFi and Bluetooth printers, etc.

    Features of the mobile version

    There are two main strategies for choosing the functionality of a mobile application. The first is "one application - one function." For example, a mobile application for receiving goods at the warehouse, which can only scan the product’s barcode with the built-in camera and send information about the received product to the server. The second strategy is to create a mobile application with wide all-in-one functionality. Both approaches have the right to life; when writing a mobile UNF, we chose the second approach - our application covers many tasks of its subject area and can work completely autonomously, serving the needs of a small organization. Another plus of this approach is that the user can work with several interrelated functions from one application.

    Mobile UNF widely uses the functionality of a mobile device, in particular:

    • The device’s built-in camera can be used to photograph the product when filling out the product card, to read barcodes and QR codes
    • An invoice for payment can be sent to the client by email or via SMS
    • The counterparty can be selected from the address book of the mobile device
    • If the counterparty has a phone, you can call the counterparty with one touch or send an SMS, if you set an email - send an email, if an address is set - show it on the map
    • You can print documents to printers via WiFi and Bluetooth

    There is an option to backup and restore the mobile UNF database to Yandex.Disk and send the database by mail.

    The configuration of the mobile UNF looks quite Spartan (see the screenshot below):

    • 8 directories (in the large UNF - 273 directories)
    • 7 documents (in a large UNF - 125)
    • 3 journal of documents (in large UNF - 24)
    • 3 information registers (in the large UNF - 357)
    • 4 accumulation registers (in a large UNF - 64)

    The main objects of the mobile UNF

    But, despite such a small number of applied objects, the product turned out to be quite functional.

    An interesting feature of the mobile UNF is that people often start using it, before that they had not heard about 1C (yes, there are such in our country), those who needed a mobile application to keep track of their small business (for example, home crafting). They just found it by searching on Google Play or the AppStore, read reviews and started working.

    Offline work

    This scenario is intended for very small organizations, when all accounting is conducted exclusively on a mobile device. This can be, for example, a “home” business - making jewelry at home and selling them on the VK page. Or maybe even a small store - I personally saw a case where a toy store specializing in the sale of Lego designers kept records exclusively on the mobile version of UNF. Given that the mobile UNF can print on WiFi and Bluetooth printers, it can be used to solve a fairly large number of tasks. Mobile UNF supports order processing, input of incoming and outgoing invoices, receipt accounting and money spending.

    Work in synchronization mode with the server (first versions)

    In the synchronization mode with the server in the mobile UNF in the early versions, accounting functionality became unavailable, and work in it was carried out mainly with orders (receiving and executing orders) and related activities (maintaining directories of contractors, goods and services, etc.).

    Directories of goods and services, contractors, and orders synchronized with a large UNF.

    Mobile and large UNF data exchange in the first versions

    Orders entered from mobile devices fell into a large UNF, and during synchronization they were transferred to mobile devices responsible for orders. Documents such as cash receipts, sales of goods, etc., entered on mobile devices, left for a large UNF, but were not synchronized between mobile devices. All work in the mobile application in synchronization mode was carried out mainly around orders - their acceptance and execution, full accounting on the mobile device was not carried out, for this it was necessary to use a large UNF on the computer.

    This was the case in the first versions, but subsequently we changed the situation and expanded the list of scenarios for using mobile UNF to make working with it more convenient for users.

    A bit about data synchronization

    The exchange of data between mobile and large UNF is through web services; mobile UNF calls web services deployed on the side of a large UNF. The data structures in the large and mobile UNFs are different; when designing the architecture, we considered 2 options for data exchange:

    1. Create a data structure in a large UNF that duplicates the data structure of a mobile UNF, and exchange data with the mobile one-in-one UNF. When changing data in a large UNF, you need to transfer the new / changed data to this duplicate structure, and after exchanging data with the mobile UNF, convert the data received from the mobile device and placed in the duplicate structure into the format of a large UNF.
    2. Exchange data directly with the structures of a large UNF, converting data on the fly according to the exchange rules.

    We decided to stay on the second option. The first option, although it promised some advantages related to the simplicity of the actual data exchange, did not handle the situation when the data structure changed (expanded) in the new version of the mobile UNF; for the one-to-one data exchange to continue to work, it would be necessary to update the server-side, large UNF. Which, for many reasons, was unacceptable.

    The data exchange mechanisms implemented in the platform take up most of the work of creating packages for data synchronization, allowing code writing to be minimized. In the process of exchange, the standard mechanism of the 1C: Enterprise platform is used: a data exchange mechanism ; a data exchange node is created for each mobile UNF in a large UNF, in a large and mobile UNFchange registration service to track data changed since the last synchronization, etc.

    The mobile application initiates the exchange of data, using the platform mechanisms it forms an exchange package (containing the identifier of the mobile application and data updated on the mobile UNF since the last synchronization) and sends it to the large UNF. Based on the information in the starter package, the large UNF prepares for the mobile UNF the data changed in the large UNF since the last synchronization, and packs them into packets. Packages in XDTO format are 1C metadata objects serialized in XML; the size of each package is not more than 500 objects.


    Mobile UNF takes this data package by package. After downloading the last package, the mobile UNF starts processing the received data - conducting documents, writing directories, etc. In the event of a disconnection, the resume of packages is supported; we wrote the resume mechanism for the UNF on our own (it is not in the platform), but since the mobile UNF is supplied in source codes, developers can look at the implementation of the mechanism and borrow it for their applications.

    During the initial synchronization of a mobile UNF with a large UNF, it is impossible to work in the mobile UNF - a modal window appears showing the progress of the process. All subsequent synchronizations are background and do not block the operation of the mobile UNF.

    Full list of objects exchanged between mobile and large UNF:

    • Directories:
      • Nomenclature
      • Counterparties
      • a list of users
    • Documents:
      • Customer orders
      • Cash receipt
      • Cash flow
      • Purchase Invoice
      • Sales Invoice
      • Production
    • Registers (but not all prices, but only the main ones):
      • Supplier Prices
      • Product Prices
    • Information about the organization:
      • Name
      • Tax information

    In a large UNF, goods have pictures — images of the goods themselves. In order to minimize traffic, we do not upload pictures to the mobile UNF, they are uploaded on demand - for example, when we open a product card in the mobile UNF.

    Product Card with Product Image

    Application evolution - developing use cases

    A typical situation is that the business is growing, and the functionality of the mobile UNF on one mobile device is no longer enough. Another employee (or employees) appears in the business, and they also need to work with orders.

    In the first versions of the mobile UNF, the move scenario was fairly straightforward - the data entered in the mobile UNF was copied to the database of the large UNF, and the user would now have to keep records on a computer. In this case, the mobile UNF will work in the mode of working with orders, and it will no longer be possible to keep records (as on the stand-alone version of the mobile UNF).

    This, of course, was not very convenient for the end user - he was already used to keeping records from a mobile device, and here he is forcibly forced to transfer to a computer keyboard. Not everyone will be happy with this.

    Therefore, we have expanded the list of scenarios for the operation of mobile UNF. The emergence of our cloud service , based on 1cFresh cloud technology, helped us in this . Now you can place a large UNF in the cloud. We have described three scenarios for using a mobile application as the user's business grows:

    1. Quite a small business. Accounting is carried out on one mobile device.

    2. Business is growing - employees have appeared. You can put mobile UNF on employees' mobile devices. In this case, you need to be able to exchange data between mobile devices to synchronize data; For this, we decided not to use file-sharing, but to use for synchronization (and at the same time for backup) the version of a large UNF located in the cloud . When you enable this script in the cloud http://1cfresh.coman instance of a large UNF is being created, the base of which will be used to synchronize data between mobile devices. Using one mobile device in such a scenario is free, for each additional device we charge 75 rubles / month; you can use no more than three devices in this scenario. At the same time, users of mobile devices can be assigned predefined roles - sales representative, service engineer, seller (detailed setting of roles is also possible); accordingly, the functionality of the mobile application will be limited. You can also work through a web client or thin client with a large UNF located in the cloud, but the functionality of a cloud-based UNF will be reduced to the functionality of a mobile UNF.

    3. The business has grown to the size of an average firm. In this case, it makes sense to rent a full version of a large UNF in the cloud in order to get (via a web client or thin client) additional functionality - CRM (plans include CRM in a mobile UNF, but so far only available in a large version), warehouse management, extended pricing, the ability to work with banks and so on . In this case, the number of mobile devices working with large UNFs is not limited (for each device an additional fee is charged according to the tariff as for one workplace; 1 license for UNFs in Freche or for “boxed” UNFs gives the right to use free of charge and 1 mobile application )


    Application Monetization Experience

    The UNF mobile application, as I already wrote, is free. Some time ago, we decided to monetize our application (using the built-in shopping functionality implemented in the 1C: Enterprise mobile platform version 8.3.8 ), selling additional functionality - production, and the ability to synchronize with additional mobile devices.


    The purchase of the Production functionality is a one-time purchase, and the ability to synchronize with additional mobile devices is framed as a subscription, which must be renewed every month. Interestingly, 3 weeks after adding the purchase functionality, the mobile UNF got into the top 15 Google Play in sales of business applications.


    Mobile UNF is a relatively small (in terms of the amount of source code), but rather popular product. We hope that the story about its evolution will be useful to the creators of mobile end-user products using both 1C technologies and other development tools.

    It will be useful to recall that on the 1C mobile platform you can make applications that interact not only with the 1C server backend; the protocols used for data exchange in mobile applications on the 1C platform are platform-independent (web and HTTP services, XML and JSON support, etc.). So if you need to quickly and dynamically develop a cross-platform (Android, iOS, Windows) mobile client, and with the possibility of offline work without a permanent Internet connection for your business application, then 1C mobile platform may well be the best choice for you.

    Also popular now: