TechBlog



Usability of tabs panel in main application window

This feature is planned for 1C:Enterprise version 8.3.10.

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 planned for 1C:Enterprise version 8.3.10.

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 planned for 1C:Enterprise version 8.3.10.

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 planned for 1C:Enterprise version 8.3.10.

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:

1C:Enterprise in the cloud

The concept of cloud services for business applications is as simple as moving the application servers from the on-premises network to the Internet. The end users continue working with the same software (either the native client or the web client); the only thing required is an Internet connection. They no longer need to log on to the local enterprise network (directly or through VPN). Moreover, if the enterprise uses the SaaS model, the end users do not need to worry about software administration and updates any longer—the cloud service provider hosting your application servers will manage these tasks.

fbec4c7ee596fba90ee8190d6538bafc.jpg
Eye catcher image: the author of this article illustrates the "1C:Enterprise in the cloud" concept by using simple objects: clouds, banner, aircraft, parachute.

1C:Enterprise applications support both HTTP and HTTPS connections, making for a seamless transition of 1C:Enterprise application servers to the Internet. That's all you need to create a basic 1C:Enterprise cloud solution.

Read more...

Photo:

Customizing 1C:Enterprise applications

The demand for software customization (modification for specific user needs) is as old as the first invented software. It is virtually impossible to write an application that suits the specific needs of all users. Thus, adding the option to customize an application without developer assistance is an idea whose time has come. And it shines in business applications because business processes can significantly differ even in enterprises that belong within the same field of business.

34bcd83584868b51374268948b4b4822.jpg

Customization of source code

There are several customization strategies. If an application is delivered with its source code, the most obvious solution is editing the code. However, this can significantly impact future updates because merging the altered application with its new version obtained from a vendor can often be difficult, especially if the application is heavily customized.

Read more...

Photo:

Considerations on 1C:Enterprise web client

One of the nice things about 1C:Enterprise is that you can run an application developed using the "managed forms" technology not only in the thin client for Windows, Linux, or MacOS X, but also in the web client that supports 5 browsers, including Chrome, Internet Explorer, Firefox, Safari, and Edge. And you don’t even need to change anything in the application source code!

Moreover, the application has almost the same look and feel in both clients. Try and see if you can find a few differences:

Read more...

Photo:

Configuration extensions

We have brought about a brand new method of adapting applications for specific consumers: the extensions method.

What’s good about extensions?

Extensions offer a different strategy than the already existing one, which involves a change in standard configurations. The use of this new strategy will substantially facilitate the support of standard solutions adapted to the needs of a specific deployment, or a specific customer.

Read more...

Photo:

How we develop 1С:ERP and other software products

In one of the previous articles we described the procedure of 1C:Enterprise platform development. Today we would like to talk about the development of the 1C:Enterprise application with the richest functionality: 1С:ERP Enterprise Management 2.

1С:ERP is an innovative solution and an ideal basis for designing integrated information management systems for diversified enterprises, including those with technically complex multiprocessing production procedures, based on global and local best practices for medium-sized and large business automation.

Read more...

Photo:

About workflow

In this article, we demonstrate how we structure the workflow for the 1C:Enterprise platform, we show the way we perform quality assurance, and we also share with you some of the lessons that we’ve gained from creating one of the most popular software systems in Eastern Europe.

People and processes

Several groups of up to 10 programmers each are busy working on the platform. Three quarters of them write in C ++, while the rest of them write in Java and JavaScript.

Read more...

1C:Enterprise platform: How we decide what to do

This article is meant to answer a single question: how we decide what to implement in 1C:Enterprise platform and when.
4972d7eaef5e161e7290c703dc7a6a97.jpg
We rarely hear this exact wording, but questions like "Why did you do this?", "Why DIDN'T you do this?", "Why don't you do this?", "When are you going to do this?", "Will you ever do this or not?!!!", and so on, come up over and over again.
OK, let's try to explain how we decide what to do.

Read more...

1C:Enterprise platform: what's under the hood?

In this article we introduce the inner structure of the 1C:Enterprise 8 platform and the technologies used in its development.

045810f15cc4d16b068696a0a208c812.png

1С:Enterprise 8 is a major application with over 10 mln lines of code written in C++ (client, server, etc.), JavaScript (web client), and recently added Java. Major projects are interesting due to a lot of reasons, their scale among others, because the issues that go unnoticed in a small code base are highly visible in large-scale initiatives. And, of course, it is always interesting to know how other teams and companies work.

