TechBlog



Multitenancy in 1C:Enterprise

We started working on our multitenancy philosophy at the early stages of designing cloud service support in 1C:Enterprise. This was several years ago, and since then our concept of multitenancy keeps expanding steadily. We constantly discover new aspects: pros and cons, complexities and peculiarities.

28661d787287f4759f240022920aba20.png
Click the picture to enlarge it

Some developers have a very basic understanding of multitenancy: "To store multiple companies’ data in a single database, we’ll just add the Company ID column to all tables and then filter them by this column." That’s where we started, too. However, we quickly realized that it’s just one island (with many mysteries of its own) in an entire archipelago.

Read more...

New features in charts

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

We have added some new features to the charts to make them more convenient, more graphic and more familiar to users of other products. Besides, we have changed the way charts behave in some cases to better meet user expectations, and created two new chart types.

Trendlines

From now on, your charts can plot not only data as such, but also forecasts or tendencies, which are displayed as trendlines.

A trendline is a most useful chart element. You can use it to underscore a consistent data pattern or to make forecasts based on the trendline formula. In addition, we have introduced several types of approximation: linear, polynomial, logarithmic, power, and exponential.

Read more...

Photo:

New features in mobile platform

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

We are currently developing our mobile platform by introducing functions available on the PC platform and delivering mobile device-specific capabilities. Below you will find some of the features we find most important.

Geofences

We have implemented a new event that occurs when a mobile device crosses the border of a pre-defined area. We call such an area a geofence. A geofence is a circle on the surface of the earth, described by its central coordinates and its radius.

Read more...

Cryptography in 1C:Enterprise mobile platform

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

Cryptography functions, such as digital signatures and encryption, which used to be exclusive to the PC platform, are now available on mobile devices.

Generally speaking, these functions are similar on both the mobile and the PC platform, but there are certain differences.

For instance, mobile applications can only use cipher algorithms that are supported by the device’s operating system. The list of these algorithms is firmly embedded in the mobile platform.

Read more...

Designer agent mode

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

As a tool for developing and supporting applications, Designer can be used both interactively (to edit configurations or describe 1C:Enterprise script algorithms) and from the command line (to update, dump and restore configurations, etc.). For instance, the new development environment (EDT) reassigns some of its functions to Designer.

Our initial intent was to speed up EDT-Designer interactions. However, we decided to extend the task at hand. Ultimately, we developed a universal way of working with Designer through the command line. We called it the agent mode. In agent mode, Designer can run an arbitrary number of external commands without shutting down.

Read more...

Incremental export of configurations to XML files

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

We continue to develop the mechanism for export/import of configurations to/from XML files. In one of the previous versions of 1C:Enterprise, we implemented partial import of configurations from XML files. Now we have completed the reverse operation – partial (incremental) export of configurations.

As a result of these two changes, group development of large configurations should become easier and faster.

Read more...

Support of plural forms for cardinal and ordinal numerals

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

We have added support for strings that require harmonization with numerals to the platform. Now you can generate strings of the “run time 1 second” and “run time 32 seconds” type automatically, without analyzing the numeral in order to use the correct unit of measurement form.

To this end, we added a new StringWithNumber() method to the platform. Its working principle is based on the fact that any numeral in any language can be classified into one of the six categories:

  • ZERO
  • ONE
  • TWO
  • FEW
  • MANY
  • OTHER

In different languages, the same numerals may refer to different categories. Besides, not all languages have all six categories. For example, in the German language, categories ZERO, TWO, FEW, and MANY are not used. The detailed table of conformity of categories with numerals for all languages can be viewed on unicode.org.

Read more...

Photo:

Development of diagnostic tools

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

We have implemented several changes that will enable you to diagnose and eliminate potential memory leaks more quickly, and will make it easier to investigate problems associated with acquiring and releasing of licenses.

Search of circular references

The 1C:Enterprise 8 platform uses the object lifetime management strategy that is based on object reference counting. This strategy can be described as follows. Each object of the platform contains a reference count. When a reference to an object appears (when an object is assigned to a variable), the count increases by one, when such reference is removed - the count value decreases by one. When the object reference count equals zero, the object is automatically destroyed, and the memory occupied by it is freed up.

One of the peculiarities of object reference counting is the possibility of implementing a circular reference. A circular reference occurs when objects start to refer to each other. For example, if there are objects nested inside other objects, and somewhere deep inside, they refer to the topmost object. The result is a circular reference. In the simplified form, a circular reference can be created as follows:

Read more...

Photo:

Extending functionality for working with binary data

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

We are gradually increasing the functionality for working with binary data. There are several reasons for this. At the first stage, we have not implemented everything we had originally planned. Secondly, while discussing new possible features, we have received a number of requests from you that we have also decided to implement.

New functions for converting binary data into different formats

We have added many new functions that convert binary data to the global context. For example, you can implement direct and inverse conversion of binary data into a regular string, string of Base64 format and string of BinHex format. In addition, you can convert binary data into formats Base64, BinHex, and vice versa.

Similar conversions are supported for the BinaryDataBuffer type. You can convert binary data buffer into binary data and back.

Read more...

Usability of tabs panel in main application window

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

We changed the design of the open items panel and extended its functionality.

130429be675706988f41e30c801384fe.png

Now it looks neater and takes up less space. Meanwhile, its informative value has not diminished. Besides, the open items panel now has a set of new features that should make it easier for users to work with a lot of windows open.

Read more...

Photo:

Processing and formatting data of dynamic list

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

As you know, a dynamic list is convenient and useful for quickly displaying large lists. It is quite flexible, allows you to modify its query, and even create your own complex query. Thanks to this, you have the ability to display in the list different additional data associated with the master list data.

This versatility, however, has a downside. The desire to show “everything at once” may make your query much more complex. As a result, you'll get inefficient query plans and, subsequently, a decrease in performance when displaying and scrolling through the list.

In addition, there are a number of application tasks, whose algorithm of selection and formatting of the list data is quite complex. In these cases, there are not enough features for ad hoc queries and conditional formatting. We would like to have a more “flexible” and “precise” tool that would let us do “anything” and “only where needed”.

Read more...

Photo:

Quick scaling for forms

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

We have implemented a quick scaling mechanism for forms. For the most part, it is intended for end users, but developers can use it as well, should it be necessary.

We believe that this mechanism will be convenient and useful in cases when you need to quickly and easily, or briefly and temporarily, increase or decrease the scale of the items displayed in a form.

You probably know that you can make the font larger by changing the screen resolution. Some time ago, we modified the platform mechanisms so that applications were clearly and correctly displayed with different screen resolutions (DPI). But changing the DPI is a relatively complex and "fundamental" operation. Firstly, not all users have sufficient knowledge of how to perform it. Secondly, it affects all applications installed on the computer. If you need to zoom in or out of something "here and now", or if you do not have sufficient qualifications, you won’t be changing the DPI.

For such situations, the quick scaling mechanism for forms will be very handy. If you do not have very good eyesight, you can make everything "larger". Alternatively, if your eyesight is rather good, and a table is too wide to fit in the form, you can make it "smaller".

Read more...

Photo:

Restrictions on importing configurations from XML files

This feature is implemented in 1C:Enterprise version 8.3.10.2168.

The configuration support mechanism and the configuration repository mechanism imply that configuration changes are made according to certain rules. Compliance with these rules ensures that the configuration will work properly in the future.

The mechanism for saving configurations to .cf files and loading them from .cf files takes into account the necessity to comply with these rules. If you saved the configuration and changed it in another infobase, you may not always be able to "just" load it back into the original infobase. In some situations, the platform will ask you to unlock objects of the original configuration if it is supported or bound to a repository.

When you deal with a .cf configuration file, you should change it using the means of 1С:Enterprise. But, as you know, the platform has another mechanism that allows you to make configuration changes without using the platform. This is the mechanism for dumping configurations to XML files and restoring configurations from XML files.

Read more...

Photo:

Eclipse as a technological platform for 1C:Enterprise Development Tools

Eclipse probably needs no introductions. Many software developers learned about Eclipse when they started using Eclipse Java development tools (JDT), a popular open-source Java IDE. When they say "Eclipse", they often mean the Java IDE. However, Eclipse is much more than that. It is an extensible platform for development tool integration (Eclipse Platform) and a whole range of IDEs based on that platform (including JDT). It is also the Eclipse Project, a top-level project that embodies the development of both Eclipse Platform and JDT, and the Eclipse SDK, the result of that development. Finally, Eclipse is an open-source foundation featuring a variety of projects, some of them are not even written in Java or related to development tools (for example, Eclipse IoT and Eclipse Science). The world of Eclipse is extensive and diversified.

This article aims to provide an introductory architectural overview of the Eclipse Platform and the other Eclipse components that form the foundation of 1C:Enterprise Development Tools (the new Designer). Of course we cannot go deep into details because the article is intended not only for Eclipse developers. However, we hope it could offer something of interest even for the more experienced Eclipse developers. For example, it unveils one of the "Eclipse secrets", a relatively new and not yet well-known project Eclipse Handly initiated and maintained by 1C Company.

Read more...

Photo:

Data composition system on 1C:Enterprise mobile platform

This feature is implemented in 1C:Enterprise version 8.3.9.1818.

We have implemented access to the data composition system from 1C:Enterprise script on the mobile platform. Now you can create a data composition schema template in Designer and generate reports on its basis. You can also use 1C:Enterprise script to configure custom filters in the composition system and retrieve data from the database for further processing.

Previously, some parts of data composition were present on the mobile platform. But, firstly, they were not sufficient for proper working with reports, and secondly, they could not be used from 1C:Enterprise script.

Read more...

Add-in technology for mobile 1C:Enterprise applications

This feature is implemented in 1C:Enterprise version 8.3.9.1818.

For the mobile platform, we have implemented support of add-in technology. You can create Native API-based add-ins in the same way as it is done on the platform for personal computers. Of course, there are some specifics that are associated with mobile operating systems. But in general, everything is very similar.

When developing an add-in, you must create its variants for all operating systems that interest you and for all processors of mobile devices, where it is supposed to work. All of these variants must be placed in a ZIP archive and then in an Add-in configuration template (this is the only way to add the add-in to your configuration). This is a new type of template that we added to the platform.

Read more...

Photo:

Improving performance of web services

This feature is implemented in 1C:Enterprise version 8.3.9.1818.

In version 8.3.9, we implemented a significant number of tasks to optimize different mechanisms of the platform. We would like to tell you about one of them in this article. The task in question concerns improved performance of web services.

Reuse of sessions

Insufficient performance of web services was due to the fact that each web service call had significant "overhead expenses" related to creating and terminating a session. Besides, every time a session was created, the handler SessionParametersSettings() was executed, which could be quite "heavy" in a standard configuration.

In addition, there was a functional deficiency. Web services did not have a state. This prevented us from implementing the logic that uses saved state between web service calls.

In version 8.3.9, we fine-tuned the mechanism for web services (SOAP services, HTTP services, and OData services). As a result, their performance has improved by approximately 10 times.

Read more...

Support for new features of mobile devices

This feature is implemented in 1C:Enterprise version 8.3.9.1818.

We continue to expand our support for functionality specific to mobile devices. The new features that we have implemented in the platform will allow you to develop more convenient and functional applications.

Improved notifications

Some time ago, we taught mobile apps to work with push and local notifications. If a notification arrives on a phone at the time when the application is not active or is not running, it is processed by the operating system. For example, it can play a sound to attract the user's attention.

And if a notification comes at the time when the application is active, it is delivered immediately to the application, where it is processed by the notification handler assigned by you. Previously, 1C:Enterprise did not offer a feature that would attract the user's attention while 1C:Enterprise script is executed. We do offer it now.

We have added a new PlaySoundAlert() method to the MultimediaTools object. It plays back a brief sound and/or vibrating alarm on your mobile device. You can choose either a standard sound signal or use an audio file that you included in the mobile application.

Read more...

Module extensions

This feature is implemented in 1C:Enterprise version 8.3.9.1818.

In short, you can now use extensions to modify the modules of standard configurations and add new modules.

Or rather, now you can change any modules, with the exception of ordinary form modules:

  • Common modules
  • Object modules (object module, manager module, etc.) for all types of objects
  • Session module
  • Managed application module
  • External connection module
  • Command modules
  • Form modules
  • etc.

Please note that you were already able to modify managed form modules in the past, but now we have introduced some changes to this process.

For the simplicity sake, we will refer to the phrase “procedure/function” as “method”. Thus, all changes that you can implement in the modules can be divided into 4 groups:

Read more...

Photo:

Development of configuration extensions

This feature is implemented in 1C:Enterprise version 8.3.9.1818.

As we promised in the previous article, we are gradually expanding the functionality of configuration extensions and improving their applicability diagnostics.

Adding roles


In the past, it was possible to change roles of a standard configuration by adopting them and adding to them objects created in the extension. Now you can create roles in extensions.

We can see two major scenarios involving use of added roles. Firstly, they may be required to create atomic or complex sets of rights to the objects that the extension brings to the configuration (without any binding to the roles existing in the configuration).

Secondly, you can use them to create atomic or complex sets of rights to the configuration objects that take into account specifics of the functionality implemented in extensions.

Read more...

Photo:

Development of tools for working with binary data

This feature is implemented in 1C:Enterprise version 8.3.9.1818.

We have implemented a number of low-level tools for working with binary data. Now you can handle such tasks as:

  • Interaction with specialized devices using a binary protocol
  • File parsing and operations with files in different formats
  • Converting text data to binary data directly, for example, to send reports
  • Working with binary data in the memory

Previously, the platform had a number of methods available for working with files and the BinaryData type. But they did not provide any easy way to analyze the internal contents or modify it. All actions were performed for all data at the same time. The only operation that could be done with a portion of the data is splitting a file into parts and putting it back together.

Now the platform provides tools both for sequential operations with large amounts of binary data and random access to relatively small amounts of binary data entirely in RAM.

Read more...

Photo:

Thin client on touch screens

This feature is implemented in 1C:Enterprise version 8.3.9.1818.

For a thin client, we implemented scrolling and zooming gestures in order to ensure comfortable work with touch screens.

You can scroll through text documents, text boxes, graphical schemas, planners, and formatted documents with two fingers.

b3613c635e54fe8b5541833fedf6235d.png

Read more...

Photo:

Methods of integration with 1C:Enterprise applications

What are the most essential requirements for business applications? The following tasks are among the most important ones:

  • Ease of modification/adaptation of application logic for/to changing business objectives.
  • Ease of integration with other applications.

The solution to the first task in 1C:Enterprise was briefly described in "Customization and support" section of this article; then we described it in detail here. Today, we will talk about the second task - namely, integration.

Integration tasks


Integration tasks can be different. To solve some of them, all you need to do is just perform an interactive exchange of data - for example, to send a list of employees to a bank in order to process payroll cards. More complex tasks may require a fully automated data exchange, possibly with involving the business logic of the external system. There are tasks that are specialized, such as integration with external equipment (for example, retail equipment, mobile scanners, etc.), or with legacy or highly specialized systems (for example, RFID tag recognition systems). It is essential to choose the most suitable integration method for each task.

Read more...

Photo:
Pages: 1 | 2 | Next