
Assigning Users to Production Servers
Support for Formatted Strings in the Data Composition System
Persistent Data Storage in the Data Accelerator
Enhancements to the Collaboration System
Increased Number of Records in Tabular Sections
WebSocket Protocol Support
Scheduling Process Restarts for the Production Server
By popular demand, version 8.3.27 introduces the option to set a schedule for restarting processes on a production server.
In previous versions, the process restart interval applied to the entire cluster. The interval was calculated from the moment a process started (when it transitioned from “reserve” to “production” status), which made predicting the actual restart time difficult. A restart might occur during peak load and slow down the system. It was also undesirable to restart processes on servers running long operations (for example, updating the infobase with Designer).
To address these scenarios more effectively, version 8.3.27 offers two new features:
-
The option to specify an exact schedule (that is, a precise time) for process restarts.
-
The option to set a restart schedule for each production server.
A new parameter, Restart Schedule, has been added to both the cluster settings and the production server settings. This parameter is a string in Unix cron format, using the first five fields of the standard cron notation.
The schedule is defined by five entries (minutes, hours, days, months, days of the week) separated by spaces. Each entry can contain a number, a list of numbers separated by commas, a range of numbers separated by a dash, the “*” symbol, or “/.” Examples include:
-
* * * * * (every minute)
-
*/10 * * * * (every 10th minute: 0, 10, 20, etc.)
-
0 0 * * * (every day at 00:00)
-
0 3 * * 6 (every Saturday at 03:00)
You can now also manually stop a specific production process.
This new functionality for setting a process restart schedule for the entire cluster or individual servers, as well as manually stopping a specific production process, will be made available through:
-
The rac utility (via new command-line parameters)
-
The Java API
-
The 1C:Enterprise language
-
The MMC-based server management console
-
The Technical Specialist Tools > Server Management form
These improvements make the platform more convenient for administrators and help prevent unexpected restarts that might disrupt the system for end users.
Assigning Users to Production Servers
In response to user requests, version 8.3.27 adds the ability to connect specific clients to selected servers in a cluster. Certain business scenarios call for assigning particular users to specific production servers. For example, it can be advantageous to run cost calculations on dedicated servers so regular users are not impacted.
To address these scenarios, you can now distribute user connections across production servers based on the user name or the User Assignment Rule Key (a parameter stored in the infobase user settings) by using the Functionality Assignment Requirement (FAR) mechanism for the cluster. Administrators can set the corresponding user parameter in the Designer, in Technical Specialist Tools > Users, or through the standard administration API.
To configure user distribution across servers, use the ТНФ object “Client Connection to the Infobase” (Connection) with the additional parameter value UserName.<InfobaseUserName> or UserAssignmentRuleKey.<UserAssignmentRuleKeyName>. For the Connection object, the Infobase Name parameter is optional. If it’s not specified, the requirement applies to all infobases.
For instance, if the user’s FAR key is “CostCalculationGroup”, the additional parameter value would be UserAssignmentRuleKey.CostCalculationGroup.
This new functionality increases the flexibility of the 1C:Enterprise platform by making it possible to distribute connections for specific infobase users across production servers depending on current business needs. In particular, resource-intensive tasks (like cost calculation, payroll calculation, period closing, etc.) can now be directed to specialized servers.
Support for Formatted Strings in the Data Composition System
In version 8.3.24, we added support for using formatted strings in table document cells. Building on developer and user feedback, version 8.3.27 extends that support to the Data Composition System.
Now, formatted strings can be used in the Data Composition System when generating table documents. Users or report developers can:
-
Insert formatted strings in cells within predefined templates.
-
Employ 1C:Enterprise language functions that return a formatted string in the data composition layout.
-
Use formatted strings as text in conditional formatting.
-
Generate reports where fields displayed in a single cell can appear with different styles (for example, by applying conditional formatting).
Relevant 1C:Enterprise language objects and platform mechanisms have been enhanced to provide this new functionality.
As a result, report design in the Data Composition System can now be customized more extensively.
Persistent Data Storage in the Data Accelerator
A while ago, 1C:Enterprise introduced database copies, which replicate data from selected configuration objects into a dedicated database. The platform can use these copies to process queries, run the Data Composition System, and handle queries for the 1C:Analytics BI system without putting extra load on the production database.
To store these data copies, you can use either a regular DBMS or the Data Accelerator (a proprietary 1C in-memory database that holds data in the server’s RAM). Because the Data Accelerator stores data in structures optimized for analytical reporting, significant performance gains are possible.
However, keeping data only in RAM has drawbacks, including:
-
If the server hosting the Data Accelerator reboots or fails, or if the Data Accelerator itself restarts, all data in the copy must be reloaded from the production database. This process can be time-consuming for large data sets.
-
The total size of the data copy cannot exceed the memory available to the Data Accelerator.
To address these issues, version 8.3.27 introduces an option for the Data Accelerator to store data on disk. You can configure the storage path in the standard interface (under Directories for Storing Cluster Service Data).
When persistent storage is enabled, all copy data is written to disk. During a query, any portions of data not already in memory are loaded as needed, and the query is then processed in memory.
Support for this feature is coming to:
-
The 1C:Enterprise language
-
The Java API and COM API
-
The Functions for Technician > Server Management form
-
The MMC console
-
The rac utility
This functionality is primarily intended for large-scale deployments. It can significantly improve system performance by allowing faster Data Accelerator startup times (no need to reload everything from the production database). In addition, the Data Accelerator can potentially use less memory overall by unloading “cold” (rarely accessed) data from RAM.
Enhancements to the Collaboration System
We continue enhancing the Collaboration System, adding support for video calls in the thin client on Linux, contextual discussion search, and the option to initiate WhatsApp conversations.
Video Calls in the Thin Client on Linux
In version 8.3.27, based on user feedback, we introduced support for video calls in the Collaboration System for the Linux thin client. Previously, Linux users could only make video calls using the web client. Additional improvements to the Collaboration System are also included.
Search in Context-Based Discussions
In response to numerous user requests, we've added the option to search through context-based discussions in the Collaboration System. This feature is integrated into the global search functionality. Results from context-based discussions are marked with a group discussion icon. Each search result displays the name of the discussed object, the author of the message, and the message text itself.
Initiating WhatsApp Conversations with Clients
Previously, the Collaboration System integration with WhatsApp followed this scenario:
1. A WhatsApp business account was created for use with the Collaboration System.
2. An external client initiated a message to the WhatsApp business account.
3. The external client then appeared as a contact in the Collaboration System, allowing responses.
Previously, if the client had never contacted your business, initiating a conversation from the Collaboration System wasn't possible.
Starting with version 8.3.27, the Collaboration System lets you proactively initiate WhatsApp messages to your clients.
WhatsApp Business API supports sending templated messages to clients who haven't previously messaged you. Version 8.3.27 includes support for this feature, enabling message delivery directly to a client's phone number.
The 1C:Enterprise language has been expanded accordingly to support this feature.
This new functionality allows you to proactively initiate client interactions and implement new business scenarios, such as sending notifications or updates to lists of contacts.
Increased Number of Records in Tabular Sections
Responding to user requests, especially from large-scale implementations, version 8.3.27 significantly increases the maximum number of records that can be stored in tabular sections.
Previously, a tabular section could store up to 99,999 (100,000 minus 1) records. However, some applied solutions require tabular sections within documents to accommodate a larger number of entries. For example, the "Indicators" tabular section in a payroll calculation document might require many more records.
To address this, a new property, LineNumberLength, has been added to the MetadataObjectTabularSection configuration object.
This property can have an integer value between 5 and 9 inclusive, enabling tabular sections to store up to 999,999,999 records.
In configuration extensions, the LineNumberLength property currently cannot be overridden for inherited tabular sections (the option to override it is planned for version 8.3.28). However, for newly added tabular sections within extensions, you can set the LineNumberLength property directly.
This change substantially expands the scalability and flexibility of 1C:Enterprise applied solutions, allowing tabular sections in documents to accommodate more extensive datasets effectively.
WebSocket Protocol Support
Responding to numerous requests from developers using the 1C:Enterprise platform, version 8.3.27 introduces support for the WebSocket protocol.
WebSocket Client Metadata Object
In addition to dynamic interaction with the WebSocket protocol through code, you can now create WebSocket Client metadata objects directly within the configuration. These are located in the Common section of the metadata tree. The WebSocket Client object has a dedicated module for implementing event handlers.
You can interact with WebSocket Client metadata objects through code executed on the server, in the thick client, and in external connections.
1C:Enterprise Language
The 1C:Enterprise language now includes new objects to support the WebSocket protocol. A typical WebSocket workflow in the 1C:Enterprise language is as follows:
-
A WebSocket connection is created by specifying the URI of the WebSocket server.
-
Event handlers can be set up for connection events such as connection opening, message receipt, connection closing, or connection errors.
-
After establishing the connection, the external WebSocket server can send messages to the 1C application. Each received message triggers the corresponding event handler.
-
Data transmission (string or binary data) from the 1C application is performed through an open WebSocket connection.
The 1C application acts as a WebSocket client and initiates the connection. WebSocket client connections can be created in the thick client, thin client, web client, and on the server.
WebSocket Client Management for Technical Specialists
A new WebSocket Client Management function is now available in the Functions for technician... menu . This is particularly useful for implementations involving multiple similar WebSocket servers communicating with the 1C application.
Usage Scenarios
Using the WebSocket protocol in 1C applications allows developers to implement integration scenarios without external components. Examples include:
-
Integration with telephony services
-
Integration with digital signature services
-
Integration with message brokers such as RabbitMQ and ZeroMQ
Rapid communication is enabled with applications supporting the WebSocket protocol, including instant messaging systems like Discord, embeddable web servers like Mongoose, web and application servers like Barracuda and Resin, and message brokers such as Lightstreamer.
The WebSocket protocol establishes a single connection and delivers responses immediately when available, unlike HTTP, which requires repeated requests. Messages arrive quickly and efficiently, without delays or additional network overhead. WebSocket is optimal in scenarios requiring rapid communication. For example, when developing a customer portal displaying real-time metrics from a 1C infobase, such as status updates and notifications, WebSocket is an ideal solution.