Read more...

Photo:

What do you know about 1C?

This is an article for those who are not yet familiar with 1C software products. It describes the capabilities of the 1C technological platform and where this platform fits in among similar software products.

8a0562b341d26eb51c9bb0502f4accf3.png

What does 1C produce?

I think the first thing the general public associates with us is the popular game series IL-2 Sturmovik. However, the 1C product range extends far beyond this series.

Read more...

Photo:

Simplified translation for 1C:Enterprise interface

Our partners did ask us to develop tools and methodology to translate partially an interface of 1C:Enterprise platform, needed for users to work.

We did that for you: since version 8.3.7 you can run a 1C:Enterprise application with a specific parameter, work a bit with the application, and have exported resources that used during that time. This lets you to translate a smaller part of the interface, spend less efforts to try the market that uses a language, which is not supported by 1C:Enterprise platform at the moment.

Read more...

Limiting full text search access for some roles

Is there any way to limit an access to 1C full-text search engines for some roles? Let’s see what can be done here.

Full-text search indexes all given strings and texts, compiling a dictionary - complete list of all words encountered along with the links to infobase objects containing those words. When a user run the search the engine goes to the dictionary, finds all the worlds mentioned and outputs the list of documents containing all or some of the words.

What if we (for security or usability reasons) don’t want some users to find some objects using full-text search?

Read more...

Photo:

Modifying the fonts on 1cfresh-based service

Preface

What if you are deploying 1cfresh-based service and need to customize the site fonts? Sure, why not. Let’s do it using Vietnamese service as an example:

Read more...

Photo:

Sizing guide for 1cfresh


Preface


There are two main questions to inevitably arise when deploying 1cfresh service (or any other system for that matter):

  • What kind of hardware do we need to cope with expected workload?
  • How many users can comfortably work with the service at the hardware configuration that we have?

Read more...

Files:

Using MS IIS as a front-end server for 1cfresh

Preface

1cfresh solution divides its functionality between two main service points:
fb3fa89438033c0f3da6bbb1516d5981.png
• Java server: hosts 1cfresh WWW site and conference
• Backend server: WEB service hosting 1C:Enterprise infobases.

To provide users with a single entry point, 1cfresh uses front-end server - middleware redirecting users' requests depending on their destination.

Read more...

Photo:

Example of choosing server-side hardware characteristics

Deploying 100-users 1C:DocFlow solution in Vietnam International Bank (VIB) we had to choose servers hardware characteristics for the system. We used the official 1C recommendations that can be find in this tech article. The main idea behind the article is that we can extrapolate the hardware component utilization of some live system (called Model) to our system, assuming that the model system users utilize the hardware components to the same extent as our users will.

Read more...

Photo:
Files:
Calculation.xlsx (11.93 Kb)
SQL.blg.zip (335.03 Kb)
1C.blg.zip (1.04 Mb)

Example of general performance issue resolving

One of the most important issues solved for Vietnam International Bank (VIB) was severe performance insufficiency reported by everyone who tried to use the system during its acceptance testing. Literally every user action (like opening a form or refreshing a list) used to take a few seconds while the more massive operations (like posting a heavy document) could take up to 30 seconds.

Read more...

Files:
SQLIO.xlsx (481.3 Kb)

1C:AccountingSuite - migrating to Taxi

Taxi is a new 1C:Enterprise interface providing better design, improved user experience, compatibility with touch interfaces (tablets), and better browser compatibility.

Read more...

Photo:

How to set up data exchange with a filter by company

1C:Subsystems Library 2.0 includes a demo exchange plan and rules that you can use to set up data exchange between two 1C:Subsystems Library infobases.
In this example we will set up data exchange between 1C:Subsystems Library 2.0.1.16 Demo (the first infobase) and a 1C:Subsystems library 2.0.1.16 infobase that contains no data (the second infobase).

Read more...

Photo:

How to set up sending and receiving email messages via Gmail account

To set up sending and receiving email messages via Gmail account, you have to enable SSL. 1C:Enterprice 8.3 provides tools for this. The article contains a simple example based on 1C:Subsystems Library 2.0 that shows you how to set up sending and receiving email messages using your Gmail account.

Read more...

Photo:

External users for company employees

In some cases it becomes useful to grant an access to infobase to a person related to some object in infobase. For example to let a contact person of a customer to create orders or an employee to view his salary and taxes.

Read more...

Photo: