Version 3.1

What’s new in versions

Version 3.1.12

Version 3.1.11

Version 3.1.10

Version 3.1.7

Version 3.1.6

Version 3.1.5

Version 3.1.4

Version 3.1.3

Version 3.1.2

Version 3.1.1

Version 3.1.12

Version 3.1.12 is a development of version 3.1 of 1C:Standard Subsystems Library (SSL). This SSL version requires 1C:Enterprise v.8.3.24 or later running in the Version 8.3.24 - Version 8.3.27 compatibility modes. For a complete list of new features, see sections What's new in version 3.1.11 and What's new for developers. Developers will also find an upgrade guide in section Migrating from version 3.1.11 to version 3.1.12 with mandatory steps for migration.

Developing configurations on 1C:Enterprise versions later than 8.3.27 may result in some bugs or limitations, as the current library version may not be able to handle certain new features. For example, introducing a new type of metadata object into the configuration could cause the library's algorithms, which are not designed to handle such changes, to fail. In addition, it is recommended that configuration extensions with compatibility modes higher than 8.3.27 not be developed or attached to configurations based on this version of the library. Instead, use the next version of the library that is specifically designed to handle the new compatibility modes and features of the 1C:Enterprise platform.

New features and updates introduced in SSL v.3.1.12

Export to files

  • You can now use nested row output conditions in JSON and XML templates

Print tools

The print form wizrad has been updated with a number of new features.

  • Using expressions:
    • Square brackets are added automatically when you move a function into the template.
    • You can use the FromNewLine operand to move lines within expressions.
    • You can compare field values with enumerations and predefined values. To do this with an existing field, add nested fields containing enumeration values ​​and predefined values ​​that can be used in expressions.
  • New functions:
    • IfEmpty() checks the value and adds the default one if it's not filled in. Syntax is now simpler.
    • RowPart() extracts text from the specified part of a string.
    • NumberInWords() displays a money amount in words.
  • Money amounts in words:
    • Displaying amounts in words for currency fields has been improved. Now, you can display all currencies of an object in words if there is more than one currency attribute in the object.
    • Displaying the amount in words for an object field is also possible if the object does not have a field containing a currency. In this case, the default value can be used.
  • The group of common attributes has been renamed to Common fields.

File management

  • You can now optimize disk space in high-performance storage systems. When the function is enabled, the application automatically detects outdated versions of files and moves them to more efficient archival storage, freeing up space on fast drives for operational tasks.
    You can enable this in the Configure file archive setting (section AdministrationFile management settings).
  • There are two options to store data to decrease the database size and load: in the built-in binary data storage (CORP) and external binary data storage (CORP). This allows large binary objects (document scans, photographs, audio and video recordings) to be stored not in a database but in specialized storage, i.e. a file system or in external S3 storage. These storage methods are only available when using a corporate license for the 1C:Enterprise platform.

Email management

  • The application registration in the mail service for email management using the OAuth 2.0 protocol has been removed from the mail setup wizard and is now performed separately in section AdministrationOrganizerEmail (Register your application in the OAuth service and Online service authorization settings).
  • The email setup wizard has been improved - recommendations for setup errors added, and manual setup options expanded.
  • To set up email in a web client with authorization on the mail service page (via the OAuth 2.0 protocol), you can use a new HTTP service, MailSeviceOpenAuthorization. It must be published on the web server along with the application. If a web client is not used, publishing the HTTP service on the web server is not required.

Digital signature

  • To improve the convenience of selecting and excluding redundant certificates from the list when performing operations that require the use of a key (for example, signing data), a column No key used has been added to the Users table of the Certificates of digital signature keys and encryption catalog. Filling in the column allows the certificate to be used for operations that do not require a key (for example, signature verification), but prohibits its use for operations where a key is required (for example, signing or decryption).

What's new for developers in version 3.1.12

Currencies

  • The list of available object fields is expanded when embedding the subsystem together with the Print subsystem in the print form wizard. If the object contains a CatalogRef.Currencies type attribute or a common field of this type, nested fields with amounts in words are added to the monetary type object fields (see the MonetaryAmountPositiveNegative and MonetaryAmountNonNegative type collections). At this, the currency for displaying the amount in words is determined automatically.
  • To redefine a default currency, use the API with the OnDefineObjectDefaultCurrency procedure of the CurrencyRateOperationsOverridable common module. In the method for the object type, specify the name of the object field or the name of the field from the list of object common fields that has the CatalogRef.Currencies type. See the example in the demobase.
  • If an object contains several attributes of the CatalogRef.Currencies type, you can use the CurrencyRateOperations.ConnectPrintDataSourceNumberWritten procedure expanded with the FieldSourceName parameter in the API. When specifying the source of fields, additional wording options are added to the monetary fields of the object for all currencies specified in the object's attributes.

Data exchange

  • The API of common modules is updated:

    • DataExchangeClient:
      • OpenCompositionOfDataToSend
    • DataExchangeXDTOServer:
      • ConfirmSendingSelectiveDataUploadMessage
      • InitializeSelectiveDataUpload
    • ExchangeMessagesTransport:
      • StructureOfTransportParameters
      • StructureOfResultOfObtainingParametersOfCorrespondent
    • DataExchangeOverridable:
      • WhenDeterminingWhetherSynchronizationSettingHasEnded
        For more information, see comments to these procedures.
  • For exchanges via the universal format EnterpriseData, you can limit the list of exported reference data, instead of exporting all changes registered on the exchange node. This new feature is available via the DataExchangeServer.PerformExchangeAction with dedicated additional parameters. Example of use:

    1. Prepare a list of references ReferencesForExport and initialize data export.
    AdditionalParameters = Undefined;
        
        DownloadableLinks = DataExchangeXDTOServer.InitializeSelectiveDataUpload(
            ExchangeNode, ReferencesForExport, AdditionalParameters);
        If DownloadableLinks.Count() = 0 Then
            Return;
        EndIf;
    
    1. Export data using a configured exchange message transport.
    Cancel = False;
        
        DataExchangeServer.PerformExchangeAction(
            Cancel,
            ExchangeNode
            Enums.ActionsOnExchange.DataExport,
            "<ID of configured message transport>",
            AdditionalParameters);
    
    1. Confirm the export if the exchange message is successfully sent.
    If Not Cancel Then
        DataExchangeXDTOServer.ConfirmSendingSelectiveDataUploadMessage(
            ExchangeNode,
            AdditionalParameters);
    EndIf
    

Print tools

  • You can now expand the list of common fields (the CommonAttributes group) in the print form wizard. Use procedure PrintManagementOverridable.OnFillListOfCommonFields. See an example in the OnFillListOfCommonFields procedure of the PrintManagementOverridable common module.

File management

  • To override the custom management logic for files located in the file archive (for example, to check their availability and open a custom form for submitting a request to the administrator if the file is unavailable), an overridable procedure OnExecuteActionWithFile of the FilesOperationsClientOverridable has been added.

  • You can perform asynchronous retrieval of binary data from attached files in the OpenFile and SaveFileAs functions of the FilesOperationsClient common module.
    To use this feature, the first parameter of these functions must be the result of the FilesOperationsClient.AsynchFileReceiptParametersconstructor function.

  • To improve code readability, the FilesOperationsClientServer.AdditionalParametersFileDataForSave constructor function has been added. This function is designed to initialize the second parameter of the FilesOperationsInternalServerCall.FileDataToSave function.

  • You can disable the file archive mechanism in the software in cases where its use in the configuration is not required. To do this, use the IsFileArchiveAvailable property in the Settings parameter of the OnDefineSettings procedure of the FilesOperationsOverridable common module.
    To disable it, you need to override this property by setting its value to False.

Access management

  • Now you can disable support for the standard access restriction option using the StandardOption setting in the AccessManagementOverridable.OnDefineSettings procedure (see details in the comment for the procedure). This is useful both for configurations designed from the start with only the performance-oriented access restriction option, and for configurations that are planned to no longer support the standard option.

  • You can completely disable access restrictions at the record level using the CaptionsLevelRestrictions in the AccessManagementOverridable.OnDefineSettings procedure (see details in the comment for the procedure). This is useful both for configurations developed without using record-level access restrictions, and for special configuration builds, such as base versions (if they were not planned to support RLS).

  • You can now configure access restrictions at the record level for the Certificates of digital signature keys and encryption catalog. Restrictions are set up for users and companies.

    • Rights to the specified metadata objects are no longer included in the BasicAccessSSL role.
    • For unrestricted rights, use the ReadKeyCertificatesOfDigitalSignatureAndEncryption and AddEditDigitalSignatureAndEncryptionKeyCertificates roles.
    • For record-level access restriction, use the RLS-supported roles: ReadDigitalSignatureAndEncryptionKeysPersonalCertificates and AddEditDigitalSignatureAndEncryptionKeysPersonalCertficates.
    • By default, profiles are assigned roles without restrictions.
    • See details on the setting in the Documentation, Chapter 3, section Digital signature - Setting - User access setup and Special cases of integration.

Migrating from version 3.1.11 to version 3.1.12

Required migration actions

In this section, you can read about additional migration instructions for each subsystem that you need to perform in Designer after comparison and merging. See Chapter 2 in the Library integration guide.

To update the following overridable and localizable common modules, copy the new export procedures from the library distribution package and delete the obsolete ones. Also, make sure that comments, the number of parameters, and the parameter names of each procedure match their library equivalents:

  • DataExchangeOverridable
  • DataExchangeSaaSOverridable

Modified localizable common modules:

  • DigitalSignatureClientLocalization

For recommendations on how to use the new features of overridable and localizable common modules, see What's new for developers above.

To ensure compatibility with previous library versions, an API is provided in all subsystems. It includes library metadata objects that are used in the application code:

  • Names and parameters of export procedures and functions of common modules, object modules, manager modules, and record set modules located in the Public area.
  • Names and parameters of all export procedures and functions of overridable and localizable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that you can access from the application code or queries.

Using the API makes it easier to update to new library versions without having to revise the application code. In this section, you can read about necessary instructions for rare cases when such compatibility is not provided and you need to customize the configuration to a new library API. However, the section does not describe changes in internal procedures and functions of the library that are not related to the API even if these are export procedures and functions. When you call these functions and procedures from the configuration, note that they can be changed, moved, or deleted in the next library version as they represent its internal implementation.

Once the migration is completed, we recommend that you use the SSL integration check tool included in the library distribution package as the SSLImplementationCheck.erf external report.

Core
  • Include the code snippet from the library distribution package marked with the // StandardSubsystems … // End StandardSubsystems comment in the following handlers of the managed application module:
    • OnGlobalSearch
    • OnGlobalSearchResultChoice
    • OnGlobalSearchResultActionChoice
    • NavigationByURLProcessing
Email management
  • Exclude the CommonSettingsForInternetServicesAuthorization catalog from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.
File management
  • Exclude the following metadata objects from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps:

    • Constant ShouldUseFileArchive
    • Constant BinaryDataEmbeddedStorageBackupsDirectoryForLinux
    • Constant BinaryDataEmbeddedStorageBackupsDirectoryForWindows
    • Constant TransferredFilesPortionSize
    • Constant UserNotificationTextForUnavailableArchivedFile
    • Information register BinaryDataEmbeddedStorageBackupHistory
    • Information register FileArchiveOperationsSettings
Digital signature
  • The rights to read the Certificates of digital signature keys and encryption catalog are no longer included in the BasicAccessSSL role. The ReadDigitalSignatureAndEncryptionKeysPersonalCertificates role with the same rights as the BasicAccessSSL role will be added to access group profiles (except for those supplied) containing one of these roles: AddEditDigitalSignatures, EncryptAndDecryptData, DataDecryption.
    In the application code, specifically in the description of the supplied profiles, the ReadKeyCertificatesOfDigitalSignatureAndEncryption role must be added in accordance with the role assignment.

Optional migration actions

The actions listed below are not required for migration, but we recommend that you perform them in the future.

Migrating from earlier versions to version 3.1.12

When migrating from earlier library versions (up to 3.1.12):

  • Compare and merge the current version with the distribution file of the latest library version that you migrate to in Designer.
  • Follow the instructions from all the Migrating from version B to version A sections for each skipped version.

Migrating to patch releases 3.1.12

Patch releases of the library differ only in the fourth number of the full version number, for example: 3.1.12.1, 3.1.12.20, 3.1.12.300, and so on. To update to patch releases, use the UpdateToCorrectiveVersionSSL.epf external data processor from the distribution package. It will save you a lot of time during regular (for example, weekly) updates.

Run the data processor in an infobase with a configuration that contains the previous library release, specify the CF distribution file for the new library version, and click Update to hotfix version. This automatically compares and merges the previous and the new library configurations according to the settings described in the documentation. All built-in library objects will be copied, and objects overridden during integration will be merged prioritizing new vendor configuration (for example, type collections) or skipped (for example, overridable modules). The database configuration is not updated automatically after comparison and merging. So, you can compare new data with the database configuration and make changes to the modified objects: overridable modules, various local fixes, and enhancements.

Another option is to generate a comparison and merging settings file by clicking Generate a settings file. After that, you can open this file in Designer to compare and merge configurations manually.

After you have compared and merged the configurations, we strongly recommend that you use the SSL integration check tool distributed with the library as an external report SSLImplementationCheck.erf.

Version 3.1.11

Version 3.1.11 is a development of version 3.1 of 1C:Standard Subsystems Library (SSL). This SSL version requires 1C:Enterprise v.8.3.24 or later running in the Version 8.3.24 - Version 8.3.27 compatibility modes. For a complete list of new features, see sections What's new in version 3.1.11 and What's new for developers. Developers will also find an upgrade guide in section Migrating from version 3.1.10 to version 3.1.11 with mandatory steps for migration.

Developing configurations on 1C:Enterprise versions later than 8.3.27 may result in some bugs or limitations, as the current library version may not be able to handle certain new features. For example, introducing a new type of metadata object into the configuration could cause the library's algorithms, which are not designed to handle such changes, to fail. In addition, it is recommended that configuration extensions with compatibility modes higher than 8.3.27 not be developed or attached to configurations based on this version of the library. Instead, use the next version of the library that is specifically designed to handle the new compatibility modes and features of the 1C:Enterprise platform.

What's new in version 3.1.11

The library now includes a new subsystem Export to files, which is used in conjunction with the Print tools subsystem. It enables users to export documents, catalogs, and other application objects into files of various formats using customizable templates. The list of export templates is configured individually for each document in Administration > Print forms, reports, and data processors > Export file templates. You can insert any field or tabular section into the template in the desired order, and select the output file format from DBF, XML, JSON, HTML, TXT, XLS, XLSX, or MXL. To export a specific document to a file using a template, use the Export to file submenu in the document card, list or journal. You can also attach the generated file directly to the document if it supports attachments, or configure message templates for distribution along with the required export templates. For an example of how to configure export templates, see the _DemoCustomerProformaInvoice document in the demo infobase.

Core

  • Using the Allow access to web services checkbox (Administration > Online support and services > Online support settings), you can disable all web service requests from the application. This speeds up the application if internet access is blocked by an administrator. The application will no longer stall while waiting for web requests or attempting to run diagnostics.

Contact information

  • In international versions of 1C solutions, address entry is now divided into multiple fields—such as street, city, and so on—to simplify the process and reduce errors. This change streamlines order creation, product delivery, and the handling of legal and postal services, making these processes more accurate and convenient. As before, 1C solutions support entering addresses in free form.

Data exchange

  • The connection parameters configuration step in the data synchronization settings wizard has been enhanced—it now comprises three actions (eliminating the need for a separate connection configuration wizard):
    • Choosing a connection (transport) type
    • Configuring a connection
    • Configuring general parameters
  • New connection types are available to access external applications: Google Drive and Internet (over HTTP).``
  • The data synchronization settings list (Administration > Data synchronization > Data synchronization settings) now contains an icon representing the transport type in use. Double-click this icon to open the connection configuration form.
  • In the synchronization settings window, navigation to the connection settings has been streamlined. They can now be accessed via the Connection settings hyperlink in the navigation panel.

Conversations

  • In the Messages from other applications section (Administration > Online support and services > Conversations), you can now add new types of integrations: Website chat and Webhook integration.

Print tools

  • Some print forms are classified as default. These forms are used to validate source documents for business transactions. Examples of such forms for the Customer invoice document include Consignment note (TORG-12), Universal transfer document (UTD), Certificate of rendered services, Invoice, etc. In the documents, default print forms are listed first in the Print submenu. To the left of the submenu, there is a Default print button, which allows you to reprint the last default print form of the document. If no previous form exists, it will print the last one for the counterparty or company associated with this document type.
  • For better usability, the print form template editor now features buttons for aligning text within cells: auto-align and wrap. Also, by clicking More actions > Text alignment, you can access further text alignment commands. Text formatting buttons are now disabled when an image is selected in the editor.
  • Improved usability of the print form template list, which can now be sorted by UI sections or objects such as catalogs and documents. (see Administration – Print forms, reports, and data processors – Print form templates).

Scheduled jobs

  • The Lock operations with external resources command has been added to the list of scheduled and background jobs (Administration > Support and service > Scheduled jobs > Scheduled and background jobs > More actions). This command allows you to mark an infobase as a copy when you need to temporarily lock scheduled jobs that access external resources. The mark can be removed in the same list.

Access management

  • The functionality for analyzing user access rights to application documents and catalogs has been enhanced to account for record-level security (RLS) restrictions. To support this, two contextual reports are now available in the document lists, document cards, and catalog items (More actions > Reports):

    • The User rights to object contextual report allows you to view the rights associated with a specific document, catalog item, or any other object, taking into account RLS restrictions. To access the report, click Rights to document or Rights to catalog item in More actions > Reports.
    • The User rights by allowed value contextual report can be opened in the cards of companies, warehouses, cash accounts, and other objects (access kinds) that define access restrictions. This report shows which users have access to data related to the selected company (warehouse, cash account, etc.). For example, it may show that three users have the rights to view orders and enter invoices for the company Orion LLC. To access the report, click Rights by allowed value in More actions > Reports.
  • The Access rights analysis report now also includes information about available non-interactive rights such as Read, Update, and Insert, which provide access to data in less obvious ways—programmatically through extensions, external reports and data processors, or through the query console, etc. These details are displayed when the corresponding interactive rights—View, Edit, and Interactive insert—are disabled in the roles. You can find this report in Administration > Administrator reports.

  • For added convenience, the Access rights analysis report can now open the Role rights report directly from a table drill-down. The drill-down options for a specific field are now accessible through the right-click context menu.

Message templates

  • In email templates, you can attach not only print form templates and files, but also export templates (if configured).

Digital signature

  • Digital certificates can be added not only from the Personal store but also from a file (Digital signing and encryption settings > Add… > Signing & encryption certificate from file…). If the certificates being added are not present in the Personal store, they will be automatically installed.
    • To add a certificate from the Personal store, click Add… > Signing & encryption certificate from Personal store…
    • Also, when choosing signing and encryption certificates, you can add a certificate from files or issue a new one (Add from file… and Issue certificate… in the certificate selection form).
  • Using the Allow access to web services checkbox (Administration > General settings > Digital signature), you can disable all web service requests from the application—such as troubleshooting suggestions or automatically updating CRLs when verifying certificates. This saves network traffic when these services are not required. It also speeds up the application if Internet access is blocked by an administrator. The application will no longer stall while waiting for web requests or attempting to run diagnostics.
  • The initial setup process has been greatly simplified for users new to digital signatures in the web client. All required extensions and add-ins can now be installed with a single click.

What's new for developers in version 3.1.11

To simplify the development of localized solutions, common modules with the Localization suffix have been added for most subsystems. These modules include export procedures for accommodating local features:

  • GetFilesFromInternetLocalization
  • FilesOperationsLocalization

Core

  • In the OpenFile, SaveFile, and SaveFiles procedures of the FileSystemClient common module, you can also specify a URL to an object attribute that stores binary data (previously, you could only specify the temporary storage address).
  • To easily supplement text and set a more appropriate error category on exception rethrows, use the CommonClientServer.ExceptionClarification function. For more information, see Catching exceptions. Example:
Try
    DownloadFile(...);
Except
    ErrorInfo = ErrorInfo();
    Refinement = CommonClientServer.ExceptionClarification(ErrorInfo,
       NStr("en = 'Cannot download the file:'"));
    Refinement.Text = Refinement.Text + Chars.LF + NStr("en = 'Possible reasons:
       | • No Internet connection.
       | • Problems on the web node.
       | • Firewall or another middleware (antivirus software, etc.) locks attempts to connect to the Internet.
       | • Internet connection is established through a proxy server, but its parameters are not specified in the application.'");
    ForAdministrator = InternetConnectionDiagnostics(); // Detailed error presentation for the event log.
    Raise(Refinement.Text, Refinement.Category,, ForAdministrator, ErrorInfo);
EndTry;
  • To analyze application error codes, you can use the function CommonClientServer.IsExceptionWithErrorCode. This function recursively finds one or more relevant error codes in all nested exceptions (in the ErrorInfo.Cause property), which is convenient when the exception is rethrown up the stack. For more information, see Catching exceptions. Example:
Try
    RunUpdate();
Except
    If CommonClientServer.IsExceptionWithErrorCode(ErrorInfo(),
            "StandardSubsystems.Core.ConfigurationModifiedDynamically
            |StandardSubsystems.Core.ExtensionsModifiedDynamically") Then
        RestartBackgroundJob();
        Return;
    EndIf;
    Raise;
EndTry;
  • To open the metadata object selection form, use the procedure StandardSubsystemsClient.ChooseMetadataObjects. Selecting metadata objects is useful in various scenarios, such as selecting sections of the command interface, selecting sections and objects for searches, and in reports. You can select one or more objects, filter based on selected subsystems and objects, toggle object grouping (by subsystem or type of metadata objects), etc. For a complete list of parameters, see the constructor function StandardSubsystemsClientServer.MetadataObjectsSelectionParameters.

  • To open a form for viewing and editing spreadsheet documents, use the procedure StandardSubsystemsClient.ShowSpreadsheetEditor and the constructor function StandardSubsystemsClient.SpreadsheetEditorParameters. To view differences in spreadsheet documents, use the procedure StandardSubsystemsClient.ShowSpreadsheetComparison and the constructor function StandardSubsystemsClient.SpreadsheetComparisonParameters.

  • The CommonClientOverridable common module is augmented with handler procedures for standard events of the managed application module: OnGlobalSearch, OnGlobalSearchResultChoice, OnGlobalSearchResultActionChoice, and NavigationByURLProcessing.

  • In some cases, in a SaaS environment, you may need to centrally retrieve and update secure storage data across all data areas from a session with no set separators. To avoid entering each area individually, optional parameter DataArea has been added to the functions ReadOwnersDataFromSecureStorage and ReadDataFromSecureStorage of the Common common module.

  • A new function, InterfacesVersions, was implemented in the Common module, which retrieves all available API versions from the InterfaceVersions web service in a single call.

  • The FirstSSLDeployment.epf external data processor now marks any subsystems already present in the configuration to facilitate the implementation of new subsystems. You can also load a previously saved list of subsystems from a file.

Report options

  • To make it easier to develop exchange plans for synchronizing data with the standalone mobile client, an API is provided in the ReportsSnapshots common module. For the implementation example, see the _DemoExchangeMobileClient common module.
  • List forms can now display open commands for non-contextual reports. To do this, you can set the IsNonContextual property in the ReportsOptionsOverridable.BeforeAddReportCommands procedure when defining report commands. When set to True, additional report options are available for selection. You can also add this report to your favorites and get a link to a report option. By default, the value is False.

Add-ins

  • The procedure AttachAddInFromTemplate and the function AttachAddInFromTemplateAsync in the CommonClient common module now return the symbolic name and location from which the add-in was attached: either the template name or a URL to the newer version of the add-in from the catalog. Using the symbolic name and location, you can check the add-in attachment using the platform method CheckAddInAttachment.
  • When using the AttachAddInFromTemplate procedure and the AttachAddInFromTemplateAsync function from the CommonClient module, it is no longer necessary to display the installation prompt; the add-in installation can begin immediately. To support this, the AddInAttachmentParameters constructor function in the same module includes the ShouldShowInstallationPrompt property.
    Set this property only when additional information about the add-in installation is redundant (for example, if the user has already been informed).

Contact information

  • For global versions of 1C solutions, the ContactsManager common module now includes functions InfoAboutAddress and InfoAboutAddresses. These functions return addresses in a structured format, simplifying their use in order processing, shipping, and integration with external services that require accurate address information.
    • For details on field composition and other specifics, see comments to these functions.

Data integrity

  • To facilitate the development of algorithms for fixing data integrity issues, the AccountingAudit common module is augmented with the ObjectsWithIssues function and the ParametersOfObjectsWithIssuesSelection constructor function. These functions can be used for batch retrieval and processing of records. See an example of use in the PostTaxInvoicesForTroublesomeCounterparties procedure in the _DemoTaxInvoiceReceived document's manager module.

National language support

  • For international configurations where accounting is performed in multiple additional languages, the limit on the number of additional languages has been removed. Now you can provide any number of languages (previously, it was limited to two).
    • To add a new accounting language, create the corresponding metadata specifying the language suffixes. For example, to add a third additional language:
      • Create constants AdditionalLanguage3 and UseAdditionalLanguage3, along with a functional option UseAdditionalLanguage3.
      • Add common attributes, such as DescriptionLanguage3, CommentLanguage3, etc.
    • For optimal performance, add no more than five additional accounting languages. Having many languages can significantly degrade application performance.
    • The application administrator can set the primary and additional accounting languages by clicking Accounting languages in the **Administration > General settings section.

Data exchange

  • The ExchangeMessagesTransport subsystem has been separated from the DataExchange subsystem. This new subsystem includes objects that manage connection settings and message exchange with the peer infobase. Each transport type is separated into its own data processor, allowing you to add custom transport types (data processors), for example, through extensions. See the API in the common modules ExchangeMessagesTransportand ExchangeMessagesTransportOverridable.

  • Standard transport data processors:

    • ExchangeMessageTransportCOM: direct connection to the peer infobase via a COM connection (with the COM ID). See the TransportID parameter in the data processor's manager module.
    • ExchangeMessageTransportEMAIL: exchange via email (EMAIL ID).
    • ExchangeMessageTransportFILE: exchange via a local or network directory (FILE ID).
    • ExchangeMessageTransportFTP: exchange via an FTP server (FTP ID).
    • ExchangeMessageTransportGoogleDrive: exchange via Google Drive cloud storage (GoogleDrive ID).
    • ExchangeMessageTransportHTTP: exchange over the Internet via an HTTP service (HTTP ID).
    • ExchangeMessageTransportSM: for exchange between areas in SaaS applications (SM ID).
    • ExchangeMessageTransportSM: exchange over the Internet using a web service (WS ID).
    • ExchangeMessageTransportESB1C: exchange via 1C:Bus (ESB1C ID).
  • The DataExchangeServer common module's API is augmented with the PerformExchangeAction procedure. For more information, see the procedure description.

  • The DataExchangeClient common module's API is augmented with the procedures OpenInfobasePrefixChangeForm and OpenFormForDeletingSyncAlerts. For more information, see the procedure descriptions.

  • The following outdated procedures and functions have been marked as deprecated:

    • Common module DataExchangeClient:
      • OpenDataExchangeSetupWizard
    • Common module DataExchangeServer:
      • AllConfigurationExchangeMessagesTransports
      • FTPDirectoryExists
      • ExecuteExchangeActionForInfobaseNode
    • Common module DataExchangeCached:
      • IsStandaloneWorkplace
      • FindExchangePlanNodeByCode

    Remove all references to them from your code, or replace them with the procedures and functions specified in the comments.

Infobase version update

  • To check for permissions to view the application release notes, use the ApplicationReleaseNotesViewAvailable function of the InfobaseUpdate common module.

  • To optimize data retrieval handler queries, a dot notation access check has been implemented in the parameters of multithreaded handlers OrderingFieldsOnUserOperations and OrderingFieldsOnProcessData. Accessing such fields in debug mode throws an exception, while in non-debug mode a warning is logged.

  • Exceptions are now thrown on incorrect calls to single-threaded data retrieval functions from multithreaded handlers: SelectStandaloneInformationRegisterDimensionsToProcess, SelectRegisterRecordersToProcess, and SelectRefsToProcess functions of the InfobaseUpdate common module.

  • The MarkForProcessing procedure of the InfobaseUpdate common module can now accept QueryResult type data to optimize memory usage.

  • In the InfobaseUpdate.DataProcessingCompleted function, the second parameter, FullObjectNameMetadata, is now optional; its value is calculated automatically. For more information, see the function description.

  • In the AfterWriteData procedure of the InfobaseUpdateOverridable, you can specify additional logic for writing objects in update handlers. For more information, see the procedure description.

Print tools

  • You can now designate certain print forms as default. These forms are used to validate source documents for business transactions. Examples of such forms for the Customer invoice document include Consignment note (TORG-12), Universal transfer document (UTD), Certificate of rendered services, Invoice, etc. In the documents, default print forms are listed first in the Print submenu. To the left of the submenu, there is a Default print button, which allows you to reprint the last default print form of the document. If no previous form exists, it will print the last one for the counterparty or company associated with this document type. See an implementation example in the _DemoGoodsSales document in the demo SSL.
  • To facilitate the development of default print commands in PrintManagement.CreatePrintCommandsCollection, two new properties have been added:
    • DefaultPrintForm (Boolean)
    • PrintFormDescription (String)
  • The key attributes Organization and Recipient must be populated from the document data for each document type in the OnDefineKeyAttributesOfDefaultPrintForms procedure of the PrintManagementOverridable common module. See the example in the demo configuration.
  • To retrieve the stored names of default print forms, you can use functions DescriptionOfGeneratedDefaultPrintForm and DescriptionsOfGeneratedDefaultPrintForms in the PrintManagement common module. These functions can be used, for example, when generating reconciliation statements.

Network download

  • The ConnectionDiagnostics function of the GetFilesFromInternet common module now includes the ErrorText parameter, allowing for more precise identification of connection issues and recommended solutions.

Licensed update verification

  • To manage the opening of a licensed update verification form, you can use the procedure SoftwareLicenseCheckOverridable.OnDefineSettings. By default, this window is always displayed for new configuration versions, except for basic versions, SaaS mode, and RIB child nodes. It is now possible to disable the licensed update verification in other scenarios, such as applications on leased servers.
  • For multilingual applications, you can override the UpdateDistributionTerms template to display the update distribution terms text in a language that matches the user's current settings. To do this, simply add a template with the required language suffix next to it, for example, UpdateDistributionTerms_en.

File management

  • You can use the FilesOperationsClient.OpenFileListForm procedure and the FileListFormOpeningParameters constructor function to pass additional parameters for opening the form and to specify notifications for closing the form.

Properties

  • The API of the PropertyManager common module is updated:
    • To add additional attributes and labels to an object before writing it, the SetPropertiesForObject procedure is provided. For more information, see the procedure description.
    • In the AddPropertyValue function, the redundant Hierarchy parameter has been removed; it is now automatically calculated based on the other parameters.
    • The AddProperty procedure has been replaced with the same-name function that returns the added property. It now allows you to add labels (previously, you could only add additional attributes and information records).

Access management

  • To quickly obtain access rights for all or specific users to a document, register record, or other data element considering record-level security (RLS) restrictions, you can use the function AccessManagement.AccessRightsToData (for details, see the comment to this function). Previously, the AccessManagement.ReadingAllowed and AccessManagement.EditionAllowed functions could only be used to obtain access rights for one user and one data element, requiring loop calls when rights were needed for multiple users. Multiple calls to these functions in a loop resulted in suboptimal repeated database queries.

Source document tracking

  • The procedure SourceDocumentsOriginalsRecordingOverridable.OnDefineSettings allows you to customize the appearance:

    • In the document form, you can display a state toggle command as buttons in the command bar or as a hyperlink (default). This option is useful when the document form is cluttered and overloaded with information.
    • You can disable the hint display in the Change document original state form. By default, this form includes a hint that says: The document original state is set according to print forms.
    • In list forms and document forms, you can define hyperlink actions related to the original document state. By default, clicking the hyperlink displays a drop-down menu with a list of original states. Now it is possible to directly open the Change document original state form. This can be useful if you want to skip the intermediate step of setting an aggregated state, especially if your original tracking is mainly based on print forms.

    For more information, see the procedure description.

  • New procedures in the SourceDocumentsOriginalsRecordingOverridable common module API:

    • The OnChangeAggregatedOriginalState procedure allows you to define actions when writing the aggregated state of the original.
    • The BeforeWriteOriginalStatesAfterPrint procedure may be required to override the list of print objects and print forms before recording states in the information register after printing.

    For more information, see the procedure descriptions.

  • New functions in the SourceDocumentsOriginalsRecording common module API:

    • The SetNewOriginalState function writes new or modified states of source document originals.
    • The OriginalStateInfoByRef function retrieves data on the current aggregated state of the source document.
    • The StateHyperlinkPresentation function returns the hyperlink presentation of a source document state and may be required if a custom hyperlink is used in forms.

    For more information, see the procedure descriptions.

  • In the API procedures necessary to ensure correct original tracking without the Attachable commands subsystem, some parameters are now optional: the second parameter List in SourceDocumentsOriginalsRecording.UpdateOriginalStateCommands and the third parameter List in SourceDocumentsOriginalsRecordingClient.SetOriginalState. These procedures can now be called in document form modules when the Attachable commands subsystem in not integrated and the interface is displayed as command bar buttons. For more information, see the procedure descriptions.

Digital signature

  • The procedure DigitalSignatureClient.OpenExtendedErrorPresentationForm and the constructor function ExtendedErrorPresentationFormParameters can be used to open a diagnostic form that provides reasons and solutions for known digital signature problems. These recommendations are automatically obtained from the classifier over the Internet. The form also allows submitting information to technical support. We recommend that you use this function instead of displaying an error message to the user after a digital signature operation has failed.

  • Added new certificate properties that are returned by the CertificateProperties function of the DigitalSignature and DigitalSignatureClient common modules. You can now retrieve the validity period of the digital signature key, the revocation list addresses, the certificate algorithm, and the CA key ID. These properties are available with 1C:Enterprise v.8.3.27 or later.

  • When using 1C:Enterprise v.8.3.27 or later, you can check a signature certificate with a trusted timestamp for a specific date in more detail: the revocation status and the certificate chain can also be checked for this date. To do this, set the IsTimestampDateSpecified property to True in the CheckParameters parameter of the DigitalSignatureClient.CheckCertificate procedure and the DigitalSignature.CheckCertificate function and pass the date in the OnDate parameter.

  • For batch retrieval of references to digital signature certificates in a single query, the DigitalSignature common module now includes the RefsToCertificates function, which complements the existing CertificateRef function.

  • For batch retrieval of digital signature stamps in a single query, the DigitalSignature common module now includes the DigitalSignatureVisualizationStamps function, which complements the existing DigitalSignatureVisualizationStamp function. As the Signature parameter, we recommend passing the signature properties obtained with the ObjectSignatures function.

Migrating from version 3.1.10 to version 3.1.11

Mandatory steps

In this section, you can read about additional migration instructions for each subsystem that you need to perform in Designer after comparison and merging. See Chapter 2 in the Library integration guide.

To update the following overridable and localizable common modules, copy the new export procedures from the library distribution package and delete the obsolete ones. Also, make sure that comments, the number of parameters, and the parameter names of each procedure match their library equivalents:

  • PeriodClosingDatesOverridable
  • DataExchangeOverridable
  • DataExchangeSaaSOverridable
  • CommonClientOverridable
  • CommonOverridable
  • CompaniesOverridable
  • SoftwareLicenseCheckOverridable
  • FilesOperationsOverridable
  • DigitalSignatureOverridable

Modified localizable common modules:

  • InteractionsLocalization
  • AddInsClientLocalization
  • CurrencyRateOperationsLocalization
  • CurrencyRateOperationsClientLocalization
  • EmailOperationsLocalization
  • StandardSubsystemsClientServerLocalization
  • StandardSubsystemsServerLocalization
  • ContactsManagerClientLocalization
  • ContactsManagerClientServerLocalization
  • ContactsManagerLocalization
  • DigitalSignatureClientLocalization
  • DigitalSignatureClientServerLocalization
  • DigitalSignatureLocalization

For recommendations on how to use the new features of overridable and localizable common modules, see What's new for developers above.

To ensure compatibility with previous library versions, an API is provided in all subsystems. It includes library metadata objects that are used in the application code:

  • Names and parameters of export procedures and functions of common modules, object modules, manager modules, and record set modules located in the Public area.
  • Names and parameters of all export procedures and functions of overridable and localizable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that you can access from the application code or queries.

Using the API makes it easier to update to new library versions without having to revise the application code. In this section, you can read about the necessary instructions for the rare cases when such compatibility is not provided and you need to customize the configuration for a new library API. However, the section does not describe changes in internal library procedures and functions that are not related to the API even if these are export procedures and functions. When you call these functions and procedures from the configuration, note that they can be changed, moved, or deleted in the next library version as they represent its internal implementation.

Once the migration is completed, we recommend that you use the SSL integration check tool included in the library distribution package as the SSLImplementationCheck.erf external report.

Core
  • Include the code snippet from the library distribution package marked with the // StandardSubsystems … // End StandardSubsystems comment in the following handlers of the managed application module:
    • OnGlobalSearch
    • OnGlobalSearchResultChoice
    • OnGlobalSearchResultActionChoice
    • NavigationByURLProcessing
  • Custom implementations of these handlers can now also be placed in the CommonClientOverridable common module. See the corresponding procedures: OnGlobalSearch, OnGlobalSearchResultChoice, OnGlobalSearchResultActionChoice, and NavigationByURLProcessing.
  • We recommend adding the AccessToInternetServicesAllowed constant to the DIB and SWS exchange plans, as it is used when creating the initial image.
  • Exclude the ObsoleteSafeDataAreaDataStorage information register from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.
Banks
  • Data structure ambiguity in data separation mode has been resolved. The Country attribute (CatalogRef.WorldCountries type, separated data) in the BankClassifier catalog (common data) has been renamed to ObsoleteCountry and is no longer used. It is replaced by the CountryCode attribute (String type), which is filled according to ISO 3166-1 and corresponds to the Code attribute of the WorldCountries catalog of the Contact information subsystem. This change must be considered in all configuration areas that directly reference the BankClassifier catalog's Country attribute.
Data exchange
  • In the OnGetSettingOptionDetails procedure of the exchange plan's manager module, the type of added values in the UsedExchangeMessagesTransports property has changed from an enumeration to a transport data processor.
    Before:

    UsedExchangeMessagesTransports = New Array;
    UsedExchangeMessagesTransports.Add(Enums.ExchangeMessagesTransportTypes.WS);
    OptionDetails.UsedExchangeMessagesTransports = UsedExchangeMessagesTransports;
    

    Now:

    UsedExchangeMessagesTransports = New Array;
    UsedExchangeMessagesTransports.Add(ExchangeMessagesTransport.TransportManagerWS());
    OptionDetails.UsedExchangeMessagesTransports = UsedExchangeMessagesTransports;
    

    The ExchangeMessagesTransport common module provides the following functions to get a manager of the suitable data processor:

    • TransportManagerFILE
    • TransportManagerCOM
    • TransportManagerEMAIL
    • TransportManagerFTP
    • TransportManagerHTTP
    • TransportManagerWS
    • TransportManagerSM
    • TransportManagerPassiveMode
    • TransportManagerESB1C
    • TransportManagerGoogleDrive
  • The new type collection ExchangePlansDSL must contain references to all exchange plans used for data synchronization, as specified in the procedure DataExchangeOverridable.GetExchangePlans.

  • In the ProcessExchangeMessageTransportSettings procedure of the EnterpriseData exchange plan's manager module, you must now use the ExchangeMessageTransportSettings catalog instead of the DataExchangeTransportSettings information register to store connection settings.

  • Exclude the ExchangeMessageTransportSettings catalog from the DIB exchange plans.

Configuration update
  • Exclude the PatchPropertiesBeforeInfobaseUpdate constant from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.
Print tools
  • Include information registers DefaultObjectPrintForms and DefaultCounterpartyPrintForms to the DIB and SWS exchange plans.
Totals and aggregates
  • We recommend adding the MonthsInMinTotalsPeriod constant to the DIB and SWS exchange plans. Also, add it to the demo DIB in the demo configuration.
Scheduled jobs
  • Scheduled jobs that interact with web services should not run when the Allow access to web services functional option is disabled. Therefore, if a scheduled job accesses external resources, you must set the AccessesExternalResources property to True in the OnDefineScheduledJobSettings procedure. This is particularly relevant for scheduled jobs downloading currency rates or classifiers from the Internet.
    • Scheduled jobs that modify data in external resources should still have the UseExternalResources property set to True (for example, jobs that send email, text messages, or synchronize data). Such scheduled jobs should be disabled in infobase copies.
Source document tracking
  • The names of notification events in the subsystem have been renamed: AddDeleteSourceDocumentOriginalState has become Write_SourceDocumentsOriginalsStates and SourceDocumentOriginalStateChange has become Write_InformationRegisterSourceDocumentsOriginalsStates. Make any necessary substitutions in the configuration code.
Digital signature
  • To save space in the infobase, the storage of digital signatures has been optimized. For this purpose, the Certificate and SignatureFileName resources have been removed from the DigitalSignatures information register. Delete or adapt all references to these resources in the code, queries, and reports. To get a signature certificate, use the DigitalSignature.CertificateFromSignatureBinaryData function. To get a signature file name, use the DigitalSignatureClientServer.SignatureFileName function.
  • We recommend adding the AllowAccessToDigitalSignatureInternetServices constant to the DIB and SWS exchange plans, as it is used when creating the initial image.
  • The OpenInstructionOnTypicalProblemsOnWorkWithApplications procedure of the DigitalSignatureClient common module and the OnDefiningRefToAppsTroubleshootingGuide procedure of the DigitalSignatureClientServerLocalization common module have been removed as unused.

Optional steps

The actions below are optional for the migration, but we recommend that you schedule them in the future.

Core
  • To facilitate the development of write handlers for information and accumulation registers in the Update, Merge, and Delete modes on 1C:Enterprise v.8.3.25 and later, the Common common module is augmented with the helper functions SetRecordsFromDatabase, SetRecordsChange, NewParametersToFilterSetRecordsFromDatabase, and FilterSetRecordsFromDatabase. Additionally, to ensure compatibility with 1C:Enterprise v.8.3.24, wrapper functions can be used: IsRecordSetAddition, IsRecordSetReplacement, IsRecordSetUpdate, IsRecordSetMerge, IsRecordSetDeletion, RecordSetUpdateMode, RecordSetMergeMode, and RecordSetDeletionMode from the Common common module. For more information, see comments to these functions.

  • The behavior of the PredefinedItem function in the Common and CommonClient modules has been improved. It now returns Undefined if an object or its predefined item does not exist in the configuration metadata. Previously, Undefined was only returned if the predefined item existed in the configuration metadata but was not created in the infobase. We recommend that you review all function calls and remove any redundant exception catching.

  • The behavior of the TimeIntervalString function in the Common common module has been improved. Now, instead of throwing an exception, it returns an empty string if BeginTime is greater than EndTime. Review all function calls and replace exception catching with empty string handling.

  • We recommend that you review all cases of exception catching and rethrowing where the text displayed to the user (or administrator) is changed or added, and replace them with the CommonClientServer.ExceptionClarification function. For more information, see Catching exceptions.

  • Using the Allow access to web services checkbox (Administration > Online support and services > Online support settings), you can disable all web service requests from the application.

    • In places where access to web services uses the API of the GetFilesFromInternet common module and the Common.CreateWSProxy function, no additional actions are required: when the AccessToInternetServicesAllowed functional option is disabled, they will return an Internet access error. In other cases, before establishing a connection with a web service, call the Common.AccessToInternetServicesAllowed procedure.
    • To access local network resources (if known in advance), disable Internet access checks using the ShouldCheckAccessToInternetServices property in the GetFilesFromInternetClientServer.FileGettingParameters parameter for the functions of the GetFilesFromInternet module and in the WSProxyConnectionParameters parameter for Common.CreateWSProxy.
    • We also recommend that you hide unavailable features and controls in the UI using the AccessToInternetServicesAllowed functional option (constant of the same name). The function Common.AccessToInternetServicesDeniedMessageText can be used to provide additional hints on why a certain function is unavailable: Access to web services in the application is prohibited by the administrator (Online support and services > Allow access to web services).
    • To programmatically retrieve and configure this setting, you can use the function AccessToInternetServicesAllowed and the procedure SetUpInternetServicesOperations of the Common common module.
  • Instead of using the obsolete function CommonServerCall.RefsToObjectFound, we recommend that you open a long-running operation form and call Common.RefsToObjectFound from there.

  • Instead of the obsolete function CommonServerCall.CheckDocumentsPosting, call the function CommonServerCall.UnpostedDocuments. In a single server call, the new function returns a list of unposted documents and the posting right availability flag. This allows the client to process the result without additional server calls.

  • The AttachFileOperationsExtension function from the FileSystemClient common module is deprecated. Instead, call Attach1CEnterpriseExtension from the same module.

Business processes and tasks
  • Instead of using obsolete procedures and functions from the BusinessProcessesAndTasksServerCall common module, call their counterparts from the BusinessProcessesAndTasksServer common module.
Add-ins
  • The AddInServerCall.AddInInformation function is deprecated. Instead, call AddInsServer.AddInInformation.
Period-end closing dates
  • To be able to write information and accumulation registers in the Update, Merge, and Delete modes on 1C:Enterprise v.8.3.25 and later, you need to adjust the implementation of overridable procedures BeforeCheckPeriodClosing, BeforeCheckOldDataVersion, and BeforeCheckNewDataVersion of the PeriodClosingDatesOverridable common module. The Replace property, which is passed to these procedures as part of the AdditionalProperties structure of a record set, can now have not only a Boolean type but also a ReplacementMode type (for more details, see the comments to these procedures).
Additional reports and data processors
  • Instead of using obsolete functions of the AdditionalReportsAndDataProcessorsServerCall common module, call their counterparts from the AdditionalReportsAndDataProcessors common module: AttachExternalDataProcessor and ExternalDataProcessorObject.

Contact information

  • To improve code readability and maintainability, we recommend using the AddressParameters, EmailAddressParameters, and PhoneParameters constructor functions (depending on the contact information type) instead of the ContactInformationKindParameters function of the ContactsManager common module.
Print tools
  • Instead of the obsolete function PrintManagementServerCall.TemplatesAndObjectsDataToPrint, call PrintManagement.TemplatesAndObjectsDataToPrint and use the server mechanism to generate print forms based on Office document templates.
File management
  • The FilesOperationsOverridable.OnPrintFileWithStamp procedure is deprecated. Instead, use DigitalSignatureOverridable.OnGetDigitalSignatureStamp.
Source document tracking
  • The ambiguity in setting the state of an original document has been resolved in cases where a user could create two items with the same state name in the catalog, which previously resulted in a random state being assigned. Instead of the obsolete procedures WriteCommonDocumentOriginalState and WriteDocumentOriginalStateByPrintForms of the InformationRegisters.SourceDocumentsOriginalsStates manager module, call the same procedures from the SourceDocumentsOriginalsRecording module. The new procedures take a reference to a state catalog item as the second State` parameter, rather than a string with the state description. Review all locations where the obsolete procedures are called and make any necessary replacements.

  • The NotificationHandlerDocumentForm procedure in the SourceDocumentsOriginalsRecordingClient common module has been enhanced. It can now take a third parameter, Source, to prevent redundant processing of notifications in open document forms. We recommend adding the third parameter Source to all procedure calls.

  • The SourceDocumentsOriginalsRecordingServerCall.WriteOriginalsStatesAfterPrint function is deprecated. Instead, call SourceDocumentsOriginalsRecording.WriteOriginalsStatesAfterPrint and SourceDocumentsOriginalsRecordingClient.WriteOriginalsStatesAfterPrint.

  • The WriteDocumentOriginalsStatesAfterPrintForm procedure of the InformationRegisters.SourceDocumentsOriginalsStates manager module is deprecated. Instead, call the same procedure from the SourceDocumentsOriginalsRecording module.

Digital signature
  • The SetSignatures function of the DigitalSignature common module is deprecated. Instead, use the new ObjectSignatures function and the NewObjectSignaturesAcquisitionParameters constructor function from the same module. Review all locations where this function is called.
    • For performance reasons, the ObjectSignatures functions does not return digital signature certificates by default. To get them, you must explicitly set the ShouldExtractCertificatesFromSignatures property in the AdditionalParameters parameter to True.
    • The SequenceNumber and ShouldReturnMachineReadableLOAData parameters used in the SetSignatures function can also be passed to the ObjectSignatures function via the same named properties of the NewObjectSignaturesAcquisitionParameters constructor function.
  • Using the Allow access to web services checkbox (Administration > General settings > Digital signature), you can disable all digital signature web service requests from the application. To check access to the web services, you can use the AccessToInternetServicesAllowed function of the DigitalSignature common module.

Migrating from earlier versions to version 3.1.11

When migrating from earlier library versions to version 3.1.11:

  • Compare and merge the current version with the distribution file of the latest library version that you migrate to in Designer.
  • Follow the instructions from all the Migrating from version B to version A sections for each skipped version.

Migrating to patch releases 3.1.11

Patch releases of the library differ only in the fourth number of the full version number, for example: 3.1.11.1, 3.1.11.20, 3.1.11.300, and so on. To update to patch releases, use the UpdateToCorrectiveVersionSSL.epf external data processor from the distribution package. It will save you a lot of time during regular (for example, weekly) updates.

Run the data processor in an infobase with a configuration that contains the previous library release, specify the CF distribution file for the new library version, and click Update to hotfix version. This automatically compares and merges the previous and new library configurations according to the settings described in the documentation. All built-in library objects will be copied, and objects overridden during integration will be merged prioritizing new vendor configuration (for example, type collections) or skipped (for example, overridable modules). The database configuration is not updated automatically after comparison and merging. So, you can compare new data with the database configuration and make changes to the modified objects: overridable modules, various local fixes, and enhancements.

Another option is to generate a comparison and merging settings file by clicking Generate settings file. After that, you can open this file in Designer to compare and merge configurations manually.

After you have compared and merged the configurations, we strongly recommend that you use the SSL integration check tool distributed with the library as an external report SSLImplementationCheck.erf.

Version 3.1.10

This SSL version requires 1C:Enterprise v.8.3.21 or later running in the Version 8.3.21, Version 8.3.22, Version 8.3.23 and Version 8.3.24 compatibility modes.

The subsystem Event log analysis was renamed into User monitoring, and the following features were added:

  • With Data access log, you can track what data a user viewed. To enable the feature, configure the logging of the Access.Access event in Administration > Users and rights settings > Data access audit.
    • To track the changes in the setting, the event Data access audit.Change event logging settings was introduced, containing data as XML.
  • New event log reports were added, which enhance your analytical insights. Besides user activity, error monitoring, and scheduled job duration, you can now generate the following reports: Department activity, User account change history, Changes in user group membership, Changes in access group membership, Changes in allowed access group values, and Changes in profile roles.

Below are the updates related to other subsystems.

New features and updates introduced in SSL v.3.1.10

Core

  • New extension management features are added (Administration > Print forms, reports, and data processors > Extensions):
    • Bulk edit extension properties: toggle the activity, data propagation to child nodes, and safe mode for all of the selected extensions.
    • When installing extensions with data, the app prompts the exit of the active user sessions.
    • You can assign extensions with a responsible person and add comments to them.
  • The event log (Administration > Support and service) is more space-efficient: a single record takes 2 lines instead of 3 before. The content of events related to complex data structures is displayed in both the event card and the event log. The Data column supports multiple filters simultaneously.

Bulk edit

  • The Users and External users catalogs now support bulk editing of user account properties, such as Login allowed and 1C:Enterprise authentication.

National language support

  • Lists and reports containing data in additional languages are opened faster.
  • Fixed an issue where, during the initial startup, the regional settings dialog would overlap other dialogs, preventing users from configuring the app. Now, the regional settings dialog automatically closes after 3 minutes of inactivity. To later change the regional settings, go to Administration > General settings.
    • For cloud apps powered by 1C:Fresh, the regional settings dialog is skipped during the initial startup. To later change the regional settings, go to Administration > General settings.

User reminders

  • Users can disable the pop-up reminder windows, which might distract them from work. Instead, reminders can be shown in the Notification center (the bell icon). Users can choose the preferred reminding option in their personal settings.

Conversations

  • Users can set reminders for messages in Conversations. This helps user to follow up on important messages.

Users

  • New parameters supported by 1C:Enterprise v.8.3.26 are added to User login settings (Administration > Users and rights settings): inactive session termination, prompts to save the password on login, the banned password service, and notification about the user access expiration.
  • New reports User group members and Users by department are added to help manage apps with a large number of users, user groups, and departments.
  • The following events (containing XML data) are now logged, which allows to track critical settings history:
    • Users.Change (additional), which contains detailed account information and augments the 1C:Enterprise event Users.Update.
    • Users.Change login settings (additional), which contains detailed login information and augments the 1C:Enterprise event Infobase.Change additional authentication settings.
    • Users.Change user group membership and Users.Change external user group membership, which contain the history of added and removed users.

File management

  • All new files that are stored in the infobase (Administration > File management settings) are now deduplicated automatically, which allows you to free up to 30% of the disk space. Remember that you can run deduplication manually at any time at Administration > File management settings.

Access management

  • A field Valid till is added for users in the group access card. After the specified date, the app removes the user from the group. This streamlines the management of temporary user access.
  • A report Access group members is added to facilitate the management of numerous users and groups.
  • The following events (containing XML data) are now logged, allowing you to track the history of critical settings:
    • Access management.Change access group membership, which tracks changes in the access group membership. This includes updating the events Users.Change user group membership and Users.Change external user group membership, which contain the history of added and removed users.
    • Access management.Change allowed values, which contains the history of changes in the allowed values of access groups, including those caused by changes in the allowed values of access group profiles, changes in access groups (e.g., in a partner's card), or changes in access restrictions (e.g., for individuals).
    • Access management.Change profile roles, which contains the history of changes in roles within access group profiles, including those caused by infobase updates after roles are removed in Designer.
  • Access rights are now updated much faster when the application has the high-performance option for record-level security (RLS) enabled. The speed of these operations depends on several factors, such as the amount of data in the application, the current CPU load, and disk usage. In a simulated 1C:ERP database under test conditions, the initial population of access rights is up to 3 times faster, while subsequent runs can be up to 30 times faster.

Message templates

  • Message templates are available for the following messages: push notifications, payment purposes, messenger chats, and so on. For example, you can set up a template for the Payment purpose field in the Bank payment document to reduce manual entry.
  • A new submenu item, Send, is added to all lists and documents. The item consolidates all available sending options, such as Send mail message… and Send text message….

Digital signature

  • You can now use the Digital signature certificates report to assess the number of certificates used in the app and to view their issuance details, expiration dates, etc. This report includes the following options:
    • Valid certificates
    • Expiring certificates (to ensure they get reissued in time)
  • To open the report, go to Digital signature and encryption settings or Administration > Administrator reports.
  • You can now select multiple digital signature files on your computer at once when adding digital signatures to a file in the app.

What's new for developers in version 3.1.10

Core

  • Exception handling is improved for long-running operations that are triggered by the functions ExecuteFunction, ExecuteProcedure, ExecuteFunctionInMultipleThreads, ExecuteProcedureinMultipleThreads and ExecuteInBackground of the TimeConsumingOperations common module.

    • Now, the output of a long-running operation contains the property ErrorInfo (of the ErrorInfo type), while the obsolete properties BriefErrorDescription and DetailErrorDescription (of the String type) are kept for backward compatibility. The property ErrorInfo is returned by the function TimeConsumingOperations.JobCompleted and in the return value to be passed to the notification procedure specified in the CallbackOnCompletion parameter of the TimeConsumingOperationsClient.WaitCompletion procedure.
    • To display exceptions on the client, we recommend calling the StandardSubsystemsClient.OutputErrorInfo function instead of showing warnings or calling the 1C:Enterprise method ShowErrorInfo. This function is intended for intercepting exceptions by automated testing software (given that the ShowErrorInfo method doesn't trigger the ErrorDisplayProcessing event handler in the application module).
    • The descriptiveness of errors occurred in background jobs of long-running operations is now adjustable. When the CommonParameters.ShouldIncludeFullStackInLongRunningOperationErrors parameter of the CommonOverridable.OnDetermineCommonCoreParameters procedure is set to True, the error details for the developer will contain a snippet of the operation stack (before the startup). By default, the parameter is set to False for debugging purposes.
  • To make handling errors occurred when replacing items more adjustable, the output of the function Common.ReplaceReferences is augmented by the ErrorInfo property (of the ErrorInfo type). Now, error information can be either displayed in the calling code using 1C:Enterprise tools or sent to the Error Reporting Service.

  • The title of the Cancel button on the long-running operation form can now be overridden using the CancelButtonTitle parameter of the TimeConsumingOperationsClient.IdleParameters function.

  • A new procedure, OnDefineFullNameComponents, is implemented in the PersonsClientServerLocalization module. The procedure overrides the IndividualsClientServer.NameParts function to address the national aspects of individuals' names.

  • The IndividualsClientServer.NameParts function is updated:

    • FullName can be passed as either "Surname,Name,MiddleName" (by default) or "Name,MiddleName,Surname". The order is set in the NameFormat parameter.
  • A new procedure, OnDefineSurnameAndInitials, is implemented in the PersonsClientServerLocalization module. The procedure overrides the IndividualsClientServer.InitialsAndLastName function to address the aspects of individuals' names in local languages.

  • The IndividualsClientServer.InitialsAndLastName function is updated:

    • FullName can be passed as either "Surname,Name,MiddleName" (by default) or "Name,MiddleName,Surname". The order is set in the FullNameFormat parameter.
    • The return value format can be either "Surname N. M." (by default) or "N. M. Surname". The order is defined in the IsInitialsComeFirst parameter.
  • To typify the Result parameter of procedures that handle the long-running operation progress and completion, we recommend that you use the following functions:

    • TimeConsumingOperationsClient.NewResultLongOperation is intended for values passed to the completion procedure specified in the CallbackOnCompletion parameter of the TimeConsumingOperationsClient.WaitCompletion procedure.
    • LongRunningOperationNewState is intended for values passed to the progress notification procedure specified in the ExecutionProgressNotification parameter of the TimeConsumingOperationsClient.IdleParameters procedure. For example:
    // Parameters:
    //  Result - See TimeConsumingOperationsClient.NewResultLongOperation
    //  AdditionalParameters - Undefined
    //
    &AtClient
    Procedure ApplyRulesCompletion(Result, AdditionalParameters) Export
    
  • To seamlessly aggregate multiple queries, we recommend that you use the return value of the Common.UnionAllText function (similarly to Common.QueryBatchSeparator).

  • The performance of the CommonClientServer.ValueListsAreEqual function is improved.

  • A new parameter, ShouldCompareValuesCount, is added to the CommonClientServer.ValueListsAreEqual function, which allows for comparing lists of unequal lengths.

  • The IsStringContainsOnlyNationalAlphabetChars function is implemented in the StringFunctionsClientServer common module. It is intended for finding invalid characters (for example, in names).

  • The StringFunctionsClientServerLocalization common module now contains the following procedures:

    • OnDefineNationalAlphabetChars, which is intended to override the IsStringContainsOnlyNationalAlphabetChars function of the StringFunctionsClientServer common module to adjust it to local languages.
    • OnDefineWordChars, which is intended to override the IsWordSeparator function of the StringFunctionsClientServer common module to adjust it to local languages.
  • The performance of SSL integration check (distributed with the library as an external report SSLImplementationCheck.erf) is improved:

    • On 1C:Enterprise v.8.3.23 and later, the report now generates 2-3 times faster.
    • The algorithm for checking and adjusting the composition of the RemoteODataAccess role is enhanced: in 1C:Fresh powered SaaS applications, this role now grants access rights to objects with independent and shared separators. Additionally, objects that are excluded from export/import when migrating from on-premises solutions to the cloud are skipped by this role.

Currencies

  • Uniqueness control is disabled in the Currencies catalog to allow users to manage multiple currencies with the same code. For example, when you need to add the "Buy" and "Sell" exchange rates for a currency.
  • The function CurrencyRateOperations.GenerateAmountInWords is augmented by the IsFractionalPartInWords parameter, which allows for expressing the decimal fraction in words.

Calendar schedules

  • A new procedure, WhenReceivingClassifierData, is implemented in the CalendarSchedulesLocalization module. The procedure overrides the CalendarSchedules.ClassifierData function when getting a file with country-specific calendar classifier data.

Contact information

  • The function ContactsManager.ContactInformationPresentation is augmented by the Transliterate parameter, which allows for converting contact information from Cyrillic into Latin. For example, to provide English-speaking partners with addresses written initially in Cyrillic.
  • Checks for contact information kinds in the initial population code have been added to SSL integration check (distributed with the library as an external report SSLImplementationCheck.erf). Errors are diagnosed if:
    • There are duplicate entries for a contact information kind.
    • A predefined contact information kind is not defined in the initial population code.
    • A contact information kind's name is not specified.

To identify and fix issues, use the latest report version.

User monitoring

  • To programmatically configure data access monitoring performed by the administrator, the UserMonitoring common module now includes the RegistrationSettingsForDataAccessEvents and ShouldRegisterDataAccess functions and the SetRegistrationSettingsForDataAccessEvents and SetDataAccessRegistration procedures.

National language support

  • New entities were implemented to facilitate the development of queries intended for auto-filling items in additional languages. The NationalLanguageSupportServer common module's API is augmented by the functions CurrentLanguageSuffix, LanguageSuffix, IsAdditionalLangUsed, and AttributesNamesConsideringLangCode. For details, see the comments to these functions and a use case in the ChoiceDataGetProcessing procedure in the _DemoProducts catalog's manager module in the demo SSL.
  • To test the machine translation service, use the TextTranslationTool.TextTranslationAvailable function.

User reminders

  • Reminder commands are switched to the general mechanism of attachable commands, with the Organizer command type. This applies only to configurations with the Attachable commands subsystem integrated.
  • The UserRemindersClient.RemindInSpecifiedTime procedure is augmented by the Id parameter, which allows users to specify the reminder type. For details, see the comments to the procedure.

Infobase version update

  • For seamless logging of data processing errors, the WriteErrorToEventLog procedure is implemented in the InfobaseUpdate module API. For details, see the comments to the procedure. Code before implementing the procedure:

    MessageText = StringFunctionsClientServer.SubstituteParametersToString(
      NStr("ru = 'Could not process %1 due to:
        |%2'"),
        RepresentationOfTheReference, ErrorProcessing.DetailErrorDescription(ErrorInfo()));
    WriteLogEvent(InfobaseUpdate.EventLogEvent(),
      EventLogLevel.Warning, Metadata.Catalogs.ContactPersonsForPartners,
      PartnerContactPerson.Ref, MessageText);
    

    The new procedure reduces the algorithm's complexity to a single line:

    InfobaseUpdate.WriteErrorToEventLog(PartnerContactPerson.Ref, RepresentationOfTheReference, ErrorInfo());
    
  • To facilitate the development of predefined item update handlers, the InfobaseUpdate.DoUpdatePredefinedItems procedure is implemented. In just a single call, the procedure adds new and updates existing items according to their current description in the OnInitialItemsFilling procedure of the object's manager module. The procedure allows for updating either all items or specify which of the object's items and attributes should be updated.
    See the handler instance in the procedure _DemoInfobaseUpdateSSL.UpdateContactInformationKinds in the demo SSL.

Configuration update

  • When using the function ConfigurationUpdate.InstallAndDeletePatches, you can now pass the UsedInDistributedInfoBase parameter to reduce the installation time for extensions that are not intended for distributed infobases. To pass parameters to the function ConfigurationUpdate.InstallAndDeletePatches, a new constructor function is introduced: ConfigurationUpdate.PatchesInstallationParameters.

Attachable commands

  • A new submenu item, Send, is added to all lists and documents. The item consolidates all available sending options. We recommend that you place all send commands in this submenu. For this purpose, a new type of attachable command is implemented: Send. See the example in the procedure _DemoStandardSubsystems.OnDefineCommandsAttachedToObject in the demo SSL.

Duplicate cleaner

  • The function DuplicateObjectsDetection.FindSimilarStrings now supports the safe mode, which is useful for calls from external data processors or extensions. For that purpose, the DuplicateObjectsDetection.ParametersOfSearchForSimilarStrings function was reworked.

Network download

  • The function GetFilesFromInternet.ConnectionDiagnostics runs the ping command to test the connectivity between the requester and an Internet resource. However, if responding to ping is disabled or not configured on the Internet resource, its result might misinform the requester. To address that issue, the new parameter IsPackageDeliveryCheckEnabled was implemented, which allows you to disable the ping request. We recommend using this parameter if you know or suspect that the ping response is disabled on the requested Internet resource.
    • Alternatively, you can use the IsPackageDeliveryCheckOnErrorEnabled property in the parameters of the following functions:
      • GetFilesFromInternet.DownloadFileAtServer, GetFilesFromInternet.DownloadFileToTempStorage,
      • Common.CreateWSProxy, and
      • Common.GetInterfaceVersions.
  • The GetFilesFromInternet.FileImportTimeout function is introduced to calculate the timeout threshold for downloading files from the Internet. It is intended for downloading files without using the Network download API, which already has an embedded timeout estimator.

Print tools

  • A new submenu item, Send, is added to the document print form. The item consolidates all available sending options, such as sending by email. We recommend that you place all send commands in this submenu. To do that, place the command code in the PrintManagementOverridable.PrintDocumentsOnCreateAtServer.

Example:

Procedure PrintDocumentsOnCreateAtServer(Form, Cancel, StandardProcessing) Export
  FormCommand = Form.Commands.Add("MyCustomSendCommand");
  FormCommand.Action = "Attachable_ExecuteCommand";
  FormCommand.Title = NStr("en = 'Custom send command'");
  FormButton = Form.Items.Add(FormCommand.Name, Type("FormButton"), Form.Items.SubmenuSend);
  FormButton.Kind = FormButtonType.CommandBarButton;
  FormButton.CommandName = FormCommand.Name;
EndProcedure

Users

  • The constructor functions CommonAuthorizationSettingsNewDetails and NewDescriptionOfLoginSettings now support the 1C:Enterprise v.8.3.26 features available in the LogonSettings common form. For earlier versions, the values assigned to these properties are ignored (however, the values are stored in the UserAuthorizationSettings constant).
  • The following procedures and functions are implemented for centralized management of the logging settings of the Access.Access event:
    • UsersOverridable.OnDefineRegistrationSettingsForDataAccessEvents
    • Users.RegistrationSettingsForDataAccessEvents
    • and Users.UpdateRegistrationSettingsForDataAccessEvents. These functions and procedures allow each mechanism to store its settings separately and apply the common result to the infobase when the settings are changed, without the risk of overwriting other mechanisms' settings. And instead of disabling the logging of the Access.Access event, just disable the settings of the required mechanism in UsersOverridable.OnDefineRegistrationSettingsForDataAccessEvents and call Users.UpdateRegistrationSettingsForDataAccessEvents. If an error occurs when changing settings, Users.UpdateRegistrationSettingsForDataAccessEvents deletes non-existent field names from the settings, retries applying the settings, and logs the event Users.Error setting up Access.Access event without throwing an exception.
  • The writing and deleting of items in the Users and ExternalUsers catalogs when passing the properties of the AdditionalProperties object are improved:
    • If the passed structure AdditionalProperties contains the IBUserDetails property, its value is now considered in the DataExchange.Load mode.
    • Also, when the property AdditionalProperties.IBUserDetails.Action is set to Write, then you can use the property AdditionalProperties.IBUserDetails.UpdateInfobaseUserOnly to restrict creating a new infobase user when it's not found.
  • Instead of directly accessing the predefined items Catalogs.UserGroups.AllUsers and Catalogs.ExternalUsersGroups.AllExternalUsers, we recommend calling the functions Users.AllUsersGroup and ExternalUsers.AllExternalUsersGroup respectively.

File management

  • The function FilesOperations.BinaryFilesData is implemented to allow obtaining the binary data of multiple files in a single call.
  • The procedure FilesOperaions.ConvertFilesToAttachedFiles (marked as obsolete) is replaced with MoveFilesBetweenStorageCatalogs. With the new procedure, you can transfer object attachments between attachment tables when refactoring the file storage locations. For example, you can utilize this procedure to transfer attachments in _DemoProducts from the _DemoProductsAttachedFiles catalog to the Files catalog. See the call example in DataProcessor._DemoTransferAttachments.

Email management

  • The API of the EmailOperations common module functions SendMail, SendEmails, and DownloadEmailMessages is updated to allow performing multiple send/receive actions on the mail server without reconnecting to it. Alongside an email account, the functions take an established connection to a mail server (InternetMail) as a parameter. It is intended for developing custom email clients.
  • To obtain established connections, the getter function EmailOperations.ConnectToEmailAccount is implemented.
  • The procedure EmailOperationsOverridable.OnDefineSettings is augmented with the ShouldUsePOP3Protocol property, which allows for toggling the POP3 protocol. If you set the property to False, the mail server will be accessed over IMAP, and POP3 settings will be unavailable.
  • When users want to send a print form by email, they are prompted to choose message recipients. When sending any other type of document, the app automatically picks recipients from the document, which is of little value when the document contains many contacts. Now, you can enable prompting users to manually pick recipients from the contact list. To enable this feature, a new property is implemented in the SendOptions parameter of the EmailOperationsClientOverridable.BeforeOpenEmailSendingForm procedure: IsInteractiveRecipientSelection.

Message templates

  • Message templates are available for the following messages: push notifications, payment purposes, messenger chats, and so on. For example, you can set up a template for the Payment purpose field in the Bank payment document to reduce manual entry.
    • To create an arbitrary message template, in the MessageTemplatesClient.SelectTemplate, set the MessageKind parameter to Arbitrary. For the implementation example, see DocumentForm of the _DemoDebitingFromAccount document in the demo SSL.

Digital signature

  • The DigitalSignatureOverridable.OnDefineSettings procedure is implemented, which allows for overriding subsystem settings. With it, you can specify whether the app should display the attribute DefinedType.Individual in the catalog DigitalSignatureAndEncryptionKeysCertificates and in the application on certificate issuance.
  • To fill in and display the signature verification result, the form is augmented with the constructor DigitalSignatureClientServer.ResultOfSignatureValidationOnForm. The constructor has the BriefCheckResult property that contains the verification result based on the data stored in the infobase. The property is filled in by the procedure DigitalSignatureClientServer.FillSignatureStatus.
  • The DigitalSignatureClientOverridable.AfterAddToDigitalSignatureCertificatesCatalogprocedure is introduced to help users update certificate settings and replace certificates when they add new certificates to the DigitalSignatureAndEncryptionKeysCertificates catalog.
  • If you are using an Electronic Data Interchange (EDI) system, there may be different levels of certificate control required for signing documents. For example, if EDI is enabled in the app and internal EDI is also maintained, only qualified certificates (AQES) can be used for signing in the first case, while non-qualified certificates are sufficient in the second case. The same certificate can be used for both AQES and non-qualified electronic signatures.
    • To enable this feature, the DigitalSignatureClient.CheckCertificate and DigitalSignature.CheckCertificate procedures are augmented with the CheckParameters parameter and the constructor DigitalSignatureClient.CertificateCheckParameters. You can use the property PerformCAVerification to specify whether the certificate should be checked against the list of accredited certificate authorities. The property IgnoreCertificateRevocationStatus allows you to specify whether to check the certificate against the revocation list.
    • Similarly, you can use the new properties PerformCAVerification and IgnoreCertificateRevocationStatus in the AdditionalParameters parameter of the DigitalSignatureClient.CheckCatalogCertificate procedure.
    • Additionally, using the property ShouldCheckCertificate in the constructor DigitalSignatureClient.SignatureVerificationParameters when calling the procedure DigitalSignatureClient.VerifySignature, you can completely disable certificate verification for non-qualified signatures that are intended only to verify that the document has not changed. Conversely, you can enable verification and require qualified signature certificates.
    • For the same purpose, the property CertificateCheckParameters is implemented in the parameter DigitalSignatureClientServer.SignatureVerificationResult of the DigitalSignature.VerifySignature procedure.

Migrating from version 3.1.9 to version 3.1.10

Mandatory steps

In this section, you can find additional migration instructions for each subsystem. Follow these instructions after comparison and merging (see Chapter 2 of the Library integration guide) (in Russian).

To update the following overridable and localizable common modules, copy the new export procedures from the library distribution package and delete the obsolete ones. Also, make sure that comments, the number of parameters, and the parameter names of each procedure match their library equivalents:

For recommendations on how to use the new features of overridable and localizable common modules, see What's new for developers above.

To ensure the compatibility with the previous library versions, an API is provided in all subsystems. It includes library metadata objects that are used in the application code:

  • Names and parameters of export procedures and functions of common modules, object modules, manager modules, and record set modules located in the Public area.
  • Names and parameters of all export procedures and functions of overridable and localizable common modules.
  • Names of metadata objects (including their attributes and tabular sections) that can be accessed directly from the application code or queries.

Using the API makes it easier to update to new library versions without having to revise the application code. For the rare cases when such compatibility is not ensured, and you need to adjust the application for the new library API, this section provides instructions. However, changes to internal library procedures and functions (even if they are export ones) that are not part of the API are not documented. If you call these procedures and functions directly from the application, be aware that they can be changed, moved, or deleted in future versions of the library, as they represent its internal implementation.

Once the migration is complete, we recommend that you use the SSL integration check tool distributed with the library as an external report SSLImplementationCheck.erf.

Core
  • Exclude the ExtensionProperties information register from the exchange plans of the distributed infobase (DIB) and standalone workstation (SWS) and from the exchange plans that synchronize different apps.
  • Move UserMonitoring (a child subsystem of Administration) to the new configuration so that the elements of the Administrator reports panel would be grouped appropriately.
Notes
  • Add the AttachableCommands subsystem (if integrated) to all forms that have note-related buttons.
  • We recommend that you add the UseNotesCommand constant to the DIB and SWS exchange plans.
User monitoring
  • Exclude the RegistrationSettingsForDataAccessEvents and ShouldRegisterChangesInAccessRights constants from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.
Application settings
  • Transfer the changes made to the UsersAndRightsSettings form of the SSLAdministrationPanel data processor (if used).
User reminders
  • Add the AttachableCommands subsystem (if integrated) to all forms that have reminder-related buttons.
  • We recommend adding the UseRemindersCommand constant to the DIB and SWS exchange plans.
Users
  • Add the information registers UserGroupsHierarchy and UserGroupCompositions to the DIB and SWS exchange plans only for the purpose of creating an initial image (exclude from event subscriptions). Also, exclude the registers from exchange plans that synchronize different apps.
  • For 1C:Enterprise 8.3.26 and later, the call to the Users.PasswordHashString should be supplemented with a call to the 1C:Enterprise methods EvaluateStoredUserPasswordValue or CheckUserPasswordComplianceWithStoredValue, as shown in the function example. This is required in cases where the application administrator has selected a password hashing algorithm other than SHA-1. In future releases, the Users.PasswordHashString will be marked as deprecated.
File management
  • Add the catalog BinaryDataStorage and information registers FileRepository and DeleteFilesBinaryData only to the subordinate node initial image.
Access management
  • Add the information register AccessValuesGroups to the DIB and SWS exchange plans only for the purpose of creating an initial image (exclude from event subscriptions). Also, exclude the register from exchange plans that synchronize different apps.
Message templates
  • Add the AttachableCommands subsystem (if integrated) to all forms that have buttons related to sending messages.

Optional steps

The actions listed below are not required for migration, but we recommend that you perform them in the future.

Core
  • A new attribute is implemented to prevent overwriting the user's changes in predefined items during app upgrades. This applies to initially populated objects specified in the procedure InfobaseUpdateOverridable.OnDefineSettings. Predefined items in such objects are populated by the OnInitialItemsFilling procedure of the manager module.

    • To prevent a predefined item from being overwritten, add its object to the common attribute EditedPredefinedAttributes.
    • The predefined items that belong to objects not added to the attribute will be overwritten during upgrades.
  • Exception handling is improved for long-running operations that are triggered by the functions ExecuteFunction, ExecuteProcedure, ExecuteFunctionInMultipleThreads, ExecuteProcedureinMultipleThreads and ExecuteInBackground of the TimeConsumingOperations common module. We recommend that you update the code for running and processing long-running operations accordingly:

    • Instead of obsolete properties BriefErrorDescription and DetailErrorDescription (of the String type), use the ErrorInfo property (of the ErrorInfo type) in long-running operations results. The property ErrorInfo is returned by the function TimeConsumingOperations.JobCompleted and in the return value to be passed to the notification procedure specified in the CallbackOnCompletion parameter of the TimeConsumingOperationsClient.WaitCompletion procedure.
    • To display exceptions on the client, we recommend calling the StandardSubsystemsClient.OutputErrorInfo function instead of showing warnings or calling the 1C:Enterprise method ShowErrorInfo. This function is intended for intercepting exceptions by automated testing software (given that the ShowErrorInfo method doesn't trigger the ErrorDisplayProcessing event handler in the application module).
    • Sometimes, users expect some additional details in the long-running operation error messages. For example, "The action failed due to: …". To provide users with the error context, we recommend passing it in the RefinementErrors property (instead of adding it to the client code) in the parameters of the following TimeConsumingOperations common module functions: FunctionExecutionParameters, BackgroundExecutionParameters, ProcedureExecutionParameters. Example:
      ExecutionParameters.RefinementErrors = NStr("en = 'The action failed due to:'");.
      This approach ensures that the error message the user sees repeats the same information that is logged during the exception handling.
    • To typify the Result parameter of procedures that handle the long-running operation progress and completion, we recommend that you use the following functions:
      • TimeConsumingOperationsClient.NewResultLongOperation is intended for values passed to the completion procedure specified in the CallbackOnCompletion parameter of the TimeConsumingOperationsClient.WaitCompletion procedure.
      • LongRunningOperationNewState is intended for values passed to the progress notification procedure specified in the ExecutionProgressNotification parameter of the TimeConsumingOperationsClient.IdleParameters procedure. For example:
    // Parameters:
    //  Result - See TimeConsumingOperationsClient.NewResultLongOperation
    //  AdditionalParameters - Undefined
    //
    &AtClient
    Procedure ApplyRulesCompletion(Result, AdditionalParameters) Export
    
    • If your app has a custom error UI, we recommend updating it to conform to the 1C:Enterprise standards:
      • Output to the UI the result of the method ErrorProcessing.ErrorMessageForUser(ErrorInfo) and provide the users with the ability to preview and send the error report by clicking the Generate error report link:
      ReportToSend = New ErrorReport(ErrorInfo);
      StandardSubsystemsClient.ShowErrorReport(ReportToSend);
    
    • To be able to manage the link visibility depending on the error category and app settings, call the procedure StandardSubsystemsClient.ConfigureVisibilityAndTitleForURLSendErrorReport from the OnOpen form module handler.
    • In the OnClose form module handler, call the procedure StandardSubsystemsClient.SendErrorReport(ReportToSend, ErrorInfo), which sends the report if the app settings imply that sending reports is mandatory for this error category.
    • See the implementation examples in the forms DataProcessor.ApplicationUpdateResult.Form.FailedUpdateMessage, DataProcessor.ReplaceAndMergeItems.Form.ItemsReplacement, and DataProcessor.ToDoList.Form.Form.
  • We recommend replacing calls to the procedure EventLogServerCall.WriteEventsToEventLog with the calls to EventLogClient.WriteEventsToEventLog.

  • The function IndividualsClientServer.FullNameWrittenCorrectly (marked as obsolete) is replaced with StringFunctionsClientServer.IsStringContainsOnlyNationalAlphabetChars.

Additional reports and data processors
  • The process for managing settings stored in the SettingsStorage attribute of the AdditionalReportsAndDataProcessors catalog has been updated. To save and retrieve these settings, use the ShouldSaveSettings and LoadSettings procedures from the AdditionalReportsAndDataProcessors common module.
Banks
  • The function BankManager.GetClassifierData (marked as obsolete) is replaced with BankManager.BICInformation.
Contact information
  • We recommend using the SMSAndEmailParameters constructor function to generate parameters of the procedures ContactsManagerClient.CreateEmailMessage and ContactsManagerClient.CreateSMSMessage.
User reminders
  • Users can disable the pop-up reminder windows, which might distract them from work. Instead, reminders can be shown in the Notification center (the bell icon). The reminder settings can be customized in the personal settings. See an implementation example in the _DemoMySettings form in the demo SSL. For opening the reminder settings form programmatically, see procedure UserRemindersClient.OpenSettings.
Infobase version update
  • For logging of data processing errors, we recommend calling the InfobaseUpdate.WriteErrorToEventLog procedure. Code before implementing the procedure:

    MessageText = StringFunctionsClientServer.SubstituteParametersToString(
      NStr("ru = 'Could not process %1 due to:
        |%2'"),
        RepresentationOfTheReference, ErrorProcessing.DetailErrorDescription(ErrorInfo()));
    WriteLogEvent(InfobaseUpdate.EventLogEvent(),
      EventLogLevel.Warning, Metadata.Catalogs.ContactPersonsForPartners,
      PartnerContactPerson.Ref, MessageText);
    

    The new procedure reduces the algorithm's complexity to a single line:

    InfobaseUpdate.WriteErrorToEventLog(PartnerContactPerson.Ref, RepresentationOfTheReference, ErrorInfo());
    
Configuration update
  • To generate the parameters of the function ConfigurationUpdate.InstallAndDeletePatches, we recommend calling the constructor function ConfigurationUpdate.PatchesInstallationParameters.
Users
  • If the configuration contains mechanisms for managing the logging settings of the Access.Access event, we recommend using the following API to prevent overwriting other mechanisms' settings:
    • UsersOverridable.OnDefineRegistrationSettingsForDataAccessEvents
    • Users.RegistrationSettingsForDataAccessEvents
    • and Users.UpdateRegistrationSettingsForDataAccessEvents. These functions and procedures allow each mechanism to store its settings separately and apply the common result to the infobase when the settings are changed, without the risk of overwriting other mechanisms' settings. And instead of disabling the logging of the Access.Access event, just disable the settings of the required mechanism in UsersOverridable.OnDefineRegistrationSettingsForDataAccessEvents and call Users.UpdateRegistrationSettingsForDataAccessEvents. If an error occurs when changing settings, Users.UpdateRegistrationSettingsForDataAccessEvents deletes non-existent field names from the settings, retries applying the settings, and logs the event Users.Error setting up Access.Access event without throwing an exception.
Properties
  • In the PropertyManager.PropertyAdditionParameters parameter constructor procedure used in the AddProperty procedure, the Type property is replaced with ValueType. If you are adding additional attributes or information records programmatically, we recommend replacing Type with ValueType at all call sites. The old property is kept for backward compatibility.

Migrating from earlier versions to version 3.1.10

When migrating from earlier library versions (up to 3.1.10):

  • Compare and merge the current version with the distribution file of the latest library version that you migrate to in Designer.
  • Follow the instructions from all the Migrating from version B to version A sections for every skipped version.

Migrating to patch releases 3.1.10

Patch releases of the library differ only in the fourth digit of the full version number, for example: 3.1.10.1, 3.1.10.20, 3.1.10.300, and so on. To update to patch releases, use the UpdateToCorrectiveVersionSSL.epf external data processor from the distribution package. It will significantly save your time during regular (for example, weekly) updates.

Run the data processor in an infobase with a configuration that contains the previous library release, specify the CF distribution file for the new library version, and click Update to hotfix version. This automatically compares and merges the previous and the new library configurations according to the settings described in the documentation. All built-in library objects will be copied, and objects overridden during integration will be merged prioritizing new vendor configuration (for example, type collections) or skipped (for example, overridable modules). The database configuration is not updated automatically after comparison and merging. So, you can compare new data with the database configuration and make changes to the modified objects: overridable modules, various local fixes, and enhancements.

Another option is to generate a comparison and merging settings file by clicking Generate settings file. After that, you can open this file in Designer to compare and merge configurations manually.

After you have compared and merged the configurations, we strongly recommend that you use the SSL integration check tool distributed with the library as an external report SSLImplementationCheck.erf.

Migrating from version 3.1.10.357 and earlier

Additional reports and data processors

The process for managing settings stored in the SettingsStorage attribute of the AdditionalReportsAndDataProcessors catalog has been updated. To save and retrieve these settings, use the ShouldSaveSettings and LoadSettings procedures from the ``AdditionalReportsAndDataProcessors` common module.

Migrating from version 3.1.10.344 and earlier

Digital signature

The DigitalSignatureClientOverridable.AfterAddToDigitalSignatureCertificatesCatalog procedure is introduced to help users update certificate settings and replace certificates when they add new certificates to the DigitalSignatureAndEncryptionKeysCertificates catalog.

Migrating from version 3.1.10.308 and earlier

To improve remote server authentication when connecting via HTTPS, the minimum platform version for using the library has been increased. See Readme.txt for the specific version number.

Migrating from version 3.1.10.256 and earlier

Digital signature
  • If you are using an Electronic Data Interchange (EDI) system, there may be different levels of certificate control required for signing documents. For example, if EDI is enabled in the app and internal EDI is also maintained, only qualified certificates (AQES) can be used for signing in the first case, while non-qualified certificates are sufficient in the second case. The same certificate can be used for both AQES and non-qualified electronic signatures.
    • To enable this feature, the DigitalSignatureClient.CheckCertificate and DigitalSignature.CheckCertificate procedures are augmented with the CheckParameters parameter and the constructor DigitalSignatureClient.CertificateCheckParameters. You can use the property PerformCAVerification to specify whether the certificate should be checked against the list of accredited certificate authorities. The property IgnoreCertificateRevocationStatus allows you to specify whether to check the certificate against the revocation list.
    • Similarly, you can use the new properties PerformCAVerification and IgnoreCertificateRevocationStatus in the AdditionalParameters parameter of the DigitalSignatureClient.CheckCatalogCertificate procedure.
    • Additionally, using the property ShouldCheckCertificate in the constructor DigitalSignatureClient.SignatureVerificationParameters when calling the procedure DigitalSignatureClient.VerifySignature, you can completely disable certificate verification for non-qualified signatures that are intended only to verify that the document has not changed. Conversely, you can enable verification and require qualified signature certificates.
    • For the same purpose, the property CertificateCheckParameters is implemented in the parameter DigitalSignatureClientServer.SignatureVerificationResult of the DigitalSignature.VerifySignature procedure.

Migrating from version 3.1.10.248 and earlier

Calendar schedules
  • A new procedure, WhenReceivingClassifierData, is implemented in the CalendarSchedulesLocalization module. The procedure overrides the CalendarSchedules.ClassifierData function when getting a file with country-specific calendar classifier data.

Migrating from version 3.1.10.226 and earlier

Access management
  • Access rights are now updated much faster when the application has the high-performance option for record-level security (RLS) enabled. The speed of these operations depends on several factors, such as the amount of data in the application, the current CPU load, and disk usage. In a simulated 1C:ERP database under test conditions, the initial population of access rights is up to 3 times faster, while subsequent runs can be up to 30 times faster.
Digital signature
  • You can now select multiple digital signature files on your computer at once when adding digital signatures to a file in the app.

Migrating from version 3.1.10.211 and earlier

Message templates

  • New details have been added to the description of overridable procedure MessageTemplatesOverridable.OnCreateMessage. Copy the new description from the library distribution package and make sure that comments, the number of parameters, and the parameter names of each procedure in the MessageTemplatesOverridable common module match their library equivalents.

Migrating from version 3.1.10.206 and earlier

Digital signature

  • You can now use the Digital signature certificates report to assess the number of certificates used in the app and to view their issuance details, expiration dates, etc. This report includes the following options:
    • Valid certificates
    • Expiring certificates (to ensure they get reissued in time). To open the report, go to Digital signature and encryption settings or Administration > Administrator reports.

User monitoring

  • To track changes in the access rights settings, you can now use the following reports available in the Administration section: Changes in access group membership, Changes in allowed access group values, and Changes in profile roles. See Administration > Administrator reports > User monitoring.

Migrating from version 3.1.10.141 and earlier

Contact information

  • Checks for contact information kinds in the initial population code have been added to SSL integration check (distributed with the library as an external report SSLImplementationCheck.erf). Errors are diagnosed if:
    • There are duplicate entries for a contact information kind.
    • A predefined contact information kind is not defined in the initial population code.
    • A contact information kind's name is not specified. To identify and fix issues, use the latest report version.

Migrating from version 3.1.10.123 and earlier

Core

The performance of SSL integration check (distributed with the library as an external report SSLImplementationCheck.erf) is improved:

  • The algorithm for checking and adjusting the composition of the RemoteODataAccess role is enhanced: in 1C:Fresh powered SaaS applications, this role now grants access rights to objects with independent and shared separators. Additionally, objects that are excluded from export/import when migrating from on-premises solutions to the cloud are skipped by this role.
Properties
  • In the PropertyManager.PropertyAdditionParameters parameter constructor procedure used in the AddProperty procedure, the Type property is replaced with ValueType. If you are adding additional attributes or information records programmatically, we recommend replacing Type with ValueType at all call sites. The old property is kept for backward compatibility.

Version 3.1.7

Use version 3.1.7 to develop on 1C:Enterprise platform 8.3.17 or higher. Compatibility modes from Version 8.3.14 to Version 8.3.21 (inclusive) are available.

For a complete list of what’s new, see the What’s new in version 3.1.7 section below.

What’s new in version 3.1.7

Core

  • Now long-running operations require less time and the application is more responsive when conversations are enabled (Collaboration system). For example, it takes less time to generate reports, import or export data, and so on.

Users

  • When changing access rights, you’ll be prompted to restart the application to apply the changes.

What’s new for developers in version 3.1.7

Core

  • To reduce the number of periodic server calls, use server notifications and long-running operations instead of idle handlers. In client/server mode, this significantly decreases the load on 1C:Enterprise server caused by periodic idle client handlers that exchange data with the server. If conversations (Collaboration system) are enabled in the infobase, client sessions receive events from the server immediately without any additional server calls. If conversations are disabled, the server load is balanced using one global idle handler.

    • To process server notifications on the client, register your server notification in the OnAddServerNotifications procedure of the CommonOverridable common module and implement handlers for its sending and receiving. See the demo application for examples.
    • To send data form the client to the server periodically, implement sending in the BeforePeriodicClientDataSendToServer procedure of the CommonClientOverridable common module and its processing in the UponPeriodicClientDataReceiptAtServer or AfterPeriodicClientDataReceiptAtServer procedures of the CommonOverridable common module. See the demo application for examples.
    • We recommend that you replace native idle handlers for a long-running operation check with the WaitCompletion procedure of the TimeConsumingOperationsClient common module. Also, replace the UserMessage platform object in long-running operation procedures with the MessageToUser procedure of the Common common module. If conversations (Collaboration system) are enabled in the infobase, progress information and messages from a background job are sent to the client faster.
  • You no longer need to separate user messages from background jobs of long-running operations from the internal progress text using the UserMessages function of the TimeConsumingOperations common module. The ReportProgress procedure of the TimeConsumingOperations common module no longer sends progress messages to a user. It is implemented by means of server notifications.

Migration from version 3.1.6 to version 3.1.7

Mandatory migration actions

In this section, you can find additional instructions on migrating for each subsystem. Follow these instructions after comparison and merging (see Chapter 2 Library integration guide) (in Russian).

To update the following overridable common modules, move the new export procedures from the library distribution package, remove the missing ones, and make sure the comments, number, and names of the procedure parameters are the same as in the library distribution package:

  • CommonClientOverridable,
  • CommonOverridable,
  • ReportMailingOverridable,
  • ToDoListOverridable.

See What’s new for developers above for recommendations on how to take advantage of the new features of the overridable common modules.

  • Names and parameters of export procedures and functions of common modules, object modules, managers, record sets, and other located in the Public area.
  • Names and parameters of all export procedures and functions of overridable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that can be directly accessed from the application code or from queries.

If you use the API, there is less need to revise the application code on update to new library versions. In exceptional cases, when such compatibility is not ensured and it is required to adapt the application to the new API of the library, follow the instructions in this section. Changes in internal library procedures and functions (even if they are export ones) that are not related to the API are not documented. When calling them directly from the application, note that they can be changed, moved, or deleted in the next library version since they are its internal implementation.

Core

Optional migration actions

The actions below are optional for the migration, but we recommend that you schedule them in the future.

Core
  • To reduce the number of periodic server calls, use server notifications and long-running operations instead of your own similar tools. For more information, see What’s new for developers in version 3.1.7 - Core.
Additional reports and data processors
  • The TimeConsumingOperationFormName function of the AdditionalReportsAndDataProcessorsClient common module is marked as obsolete. Instead of this function, use a notification passed to the Handler parameter of the ExecuteCommandInBackground procedure of the same common module.
To-do list
  • Unused BeforeLoadDataFromSettingsAtServer and OnCreateAtServer procedures of the ToDoListOverridable common module are deleted. If these procedures are used to override the behavior in the objects attached to the to-do list, we recommended that you move them to application modules and change call locations.

How to migrate from earlier versions to version 3.1.7

When migrating from earlier library versions (up to 3.1.7):

  • Compare/merge the latest library version (to which you are migrating) with the distribution package file in Designer.
  • Follow the instructions from all the Migration from previous version sections for every skipped version.

Migration to corrective releases 3.1.7

Corrective library releases differ only in the fourth digit in the full version number. For example, 3.1.7.1, 3.1.7.20, 3.1.7.300, and so on. To migrate to the corrective releases, use the UpdateToCorrectiveVersionSSL.epf external data processor from the distribution package. It will help save your time on regular updates (for example, every week).

Start the data processor in the infobase with the application that contains the previous library release. Specify the CF delivery file for the new library version and click Update to corrective version. The library version is automatically compared/merged with the new library version according to the documentation settings. All built-in library objects will be transferred, and those overridden during integration will be merged with the priority of the vendor configuration (for example, flexible type collections) or skipped (such as overridable modules). After the comparison/merging, the database configuration will not be updated automatically, which allows you to compare with the database configuration and edit the changed objects: overridable modules, various local patches, and revisions.

As an alternative, you can click Generate a settings file and generate a comparison and merging setting file. You can import this file to Designer for manual comparison or merging.

From version 3.1.7.79 and earlier

Data exchange
  • In version 1.11.5 of the universal Enterprise Data exchange format, the following features are implemented:

    • Starting from Fiscal data format 1.2, marking codes for certain product groups (perfume, alternative tobacco products (cigars)) can be passed to the cash register with additional parameters. They specify a part of the marked unit that is subject to outflow.
    • In the conversion rules, you can pass the Company acts as a tax agent for the VAT payment contract flag.
    • New properties that allow you to exchnage information about Salary reserves in the conversion rules.
    • Extended values of the Types of products in information system enumerations.
    • New object of the Document GarnishmentOrder format in the conversion rules.
    • New object of the Document DeductedPersonalIncomeTax format in the conversion rules. You can use the document when providing information about the Unified tax payment.
    • New StateContactID field in the Contracts catalog properties. Use it to synchronize information on state contracts between applications.
    • New optional TRUCode property is added to the object with the Products catalog format for the Social Security Fund. The format is advanced with the TypesofPaymentSystemCashRegister enumeration.
    • New optional Currency of regulated accounting field for properties of the object with the Companies catalog format.
    • In the object of the Patents catalog format, the BCC and PotentialAnnualIncome fields are optional now. This advances the catalog conversion from applications where patents are considered in a reduced form.
    • Found errors are fixed.

Version 3.1.6

Use version 3.1.6 to develop on 1C:Enterprise platform 8.3.17 or higher. Compatibility modes from Version 8.3.14 to Version 8.3.21 (inclusive) are available.

For a complete list of what’s new, see What’s new in version 3.1.6 section below.

What’s new in version 3.1.6

Core

  • Now you can speed up certain long-running operations (for example, address classifier import) in the client/server mode. To do this, configure the operation execution in multiple threads. In Administration - General settings - Performance, specify the maximum number of concurrent threads. Set the parameter depending on the technical capacity of the server. Its value cannot exceed the number of processor cores on the server.
  • If you use the server cluster in the client/server mode, you need to provide the correct operation of certain application functions. To do this, go to Administration - General settings and specify a shared network path to a temporary file directory. It will provide access to this directory from all the cluster servers. For example, for multi-threaded address classifier import.
  • Improved extension update. See the Extensions list in Administration - Print forms, reports, and data processors. Now if you update an extension to a new version where its name is changed, all the previous extension settings are saved, for example, created report options. Besides, if you accidentally delete the extension and add it to the application again within a short period, you can continue without losing the extension settings.

Report options

  • Use the context menu of the report to drill down the report details by detailed records. The structure of this report contains only one Detailed records element.
  • The command bar of the report contains the Cancel and Retry buttons. Use them to quickly cancel one or more of the last settings actions you made from the context menu or in the settings form: adding filters, groupings, moving columns, changing sorting, and so on. You can also reset them to default settings. Previously, you could only reset reports to default settings.
  • Click Edit quick settings on the right in the report header to enable or disable the display of header field titles. In most cases, report header fields are quite clear without titles: by their content, hints, or tooltips when hovering over them. Thus, the report header takes up less space across the screen width.
  • When you save the report result in Microsoft Excel format, sorting indicator pictures are hidden from the report header.
  • In the report settings form, in the advanced mode, you can now add filters not only by selecting fields from the list, but also by entering the first letters.

Business interactions

  • Improved troubleshooting of issues that occur when receiving and sending emails. Besides technological messages of mail servers, brief notes are displayed for possible reasons and ways to eliminate them. See ITS: Recommendations for solving standard issues (in Russian).

Data exchange

  • To be able to apply extensions and quickly debug registration rules, you can enable Registration manager. See the form for importing registration rules in data synchronization parameters. In this case, registration rules are stored in the common application module.

Infobase version update

  • If the deferred update handler fails, you can initiate a targeted restart by re-registering the update data for it. To do this, after fixing an error in the handler or installing a patch, go to Administration - Support and service - Update results and additional data processing and in the More actions submenu click Restart deferred update.
  • With a long deferred application update, you can enable editing of a document that has not been updated yet by clicking More actions - Unlock object for editing. Use this option as a last resort, for example, to fix an error in a document that prevents it from being updated.
  • The window with the application update results (Administration - Support and service - Update results and additional data processing) provides more information on various update issues:
    • Enabled scheduled job locks in client/server mode.
    • Issues with update handlers when errors during data processing are logged.
    • Issues with data when it cannot be processed.
      • You can go to the report that will display objects with issues and recommendations for their correction.
  • The deferred update progress report now displays more troubleshooting information:
    • The amount of processed data for the selected period.
    • Issues in the update handlers and data, as well as whether they can be navigated to.

Print

  • In the list of print form templates (go to Administration - Print forms, reports, and data processors - Print form templates), you can now create new print form templates. For new templates, print commands are automatically added to the Print submenu of the respective documents. This allows you to create your own print form without using Designer.
  • The print form template editor now contains a list of fields of the document to be printed. The list of fields shows a filling sample for each field and provides format settings. You can drag fields from this list directly into a template. At any stage of editing, you can view a sample of print form generation for any document.

Users

  • When operating in the web application based on 1cFresh cloud technology, the service administrator can specify authorization settings common for all the service users in the service manager (Main - Configuration settings - Authentication). The authorization settings are available to the subscriber administrator in the data area (Administration - Users and rights settings - Authorization settings).

Email management

  • Improved troubleshooting of issues that occur when receiving and sending emails. Besides technological messages of mail servers, brief notes are displayed for possible reasons and ways to eliminate them. See ITS: Recommendations for solving standard issues (in Russian).
  • When setting up the email, you can select a more up-to-date and secure authorization method using an email service. It allows you not to store your email account password in the application (OAuth 2.0).

Report distribution

  • Improved troubleshooting of issues that occur when sending emails. Besides technological messages of mail servers, brief notes are displayed for possible reasons and ways to eliminate them. See ITS: Recommendations for solving standard issues (in Russian).

Access management

  • Use the Users rights to a table details in the Access rights analysis report to view the current settings for record-level access restrictions (RLS) in one of the following ways:

    • In any form of the list form, in the More actions menu, click Reports - User rights and open the user details.
    • In the Users list, click Reports - User rights and open the table details.
    • In Administration - Users and rights settings, click Access rights analysis and open details of the required access right.
  • Technicians can now use the Role rights report to analyze the matrix of role and profile rights. You can do this in one of the following ways:

    • In any list form in the More actions menu, click Reports - Rights of roles and profiles.
    • In the Access group profiles list, click Reports - Rights of roles and profiles or Reports - Rights of profiles.
    • In the Administration section, click Administrator reports, enter Rights of roles in the search string and open the report.
  • The Access rights analysis report is generated twice as fast now.

Digital signature

  • You can reissue a qualified certificate of a digital signature faster by submitting the application for issue in electronic form. You can do this if the previous certificate is received in the same application and the certificate owner data is not changed. To do it, click Reissue in the Digital signature and encryption settings list (My settings or Administration - General settings - Digital signature and encryption) and select Issue in electronic form. The electronic application form will save your time and paper.
  • To enable a notification of the certificate expiration, select the Remind me to reissue check box in the certificate form (for personal certificates). A certificate can be reissued in electronic form not earlier than 30 days before the end of its validity period.
  • You can easily go from the to-do list to the list of your expiring certificates and applications for certificate issue being processed.
  • Information on the availability of CryptoPro CSP CIPF license is displayed in certificate data (certificate card - Show certificate data) and indicates that such certificate can be used with CryptoPro CSP software on terms of non-exclusive license without entering a serial number.
  • Now the application for a new qualified certificate issue contains a qualified certificate print form.
  • When validating a certificate and a signature, the system checks the status of the accredited certification authority that issued the certificate of an advanced electronic signature (AdES) and validity periods of AdES certificates issued to legal entities and individual entrepreneurs by commercial certification authorities according to the legislation. You can receive notifications of AdES certificate expiration. The list of accredited certification authorities is automatically updated from 1C:Enterprise website.
  • Personal certificates, expiring certificates, expired certificates, and certificate applications are accompanied by explanatory pictures in the certificate list and in the certificate card.
  • Now you can validate digital signatures with minimal rights, and also more flexibly configure the rights to various actions with the certificate: adding to a catalog, signing, decrypting, and encrypting data.
  • Now you can sign documents using digital signatures with time CAdES-T and CAdES-A (according to Federal Law No. 63-FZ as of 04/06/2011 “On digital signature”). To renew a digital signature, you can automatically improve the previously added signatures and add archive timestamps to archival signatures. You can select the required signature type for new and existing documents in Administration - General settings - Digital signature and encryption.
  • If a certificate is revoked in a certification authority but the revocation has not been applied yet, in the More actions menu of the certificate card, select Certificate revoked and the certificate will not be applicable for signing.

What’s new for developers in version 3.1.6

Core

  • In the BeforeStartApplication procedure of the CommonOverridable common module, you can perform arbitrary actions before starting the application, for example, set up the home page and other interface parameters depending on the operating mode.
  • Common pictures are built-in for all metadata object kinds, for example, MetadataCatalogs, MetadataDocuments, and so on (start with Metadata).
  • In the SelectMetadataObjects, you can now select the following metadata objects: CommonAttributes, HTTPServices, and ExternalDataSources. The By object kinds selection mode now also displays recognizable pictures for all metadata object kinds.
  • The HTTPDate and RFC1123Date functions are added to the CommonClientServer common module to convert dates to the RFC-1123 format and back. Use these functions to manage files downloaded from the Internet.
  • You can speed up the long-running operation by executing the long-running operation handler in multiple threads. To do this:
    • Divide data into sets, where each item will be processed in a separate background job.
    • To start a long-running operation, call the ExecuteProcedureinMultipleThreads or ExecuteFunctionInMultipleThreads function from the TimeConsumingOperations common module API by passing the generated data set using the third parameter. For the detailed parameter description, see comments to these functions.
    • The maximum allowed number of concurrent background jobs can be specified by the administrator in Administration - General settings - Multithreaded long-running operations.
    • In a file infobase and in SaaS mode, long-running operations are always executed in one thread.
    • See an example in the demo application in the AddressClassifierLoading form of the AddressObjects information register.
  • To keep your users updated on the long-running operation progress, the API for the IdleParameters function of the TimeConsumingOperationsClient common module is advanced:
    • New Title property to display an arbitrary title in the window of pending long-running operation.
    • New properties are added to the UserNotification structure:
      • Picture. Defines a picture to display in a notification when a long-running operation is completed.
      • Important. Allows you to mark a notification as important, so it will be displayed in the notification center.

Report options

  • The API is expanded. Use it to group fields of report header settings. With the OnDefineSettingsFormItemsProperties procedure of the report module, you can specify the following group properties: Title, BackColor, ToolTip, ToolTipRepresentation, Height, Width, VerticalStretch, and HorizontalStretch. See the FormItemsGroupProperties procedure of the ReportsServer common module and an example in the OnDefineSettingsFormItemsProperties procedure of the UniversalReport report module.
  • Use the AtStartValueSelection procedure of the ReportsClientOverridable common module to override the form for selecting values in report filter fields. For example, in the RolesRights report, use the SelectMetadataObjects common form to filter by roles and metadata objects.
  • To execute the logic on the client before generating a report, use the BeforeFormationReport event. See the DefaultReportSettings function of the ReportsClientServer common module. For example, this can be required to display a warning before generating a report that is too large.
  • The list of the AdditionalProperties properties of the NewDCSettings parameter and the Settings object of the Settings Composer (report object) of the BeforeImportSettingsToComposerreport module event is expanded. The VariantKey, PredefinedOptionKey, OptionContext, and FormParametersSelection properties are passed there. Use the properties to better consider the context of the report generation.
  • New AfterLoadSettingsInLinkerevent instead of the outdated OnDefineSelectionParameters event (see details in the DefaultReportSettings function of the ReportsClientServer common module). You can use it not only to refine the selection parameters (for example, the choice list), but also to do the same considering the loaded fixed settings. You can also call the new event on non-interactive report generation, for example, on report distribution.
  • For some non-standard reports, use the DisableStandardContextMenu flag to disable the context menu and report column settings. See the details in the DefaultReportSettings function of the ReportsClientServer common module.

Contact information

  • To unify the initial filling and update of predefined contact information kinds, in the application, you now need to place the filling code only in the OnInitialItemsFilling and OnInitialItemFilling procedures of the ContactsManagerOverridable common module. You can also use it to set creation of folders (ContactInformationKinds catalog groups). See the demo application for examples.

Data integrity

  • New optional parameter in the OpenIssuesReport procedure of the AccountingAuditClient common module: ExactMap. Use the parameter to set filter by the ChecksKind parameter when you open the report.

National language support

  • To get values of multilingual attributes in queries in accordance with the current user language, for example, on selection of goods or their display in arbitrary lists, in the API of the NativeLanguagesSupportServer common module, use the ChangeRequestFieldUnderCurrentLanguage procedure that changes the description of the multilingual attribute in the query text to the attribute description according to the current user language. For example, for the first additional language, the procedure changes Description to DescriptionLanguage1. For more information, see the procedure comment.

User reminders

  • New function in the API of the UserReminders common module: UsedUserReminders. It allows you to check whether user reminders can be used.

Data exchange

·  The OnStandaloneModeOptionChange procedure of the DataExchangeOverridable common module is called when changing an infobase mode and allows you to perform additional actions, for example, initialize related constants and settings.

·  When you synchronize data using the universal EnterpriseData format, you can execute registration rules located in the common module of an application or an extension. To do this, in the WhenReceivingSettings procedure of the exchange plan manager, specify the RulesForRegisteringInManager and RegistrationManager settings. Setup example:

Procedure WhenReceivingSettings(Settings) Export 
     …
    Settings.RulesForRegisteringInManager = True;
    Settings.RegistrationManager = "_DemoRegistrationManagerForUniversalFormat";
EndProcedure

To create a common module, use the Data conversion application version 3.1.1 or later. Set the following execution contexts for the common module: Server, External connection, Client (ordinary application).

·  In the Import/export EnterpriseData data processor in Developer mode, you can operate with a shared temporary file directory (optional). You can find this option in the More actionsmenu and access it in the data import mode.

Infobase version update

  • New methods in the API of the InfobaseUpdate common module: WriteEventToRegistrationLogRelaunchDeferredUpdateRestartExclusiveUpdateFileIssueWithData, and EnableDisableDeferredUpdate. For more information, see their details.
  • New method in the API of the InfobaseUpdateOverridable common module: WhenPrioritizingMetadataTypes. For more information, see its details.
  • The Parameters structure that is passed to the input of the deferred update handlers is extended with the SubsystemVersionAtStartUpdates property. The full version number of the subsystem to which it belongs at application update start is passed there. For example, 3.1.5.123. Use it to branch the handler execution logic depending on the version from which the application is being updated.
  • Now it is easier to describe deferred update handlers for parallel mode. You no longer need to specify the handler execution priorities since they are calculated automatically. You still can specify priorities when, for objective reasons, automatic priorities do not satisfy the task being solved. Priorities set manually for the handler are highlighted on the Conflicts tab in the form to set up the Update handlers details data processor handler. For more information, see the subsystem documentation.
  • You can now use the Update handlers details development tool (Functions for a technician - Update handlers details) to filter deferred update handlers that have a non-standard procedure for checking unprocessed data. This feature is required for control since the procedure allows you to check whether an object can be edited during a deferred update and must meet some requirements:
    • Only non-updated data can be locked.
    • Data must be unlocked as it is processed, not after all objects are fully processed.
    • Entering new data must always be available.
  • You no longer need to create predefined items to supply items of various catalogs in the application. Describe their creation in the OnInitialItemsFilling procedure of the catalog manager module or the InfobaseUpdateOverridable common module.
    • To update such items, in the OnSetUpInitialItemsFilling procedure of the catalog manager module or the InfobaseUpdateOverridable common module, for the NameOfKeyProps settings property, specify a name of the attribute whose value determines the item UUID.
    • See the examples of how to fill built-in items in the OnInitialItemsFilling procedures of the _DemoInfobaseUpdateSSL and _DemoProperties common modules of the demo application.
  • To update certain attributes of built-in items described in the OnInitialItemsFilling procedure, use the new third PopulationSettings parameter in the FillItemsWithInitialData procedure of the InfobaseUpdate common module API. The Attributes property of this parameter defines a comma-separated list of attributes to be updated. For more information, see its comments.
  • When you fill built-in items in native update handlers and need to avoid overwriting an item, in the InfobaseUpdate common module API, use the FillObjectInitialData procedure. It fills an object with the data described in the OnInitialItemsFilling procedure without writing the object.
  • Improved scenario of migrating from another application when an application name is changed. For example, BASE->PROF. Now initial data filling handlers are automatically executed for new subsystems in the application:
    • Before starting to execute migration handlers defined in the OnAddApplicationMigrationHandlers procedure of the common module whose name is specified in the ConfigurationSubsystemsOverridable.SubsystemsOnAdd procedure.
    • Only handlers with the Seamless and Exclusive modes are called.
    • Disabled by default. To enable this feature, in the OnAddSubsystem procedure of the InfobaseUpdate<ShortForm> common module, specify the FillDataNewSubsystemsWhenSwitchingFromAnotherProgram property.
      • You can also disable some handlers that are not required to be executed. To do this, set the DoNotExecuteWhenSwitchingFromAnotherProgram property to True for these handlers.
  • The subsystem provides a new method to generate print forms. Use it to edit print forms in 1C:Enterprise mode easily and create print forms from scratch. A list of available object fields is displayed in the template editor, while a list of fields is generated using the DCS and can be hierarchical. The general principle is that each application object provides a list of available fields and print data using the DCS template, and the DCS fields are specified as parameters in the print form template. The Print subsystem generates a print form from template and print data. We recommend that you use this technology to develop new print forms. For more information, see the documentation.

Users

  • New procedures and functions for the Users common module API:

    • SetLoginSettings to save user authorization settings.
    • NewDescriptionOfLoginSettings to receive a structure with default authorization settings.
    • AddUsedPassword to add a password to the list of the active ones if the DenyReusingRecentPasswords property is filled in the authorization settings.

Email management

  • To display notes and ways to troubleshoot a mail server connection error, use the ReportConnectionError procedure in the EmailOperationsClient common module.
  • To prepare details of a mail server connection error, use the ExplanationOnError and ExtendedErrorPresentation functions in the EmailOperations common module.

Properties

  • To unify the initial filling and update of predefined sets of additional attributes and information, in the application, you now need to place the filling code only in the OnInitialItemsFilling and OnInitialItemFilling procedures of the PropertyManagerOverridable common module. See the demo application for examples.

Marked objects deletion

  • To take additional actions before and after deleting marked objects outside a transaction, in the MarkedObjectsDeletionOverridable common module, use the BeforeDeletingAGroupOfObjects and AfterDeletingAGroupOfObjects procedures. For example, once a group of related objects is deleted, you can now clear the associated data on external resources or perform other operations that are not allowed in a delete transaction.

Access management

  • In application extensions, you can add and change access kinds, built-in access group profiles, and object right settings in the same way as when developing the application.

Digital signature

  • The User reminders subsystem automatically creates reminders about the processing of a certificate reissue application (the Remind me when it is ready check box in the application form) and about the certificate expiration (the Remind me to reissue check box in the certificate form).

  • The To-do list subsystem displays a link for quick navigation to certificates pending reissue and applications in progress on the user desktop.

  • Now you can sign documents using digital signatures with time CAdES-T and CAdES-A (according to Federal Law No. 63-FZ as of 04/06/2011 “On digital signature”).

    • To sign a document with a certain signature type, the new optional SignatureType parameter is added to the Sign procedure of the DigitalSignatureClient module. If improved signatures are unavailable in the used 1C:Enterprise platform version, the parameter is ignored and the document is signed with a basic signature CAdES-BES.
    • To improve signatures and add archive timestamps, use the RefineSignature procedure of the DigitalSignatureClient common module. The RefineSignature and ImproveObjectSignature procedures are added to the DigitalSignature module. To determine whether signatures can be improved depending on the used 1C:Enterprise platform version, use the AvailableAdvancedSignature function.
    • To filter certain signatures, you can use the optional SequenceNumber parameter in the SetSignatures function of the DigitalSignature module.
    • To update improved signature data, you can use the optional UpdateByOrderNumber parameter in the UpdateSignature procedure of the DigitalSignature module.
    • To add and update digital signature data, use the NewSignatureProperties constructor function of the DigitalSignatureClientServer module as an initial value of the SignatureProperties parameter for the AddSignature and UpdateSignature procedures of the DigitalSignature common module.

DSS service digital signature

  • Exclude the ServiceAccountDSS constant from distributed infobase exchange plans.

Migration from version 3.1.5 to version 3.1.6

Mandatory migration actions

In this section, you can find additional instructions on migrating for each subsystem. Follow these instructions after comparison and merging (see Chapter 2 Library integration guide) (in Russian).

To update the following overridable common modules, move the new export procedures from the library distribution package, remove the missing ones, and make sure the comments, number, and names of the procedure parameters are the same as in the library distribution package:

  • DataExchangeOverridable,
  • InfobaseUpdateOverridable,
  • CommonOverridable,
  • CompaniesOverridable,
  • ReportsClientOverridable,
  • ContactsManagerOverridable,
  • PropertyManagerOverridable.

See What’s new for developers above for recommendations on how to take advantage of the new features of the overridable common modules.

  • Names and parameters of export procedures and functions of common modules, object modules, managers, record sets, and other located in the Public area.
  • Names and parameters of all export procedures and functions of overridable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that can be directly accessed from the application code or from queries.

If you use the API, there is less need to revise the application code on update to new library versions. In exceptional cases, when such compatibility is not ensured and it is required to adapt the application to the new API of the library, follow the instructions in this section. Changes in internal library procedures and functions (even if they are export ones) that are not related to the API are not documented. When calling them directly from the application, note that they can be changed, moved, or deleted in the next library version since they are its internal implementation.

Core
Report options
  • The Report options subsystem requires the Formula constructor subsystem. Add it to the application.
Data exchange
Infobase version update
National language support
  • Include the new DataForChangingMultilingualAttributes constant in distributed infobase exchange plans and their event subscriptions to record changes.
Companies
  • In the CompaniesOverridable common module, the OnDefineForeignCompanyRegistrationData procedure is renamed to OnDefineForeignCompanyOfficeRegistrationData.
  • The Print subsystem requires the Formula constructor subsystem. Add it to the application.
  • Include the new PrintFormTemplates catalog in distributed infobase exchange plans and their event subscriptions to record changes.
Users
  • Include the new UseExternalUserGroups, UserAuthorizationSettings constants in distributed infobase exchange plans and their subscriptions to events for change registration.
  • Exclude the DeleteLoginSettingsUsers constant from distributed infobase exchange plans.
Email management
  • Include the new SettingsAuthorizationInternetServicescatalog in distributed infobase exchange plans and their event subscriptions to record changes.
Digital signature
  • Include the following items in distributed infobase exchange plans: New CertificateUsersAlerts, CertificateIssuanceApplications information registers. New TimestampsServersAddresses, AddTimestampsAutomatically, DefaultCryptographySignatureType, ImproveSignaturesAutomatically, ImproveSignaturesStartingFromDate constants. Include in handlers for registering changes in distributed infobase exchange plans.
  • In the built-in profile description in the program code, replace the AddEditDigitalSignaturesAndEncryption role with the new AddingChangeElectronicSignatures, EncryptionAndDecryptionData, DataDecryption, AddingChangeCertificatesKeysElectronicSignatureAndEncryption, AddingChangeProgramsElectronicSignatureAndEncryption roles according to the role assignment (in Russian).

Optional migration actions

  • The actions below are optional for the migration, but we recommend that you schedule them in the future.

Core

  • The Information common picture is deprecated and renamed to DeleteInformation. Use the Information standard picture instead.
Report options
  • In reports based on the Data Composition System (DCS), when you click a column, the context menu and column property settings become available. If the application has its own data composition appearance template defined for reports, to enable these features, set the Quick change column resizing mode for grouping titles. For an example, see the demo application in the _DemoReportAppearanceBeige common template and the BeforeLoadVariantAtServer procedure of the ReportsOverridable common module.

How to migrate from earlier versions to version 3.1.6

When migrating from earlier library versions (up to 3.1.6):

  • Compare/merge the latest library version (to which you are migrating) with the distribution package file in Designer.
  • Follow the instructions from all the Migration from previous version sections for every skipped version.

Core

Migration to corrective releases 3.1.6

Corrective library releases differ only in the fourth digit in the full version number, for example, 3.1.6.1, 3.1.6.20, 3.1.6.300, and so on. To migrate to the corrective releases, use the UpdateToCorrectiveVersionSSL.epf external data processor from the distribution package. It will help save your time on regular updates (for example, every week).

Start the data processor in the infobase with the application that contains the previous library release. Specify the CF delivery file for the new library version and click Update to corrective version. The library version is automatically compared/merged with the new library version according to the documentation settings. All built-in library objects will be transferred, and those overridden during integration will be merged with the priority of the vendor configuration (for example, flexible type collections) or skipped (such as overridable modules). After the comparison/merging, the database configuration will not be updated automatically, which allows you to compare with the database configuration and edit the changed objects: overridable modules, various local patches, and revisions.

As an alternative, you can click Generate a settings file and generate a comparison and merging setting file. You can import this file to Designer for manual comparison or merging.

From version 3.1.6.257 and earlier

Data exchange
  • In version 1.11.5 of the universal Enterprise Data exchange format, the following features are implemented:

    • Starting from Fiscal data format 1.2, marking codes for certain product groups (perfume, alternative tobacco products (cigars)) can be passed to the cash register with additional parameters. They specify a part of the marked unit that is subject to outflow.
    • In the conversion rules, you can pass the Company acts as a tax agent for the VAT payment contract flag.
    • New properties that allow you to exchange information about Salary reserves in the conversion rules.
    • Extended values of the Types of products in information system enumerations.
    • New object of the Document GarnishmentOrder format in the conversion rules.
    • New object of the Document DeductedPersonalIncomeTax format in the conversion rules. You can use the document when providing information about the Unified tax payment.
    • New StateContactID field in the Contracts catalog properties. Use it to synchronize information on state contracts between applications.
    • New optional TRUCode property is added to the object with the Products catalog format for the Social Security Fund. The format is advanced with the TypesofPaymentSystemCashRegister enumeration.
    • New optional Currency of regulated accounting field for properties of the object with the Companies catalog format.
    • In the object of the Patents catalog format, the BCC and PotentialAnnualIncome fields are optional now. This advances the catalog conversion from applications where patents are considered in a reduced form.
    • Found errors are fixed.

From version 3.1.6.209 and earlier

Data exchange
  • The universal Enterprise Data exchange format is updated up to version 1.10.6. It is supplemented with the DeductedPersonalIncomeTax document to record information on the Unified tax payment.

From version 3.1.6.198 and earlier

Digital signature

From version 3.1.6.180 and earlier

Infobase version update
  • Initial data filling handlers are automatically executed for new subsystems in the application. It is disabled by default when migrating from another application. To enable this feature, in the OnAddSubsystem procedure of the InfobaseUpdate<ShortForm> common module, specify the FillDataNewSubsystemsWhenSwitchingFromAnotherProgram property.
  • You can also disable some handlers that are not required to be executed. To do this, set the DoNotExecuteWhenSwitchingFromAnotherProgram property to True for these handlers.

From version 3.1.6.159 and earlier

Companies
  • In the CompaniesOverridable common module, the OnDefineForeignCompanyRegistrationData procedure is renamed to OnDefineForeignCompanyOfficeRegistrationData.

From version 3.1.6.118 and earlier

Digital signature
  • Include the following new constants in distributed infobase exchange plans: TimestampsServersAddresses, AddTimestampsAutomatically, DefaultCryptographySignatureType, ImproveSignaturesAutomatically, ImproveSignaturesStartingFromDate. Include in handlers for registering changes in distributed infobase exchange plans. Transfer the respective changes in the CommonSettings form of the SSLAdministrationPanel data processor to the application.

Version 3.1.5

Use version 3.1.5 to develop on 1C:Enterprise platform in the mode of compatibility with versions 8.3.14, 8.3.15, 8.3.16, or 8.3.17, that means

  • 8.3.14 if the Compatibility mode property is set to None.
  • 8.3.15 if the Compatibility mode property is set to Version 8.3.14 or None.
  • 8.3.16 if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or None.
  • 8.3.17 if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, Version 8.3.16, or None.
  • 8.3.18 and later if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, Version 8.3.16, or Version 8.3.17.

For a complete list of what’s new, see the What’s new in version 3.1.5 section below.

What’s new in version 3.1.5

Report options

  • To save the vertical screen space and improve experience of users of common widescreen monitors, the report header is now more compact. The fields are arranged in three columns, and the field titles are inside the fields in tooltips.
    • To reconfigure the fields in the report header, click the button in the upper right corner of the report header.
  • The filter and autosum lines are displayed on the right in the report header.
    • You can use it to quickly add new filters by the exact value or a fragment of the value of any of the fields displayed in the report. For example, to quickly set a filter by the Retail warehouse value, just enter the ret fragment and the application will suggest filter options.
    • You can also add filters with conditions, for example, Balance > 500.
  • When adding a new filter, field, or sort, the report provides a field for searching by field name. This is especially handy when the list of available fields is long.
  • Now you can save a report option with a single click. See the new Save menu item in the report form. To set additional parameters, such as the description, placement, and availability of the saved report option, the Save as… command is still available next to it.
  • If the report contains several levels of groupings, the titles of these groupings are displayed in the Expand to submenu and the Grouping levels context menu. For example, if a report has a hierarchy of three groupings Company, Account, and Currency, three items of the same name are displayed in the submenu instead of the previous Level 1, Level 2, and Level 3.
  • The More actions - Other - Edit report option… menu item of the report form is moved to the report settings form in More actions - Settings for a technician…, in the same manner as the Functions for technician… system command in the main menu.
  • The More actions - Other submenu of the report form is renamed to More actions - Personal settings and now contains only the relevant commands Select settings…, Save settings…, and Share settings….

User sessions

  • To make sure the administrator capabilities to set an application lock from the command line are not less than interactive capabilities of the application, new properties are added to the EndUserSessions command-line option:
    • AdministratorName - a name of the 1C server cluster administrator.

    • AdministratorPassword - a password of the 1C server cluster administrator.

    • Message - a text of a message displayed to users as a warning about scheduled connection lock.

    • KeyCode - an arbitrary string to sign in to the application, despite the enabled lock (for the startup parameter /UC).

    • WaitMin - time to delay the application lock start, in minutes.

    • DurationMin - the application lock duration considering the delay, in minutes. Example:

      1cv8.exe" ENTERPRISE /F "<Infobase path>" /N "Administrator" /P /C 
      "EndUserSessions, AdministratorName=Administrator, AdministratorPassword=1, Message=Close the application for unscheduled update, KeyCode=Update, WaitMin=5, DurationMin=30

Data exchange

  • If the application is configured to synchronize data in a distributed infobase, now the application extensions applied in the master node are automatically transferred and installed in all subordinate nodes. To do this, go to Data synchronization settings in the subordinate node, click Install update, and follow the instructions of the update wizard (as when receiving application changes from the master node).
  • Please note that before migrating to a new application version, the master and subordinate nodes must not have extensions that change the data structure. We recommend that you also delete subordinate infobase extensions that have the same names as extensions in the master node (except for patches). You can add extensions after updating all subordinate infobases.
  • Improved interface of the list form of configured synchronizations. Deleted redundant commands, and the grouping of the settings list commands is aimed at synchronization.
  • Optimized data synchronization warnings:
    • Now you can navigate to the list of warnings directly from the synchronization line, which allows displaying information only on the current synchronization. Now you can quickly assess the status of a particular synchronization by simply navigating to the list of warnings.
    • The list of warnings is displayed as a single list and it is very flexible as a lot of filters are provided. For example, now you can quickly find all warnings that relate to a specific object.
    • Each type of warnings is displayed in a separate form with a detailed tooltip: what kind of warning it is, a possible reason for its occurrence, and how to fix it. So it is possible to process some warnings without extra support.
    • Now you can add comments to synchronization warnings. This is useful in case of joint operations or if you need to leave a note for a synchronization warning.
    • Now you can delete irrelevant warnings from previous synchronizations. For example, if all the issues are fixed by an external data processor, but there are warnings that no longer make sense, now you can quickly delete them.

File management

  • When the application is running, volumes with files may contain files that are not linked to any attached file in the infobase. Now when cleaning up obsolete files, such files will always be deleted along with obsolete files.
  • When configuring the cleanup of obsolete files, you can select which files to clean up:
    • Only files that are not linked to attached files in the infobase.
    • Files that are not linked to attached files in the infobase and obsolete files.
  • When cleaning up obsolete files, their data was cleared, and the attached files were marked for deletion. Now obsolete files are deleted immediately along with the data, if possible.

Access management

  • Enhanced application performance when data access restrictions (RLS) are enabled. In some cases, the update of access rights is accelerated up to 20%, and the amount of internal data in the infobase is reduced by up to three times. The internal data now depends on the actual use of access kinds in access groups. The effect is greater if fewer access kinds are actually involved, for example, if the application provides 15 access kinds, and only two of them are actually used.

Source document originals recording

  • To get up-to-date information on the states of originals, see additional information on the date and author of the current state change in the Change document original state form. You can open the form from the list forms by clicking a link in the Original state - Specify by print forms… column or by clicking a link in the Original state - Specify by print forms… document forms.
  • Track states of source documents only by certain print forms of a document. This feature can be useful if the document has numerous print forms, but only one requires an employee’s signature, and only its state should be tracked.
  • To simplify recording of source document originals that require signatures of several employees, you can now track the states of document print forms by employees.

Digital signature

  • You can specify several users for whom the certificate will be considered “personal”. To do this, in the Certificates of digital signature keys and encryption form, in the User field, open a user choice list.

New features for developers in version 3.1.5

Core

  • Often, for example, when parsing text or analyzing values of cells in a spreadsheet document, you need to convert a string literal to a date. For these purposes, use a new StringToDate function in the API of the CommonClientServer common module.
  • Similarly, to determine whether a string literal is a number, use a new IsNumber function in the API of the CommonClientServer common module.
  • Sometimes, for example, in financial statements, you need to display a non-standard period presentation:
    • “Half-year 1 2021” instead of “01/01/2021 – 06/30/2021”.
    • “9 months 2021” instead of “01/01/2021 – 09/30/2021”.
    • all time instead of an empty value.
    • Starting with a lowercase letter. For this, in the API of the StringFunctions and StringFunctionsClient common modules, use the PeriodPresentationInText function.
  • To exchange messages over the “Enterprise service bus”, implemented the IntegrationServicesProcessing scheduled job that must be enabled when this feature is enabled. For more information about the product, see Enterprise service bus (in Russian).
  • New optional parameter of the CalculationCellsIndicators function of the CommonClientServer common module: CalculationParameters. The parameter is of the return value type of the CellsIndicatorsCalculationParameters function of the CommonClientServer common module. In the new parameter, with the CalculateAtServer property, developers can explicitly specify whether to perform the calculation on the server or on the client, instead of automatic detection.

Report options

  • When analyzing the data of accounting reports, specialists operate with fiscal periods: quarter 1, quarter 3, half year, 9 months, and so on. When developing a report, you can change (override) the period choice form:
    • In the DefineFormSettings procedure of the report module, change the Settings.PeriodOption property value to Fiscal:

      Settings.PeriodOption = Enums.PeriodOption.Fiscal;
  • For better experience using fiscal periods, you can override the period presentation:
    • In the DefineFormSettings procedure of the object module, change the PeriodPresentationOption settings property value to Hyperlink:

      Settings.PeriodPresentationOption = Enums.PeriodPresentationOptions.Hyperlink;

User sessions

  • To close user sessions in the application on locking sessions with an infobase, use the following new procedures in the API of the IBConnectionsClient common module: SetUsersSessionsTerminationMode and SetTerminateAllSessionsExceptCurrentFlag. For more information, see their comments.

Import data from spreadsheets

  • When you need to redefine a presentation of a catalog into which table data is loaded, in the GetDataImportFromFileParameters procedure of the catalog manager module, you can define a value of the new ObjectPresentation property of the Parameters parameter. For example, data is loaded into the Counterparties catalog, but you need to display Customer instead. See an example in the demo application in the _DemoProducts catalog manager module.
  • To improve documentation comments, in the API of the ImportDataFromFile common module, use the following constructor functions: DataImportSettings, DetailsOfDataToImportForCatalogs, NewConflictsList, and MappingTable. For more information, see the demo application, the _DemoProducts catalog manager module.

Object attribute lock

Data exchange

  • To write an exchange node using a long-running operation, add the DataExchangeClient.BeforeWrite procedure call to the BeforeWrite form event handler. Also make sure that subsequent procedures, such as OnWrite, do not have the node data changed. For example, see the _DemoDataSynchronizationUsingUniversalFormat exchange plan in the demo application.

  • When developing rules for universal data exchange, we recommend that you use the XDTODataExchange.KeyPropertiesClass function to access key properties of an object.

    Example:

          KeyProperties = DataExchangeXDTOServer.KeyPropertiesClass();
          Code = Left(IBData.Description, 4);
          If ExportStack.Count() = 1 Then     
            XDTOData[KeyProperties].Insert("Code", Code);
          Else
            XDTOData.Insert("Code", Code);
          EndIf;

Infobase version update

  • The OnGenerateListOfSubsystemsToDevelop procedure of the InfobaseUpdateOverridable common module is deprecated. Use the OnGenerateListOfSubsystemsToDevelop procedure of the same module instead.
  • To improve documentation comments, in the API of the PrintManagementClient common module, use the PrintParametersDetails constructor function. For more information, see the demo application, the DefaultForm form module of the _DemoCompanies catalog.

Scheduled jobs

  • To control various features on locking and unlocking operations with external resources in the application, you can use the following new procedures of the ExternalResourcesOperationsLockOverridable common module: OnProhibitWorkWithExternalResources and ExternalResourcesOperationsLockOverridable. For more information about locking operations with external resources, see the documentation - Chapter 5. User documentation - Section 5.53 Scheduled jobs - Performing scheduled jobs when copying an infobase.

Access management

  • To supply access group profiles in the application, it is no longer necessary to create predefined items in the AccessGroupProfiles catalog. Just list them in the OnFillSuppliedAccessGroupProfiles procedure of the AccessManagementOverridable common module. You can also use it to define folders (AccessGroupProfiles catalog groups) with built-in access group profiles.
    • We recommend that you delete the previously created predefined items and folders. The profiles will be matched by the ID of the default master data, and the profile folders will be first matched by name and later matched by the ID of the default master data. See the demo application and documentation for examples.
    • Instead of calling the Administrator predefined item of the AccessGroupProfiles catalog and the Administrators predefined item of the AccessGroups catalog, we recommend that you call the ProfileAdministrator and AdministratorsAccessGroup functions of the AccessManagement common module, respectively.
  • To develop the restriction logic in the OnFillAccessRestriction procedures of metadata object manager modules, for some rare cases when the item list depends on the rights to a certain technological object, you can now use the AccessRight and RoleAvailable functions. For more information, see the documentation.

Source document originals recording

  • Track states of source documents only by certain print forms of a document. Use this feature if the document has numerous print forms, but only one requires an employee’s signature, and only its state should be tracked. In the API of the SourceDocumentsOriginalsRecordingOverridable common module, use the new procedure to override the list of document print forms being tracked.

    • FillOriginalsAccountingTable
  • Track the states of print forms by employees in documents that require signatures of several employees. For this:

    • In the API of the SourceDocumentsOriginalsRecordingOverridable common module, use a new procedure that overrides the list of “multi-employee” documents: OnDefineMultipleEmployeeDocuments.
    • In the API of the manager module of the SourceDocumentsOriginalsStates information register, use a new parameter for the WriteDocumentOriginalStateByPrintForms procedure: Employee.
  • When you need to track the status of the record of the changed original state, in the API of the SourceDocumentsOriginalsRecordingClient and SourceDocumentsOriginalsRecordingServerCall common modules and the SourceDocumentsOriginalsStates information register manager module, use the Written record flag parameter of the WriteOriginalsStatesAfterPrint and WriteDocumentOriginalsStatesAfterPrintForm procedures.

    For more information, see the documentation.

Message templates

  • When you need to track the sending status of an outgoing message, in the API of the MessagesTemplates common module, use the EmailLink property in the GenerateMessageAndSend function return value.
  • To improve documentation comments, in the API of the MessagesTemplates common module, use the EmailSendingParametersByTemplate constructor function. For more information, see its comments.

Digital signature

  • To speed up verification and creation of XMLDSig digital signatures using the Sign and VerifySignature procedures of the DigitalSignatureClient and DigitalSignature common modules, use automatic detection of XMLDSig parameters from the passed XML envelope. For this, leave the XPathSignedInfo and XPathTagToSign properties of the structure returned by the XMLDSigParameters function of the DigitalSignatureClient and DigitalSignature common modules blank.
  • To create XMLDSig digital signatures easier in standard scenarios, added the XMLEnvelope function to the DigitalSignatureClient and DigitalSignature common modules. The function description details the XML document capabilities to be considered when using various XML document formats.
  • Now you can create and verify XMLDSig signatures not only with the Exclusive XML Canonicalization 1.0 canonicalization algorithm, but also with the Canonical XML 1.0 and Canonical XML 1.1 algorithms (the WithComments option is supported for all three algorithms).

Migration from version 3.1.4 to version 3.1.5

Required migration actions

In this section, you can find additional migration instructions for each subsystem. Follow the instructions in Designer after the comparison/merge is complete (see Chapter 2 Library integration instructions).

To update the following overridable common modules, move the new export procedures from the library distribution package, remove the missing ones, and make sure that the comments, number, and names of the procedure parameters are the same as in the library distribution package:

  • BusinessProcessesAndTasksClientOverridable
  • AdditionalReportsAndDataProcessorsOverridable
  • ObjectsFillingOverridable
  • InfobaseUpdateOverridable
  • ReportsOverridable
  • AttachableCommandsOverridable
  • FullTextSearchServerOverridable
  • EmailOperationsOverridable
  • FilesOperationsOverridable
  • GenerationOverridable
  • HierarchyOverridable
  • ToDoListOverridable
  • PrintManagementOverridable
  • SourceDocumentsOriginalsRecordingOverridable

See New features for developers above for recommendations on how to take advantage of the new features of the overridable common modules.

  • Names and composition of parameters of export procedures and functions of common modules, object modules, managers, record sets, and so on located in the Public area.
  • Names and composition of parameters of all export procedures and functions of overridable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that can be directly accessed from the application code or from queries.

If you use the API, there is less need to revise the application code on update to new library versions. In exceptional (rare) cases, when such compatibility is not ensured, and it is required to adapt the application to the new API of the library, this section contains the necessary instructions. Changes in internal library procedures and functions (even if they are export ones) that are not related to the API are not documented. When calling them directly from the application, note that they can be changed, moved, or deleted in the next library version since they are its internal implementation.

Report options

  • Removed the AddMetadataObjectsConnections procedure of the ReportsOverridable common module because it is no longer useful.
Business interactions
Data exchange
  • The UnresolvedIssuesCount and IssuesMonitorHyperlinkTitleStructure functions of the DataExchangeServer common module are deprecated because they are no longer useful.
Users
  • Revise the applied logic that depends on the presence of a record-level restriction on the UserGroupCompositions information register (the restriction was removed to improve performance, which is acceptable since the catalog restriction is enough to ensure privacy and applied logic).

File management

Access management
  • Include new information registers in the DIB exchange plans: UsedAccessKinds and UsedAccessKindsByTables. Include only the UsedAccessKinds information register in the handlers for staging changes to the DIB exchange plans.
  • Delete the created FillAccessValuesSetsForTabularSections<End> event subscriptions, and move their types to the new OwnerWithRestrictedAccessValueSetsDocument flexible type collection. If there are no documents, in the new flexible type collection, specify the CatalogObject.MetadataObjectIDs type.
  • Delete the created WriteAccessValuesSets<End> event subscriptions, and move their types to the AccessValuesSetsOwnerObject flexible type collection.
  • Delete the created WriteDependentAccessValuesSets<End> event subscriptions, and move their types to the ExternalValuesOwnerInAccessValueSetsObject flexible type collection.
  • In all information registers (including library ones) whose name begins with AccessKeysToRegister, rename the ForExternalUsers dimension to AccessOption and set all its properties (including the type) as in the AccessOption dimension of the AccessKeysForRegisters information register. When you re-update libraries with SSL version earlier than 3.1.5 that provide the AccessKeysToRegister* information registers, retry the operation or do not transfer the AccessOption dimension properties.
  • In all roles, update the ForObject and ForRegister standard templates and access restrictions with these templates (improvements implemented). Also update the standard templates ByValues, ByValuesAdvanced, ByValuesAndSetsAdvanced, and ByValuesSets (added the word Right to the names of internal register rights resources for correct translation). To update the templates, we recommend that you use the SSLImplementationCheck.erf report in error correction mode.

Optional migration actions

The actions below are optional for the migration, but we recommend that you schedule them in the future.

Contact information
  • The second ContactInformationKind parameter of the ContactInformationPresentation function of the ContactsManager common module is deprecated and ignored. Delete it in all places where the function is called.
Data exchange
  • To automatically transfer and install the application extensions attached in the master DIB node to all subordinate nodes, we recommend that you set the Attach configuration extensions property in the DIB exchange plans. For example, see the _DemoDistributedInfobaseExchange exchange plan in the demo application.
  • Clear the Attach configuration extensions property for exchange plans in standalone mode in SaaS. For example, see the _DemoStandaloneMode exchange plan in the demo application.
Digital signature
  • To speed up verification and creation of XMLDSig digital signatures using the Sign and VerifySignature procedures of the DigitalSignatureClient and DigitalSignature common modules, we recommend that you switch to automatic detection of XMLDSig parameters from the passed XML envelope. For this, leave the XPathSignedInfo and XPathTagToSign properties of the structure returned by the XMLDSigParameters function of the DigitalSignatureClient and DigitalSignature common modules blank.

How to migrate from earlier versions to version 3.1.5

When migrating from earlier library versions (up to 3.1.4):

  • Compare/merge the latest library version (to which you are migrating) with the distribution package file in Designer.
  • Replace all references to the renamed metadata objects, common modules, procedures and functions (see list below).
  • Then follow the instructions in each Migration from previous version section for each skipped version.

Common module names:

Previous name Current name
AddInClient AddInsClient
AddInServerCall AddInsServerCall
BankOperationsOverridable BankManagerOverridable
CallOnlineSupportClient ContactOnlineSupportClient
CallOnlineSupportOverridable ContactOnlineSupportOverridable
ContactInformationManagementOverridable ContactsManagerOverridable
ContactInformationManagementOverridable ContactsManagerOverridable
CurrenciesExchangeRatesClientServer CurrencyRateOperationsClientServer
CurrenciesExchangeRatesOverridable CurrencyRateOperationsOverridable
DependenciesOverridable SubordinationStructureOverridable
DuplicateObjectDetection DuplicateObjectsDetection
EmailClientOverridable EmailOperationsClientOverridable
EmailOverridable EmailOperationsOverridable
EventLogOperations EventLog
FindAndDeleteDuplicatesDuplicatesClient DuplicateObjectsDetectionClient
MessagesTemplatesServer MessageTemplatesServer
ObjectPrefixationClientServer ObjectsPrefixesClientServer
ObjectsAttributesEditBlockedOverridable ObjectAttributesLockOverridable
SafeModeManagerOverride SafeModeManagerOverridable
SendSMSMessagesClientOverridable SendSMSMessageOverridable
SMSClient SendSMSMessageClient
SMSOverridable SendSMSMessageOverridable

Procedure and function names:

Previous name Current name
AddInClient.InstallationParameters AddInsClient.ConnectionParameters
ContactsManagerClient.CreateEmail ContactsManagerClient.CreateEmailMessage
FilesOperationsClient.CopyFile FilesOperationsClient.CopyAttachedFile
SendSMSMessage.SendSMSMessage SendSMSMessage.SendSMS
SMSOverridable.SendSMSMessage SendSMSMessageOverridable.SendSMS

Metadata object names:

Previous name Current name
Constant.TestFilesExtensionsList Constant.TextFilesExtensionsList
Constant.UseEmailInMessagesTemplates Constant.UseEmailInMessageTemplates
Constant.UseSMSMessagesSendingInMessagesTemplates Constant.UseSMSMessagesSendingInMessageTemplates

Migration to corrective releases 3.1.5

Corrective library releases differ only in the fourth digit in the full version number, for example, 3.1.5.1, 3.1.5.20, 3.1.5.300, and so on. To migrate to the corrective releases, use the UpdateToCorrectiveVersionSSL.epf external data processor from the distribution package. It will help save your time on regular updates (for example, every week).

Start the data processor in the infobase with the application that contains the previous library release, specify the CF distribution file for the new library version, and click Update to corrective version. The library version is automatically compared/merged with the new library version according to the documentation settings. All built-in library objects will be transferred, and those overridden during integration will be merged with the priority of the vendor configuration (for example, flexible type collections) or skipped (such as overridable modules). After the comparison/merging, the database configuration will not be updated automatically, which allows you to compare with the database configuration and edit the changed objects: overridable modules, various local patches, and revisions.

As an alternative, you can also click Generate a settings file to generate a comparison/merging settings file. You can later load it in Designer for manual comparison/merging.

From version 3.1.5.262 and earlier

Infobase version update
  • Now you can migrate to another application in SaaS mode, for example, Basic -> PROF or PROF -> CORP. To enable this feature, analyze the migration handlers specified in the OnAddApplicationMigrationHandlers procedure. If shared data is processed, set the new SharedData property to True.

    Example:

      Handler = Handlers.Add();
      Handler.PreviousConfigurationName = "*";
      Handler.SharedData = True;
      Handler.Procedure = "<ModuleName>.<SharedDataHandlerProcedureName>";

From version 3.1.5.208 and earlier

Core

From version 3.1.5.192 and earlier

File management

From version 3.1.5.180 and earlier

File management

From version 3.1.5.163 and earlier

File management

From version 3.1.5.146 and earlier

Core

From version 3.1.5.132 and earlier

Infobase version update
  • The OnGenerateListOfSubsystemsToDevelop procedure of the InfobaseUpdateOverridable common module is deprecated. Use the OnGenerateListOfSubsystemsToDevelop procedure of the same module instead.

Version 3.1.4

Use version 3.1.4 to develop on 1C:Enterprise platform in the mode of compatibility with versions 8.3.14, 8.3.15, or 8.3.16, that means:

  • 8.3.14 if the Compatibility mode property is set to None.
  • 8.3.15 if the Compatibility mode property is set to Version 8.3.14 or None.
  • 8.3.16 if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or None.
  • 8.3.17 and later, if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or Version 8.3.16.

Migration from version 3.1.3 to version 3.1.4

Required migration actions

In this section, you can find additional migration instructions for each subsystem. Follow the instructions in Designer after the comparison/merge is complete (see Chapter 2 Library integration instructions).

To update the following overridable common modules, move the new export procedures from the library distribution package, remove the missing ones, and make sure that the comments, number, and names of the procedure parameters are the same as in the library distribution package:

  • ObjectsAttributesEditBlockedOverridable;
  • InfobaseUpdateOverridable;
  • CommonOverridable;
  • ReportsOverridable;
  • PrintManagementOverridable.

See New features for developers above for recommendations on how to take advantage of the new features of the overridable common modules.

  • Names and composition of parameters of export procedures and functions of common modules, object modules, managers, record sets, and so on located in the Public area.
  • Names and composition of parameters of all export procedures and functions of overridable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that can be directly accessed from the application code or from queries.

If you use the API, there is less need to revise the application code on update to new library versions. In exceptional (rare) cases, when such compatibility is not ensured, and it is required to adapt the application to the new API of the library, this section contains the necessary instructions. Changes in internal library procedures and functions (even if they are export ones) that are not related to the API are not documented. When calling them directly from the application, note that they can be changed, moved, or deleted in the next library version since they are its internal implementation.

Business processes and tasks
  • Specify the business process objects applied to the subsystem in the BusinessProcessObject flexible collection type. Objects must be the same as links in the BusinessProcess flexible type collection.
Access management
  • In all roles, update standard templates ForObject, ForRegister and access restrictions for the ForObject template. We recommend that you use the SSLImplementationCheck.erf report in the error correction mode.

Optional migration actions

The actions below are optional for the migration, but we recommend that you schedule them in the future.

Period-end closing dates
  • The UpdatePeriodClosingDatesSections procedure of the PeriodClosingDates common module is moved to the ObsoleteProceduresAndFunctions area. You should delete the procedure calls as the update runs automatically.
Translator
  • Include the PrintFormsLanguages catalog in exchange plans of the DIB and standalone workstation (SWP).
Email Management
  • Include the PasswordRecoveryAccount constant in exchange plans of a DIB and a standalone workstation (SWP).

File management

Digital signature
  • When using the XMLDSigParameters function of common modules DigitalSignatureClient and DigitalSignature, we recommend that you use the values returned by default.

How to migrate from earlier versions to version 3.1.4

When updating earlier library versions (to 3.1.3):

  • Compare/merge the latest library version (to which you are migrating) with the distribution package file in Designer.
  • Then follow the instructions in each Migration from previous version section for each skipped version.

Migration to corrective releases 3.1.4

Corrective library releases differ only by the fourth digit in the full version number, for example, 3.1.4.1, 3.1.4.20, 3.1.4.300, etc. To upgrade to corrective releases, use external data processor UpdateToCorrectiveVersionSSL.EPF from the distribution package. It will help save your time when regularly updating the application (for example, weekly).

Start the data processor in the infobase with the application that contains the previous library release, specify the CF distribution file for the new library version, and click Update to corrective version. The library version is automatically compared/merged with the new library version according to the documentation settings. All built-in library objects will be transferred, and those overridden during integration will be merged with the priority of the vendor configuration (for example, flexible type collections) or skipped (such as overridable modules). After the comparison/merging, the database configuration will not be updated automatically, which allows you to compare with the database configuration and edit the changed objects: overridable modules, various local patches, and revisions.

As an alternative, you can also click Generate a settings file to generate a comparison/merging settings file. You can later load it in Designer for manual comparison/merging.

From version 3.1.4.232 and earlier

Core

Version 3.1.3

Use version 3.1.3 to develop on 1C:Enterprise platform in the mode of compatibility with versions 8.3.14, 8.3.15, or 8.3.16, that means:

  • 8.3.14 if the Compatibility mode property is set to None.
  • 8.3.15 if the Compatibility mode property is set to Version 8.3.14 or None.
  • 8.3.16 if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or None.
  • 8.3.17 and later, if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or Version 8.3.16.

Migration from version 3.1.2 to version 3.1.3

Required migration actions

In this section, you can find additional migration instructions for each subsystem. Follow the instructions in Designer after the comparison/merge is complete (see Chapter 2 Library integration instructions).

  • Names and composition of parameters of export procedures and functions of common modules, object modules, managers, record sets, and so on located in the Public area.
  • Names and composition of parameters of all export procedures and functions of overridable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that can be directly accessed from the application code or from queries.

If you use the API, there is less need to revise the application code on update to new library versions. In exceptional (rare) cases, when such compatibility is not ensured, and it is required to adapt the application to the new API of the library, this section contains the necessary instructions. Changes in internal library procedures and functions (even if they are export ones) that are not related to the API are not documented. When calling them directly from the application, note that they can be changed, moved, or deleted in the next library version since they are its internal implementation.

Calendar schedules
  • Include the CalendarNonWorkDaysPeriods information register in the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).
Infobase version update
  • Include the UpdateHandlers information register only in the initial image of the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).
Marked objects deletion

Optional migration actions

The actions below are optional for the migration, but we recommend that you schedule them in the future.

Report options
Infobase version update
  • Deleted the OnGenerateDefferedHandlersQueues procedure of the InfobaseUpdateOverridable common module as it is not useful.
Conversations
  • To use the standard form to select users for adding conversation members in the managed application module, add the Conversations subsystem call to the ProcessGetCollaborationSystemUsersChoiceForm event handler:
    If CommonClient.SubsystemExists("StandardSubsystems.Conversations") Then

        ModuleConversationsInternalClient = CommonClient.CommonModule("ConversationsServiceClient");
        ModuleConversationsInternalClient.OnGetCollaborationSystemUsersChoiceForm(ChoiceAssignment, Form, ConversationID, Parameters,
          SelectedForm, StandardDataProcessor);

    EndIf;
  • To improve diagnostics in the SetDocumentPrintArea procedure of the PrintManagement common module, the Reference parameter type check has been added (only reference types are allowed). When passing a value of an incorrect type, an error will be written to the event log. Check all the locations where the procedure is used.
  • Instead of the QRCodeData function of the PrintManagement common module, use the QRCodeData or BarcodeImage function of the BarcodeGenerationServerCall common module from the 1C:Peripherals Library library version 2.1.4 and later. Improved performance on Linux OS. The previous function is marked as obsolete for backward compatibility.
File management
  • The ChangeFilesStorageCatalog procedure of the StoredFiles common module is marked as obsolete. Instead, use the ConvertFilesToAttachedFiles function of the same common module.
Hierarchy
  • If the AttachableCommands subsystem is embedded in the application, clear the types of the RelatedDocuments common command parameters. The subsystem itself defines the objects in whose Reports submenu the Related documents command will be output.

How to migrate from earlier versions to version 3.1.3

When migrating from earlier library versions (up to 3.1.2):

  • Compare/merge the latest library version (to which you are migrating) with the distribution package file in Designer.
  • Follow the instructions from all the Migration from previous version sections for every skipped version.

Migration to corrective releases 3.1.3

Corrective library releases differ only in the fourth digit in the full version number, for example, 3.1.3.1, 3.1.3.20, 3.1.3.300, and so on. To migrate to the corrective releases, use the UpdateToCorrectiveVersionSSL.epf external data processor from the distribution package. It will help save your time on regular updates (for example, every week).

Start the data processor in the infobase with the application that contains the previous library release, specify the CF distribution file for the new library version, and click Update to corrective version. The library version is automatically compared/merged with the new library version according to the documentation settings. All built-in library objects will be transferred, and those overridden during integration will be merged with the priority of the vendor configuration (for example, flexible type collections) or skipped (such as overridable modules). After the comparison/merging, the database configuration will not be updated automatically, which allows you to compare with the database configuration and edit the changed objects: overridable modules, various local patches, and revisions.

As an alternative, you can also click Generate a settings file to generate a comparison/merging settings file. You can later load it in Designer for manual comparison/merging.

From version 3.1.3.303 and earlier

Core

From version 3.1.3.250 and earlier

Core

From version 3.1.3.215 and earlier

Core

From version 3.1.3.187 and earlier

Core

Version 3.1.2

Use version 3.1.2 to develop on 1C:Enterprise platform in the mode of compatibility with versions 8.3.14, 8.3.15, or 8.3.16, that means:

  • 8.3.14 if the Compatibility mode property is set to None.
  • 8.3.15 if the Compatibility mode property is set to Version 8.3.14 or None.
  • 8.3.16 if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or None.
  • 8.3.17 and later, if the Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or Version 8.3.16.

Migration from version 3.1.1 to version 3.1.2

Required migration actions

In this section, you can find additional instructions on migrating for each subsystem. Follow these instructions after comparison or merging.

  • Names and composition of parameters of export procedures and functions of common modules, object modules, managers, record sets, and so on located in the Public area.
  • Names and composition of parameters of all export procedures and functions of overridable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that can be directly accessed from the application code or from queries.

If you use the API, there is less need to revise the application code on update to new library versions.

There are additional instructions for each subsystem for the exceptional cases when such compatibility is not supported and it is required to adapt the application to a new library API. Changes in internal library procedures and functions (even if they are export ones) that are not related to the API are not documented. When calling them directly from the application, note that they can be changed, moved, or deleted in the next library version since they are its internal implementation.

Core
  • Include the AdditionalLanguage1, AdditionalLanguage2, UseAdditionalLanguage1, UseAdditionalLanguage2 and MainLanguage constants in the exchange plans of the distributed infobase (DIB).
Object versioning
  • Changed location and appearance of the ChangeHistory common command. Now, by default, the command is placed not in the navigation panel but in the form command bar. Therefore, the command has become available not only in an object form but also in a list form. To enable hiding this command from list forms, add the following code to the OnCreateAtServer procedure of the modules of the versioned object list forms:
&AtServer
Procedure OnCreateAtServer(Cancel, StandardProcessing)
    // StandardSubsystems.ObjectsVersioning
    ObjectsVersioning.OnCreateAtServer(ThisObject);
    // End StandardSubsystems.ObjectsVersioning
EndProcedure
Work schedules
  • The type of the ScheduleOwner attribute in the Calendars catalog has been changed to the WorkScheduleOwner flexible type collection. List in the WorkScheduleOwner flexible collection type the types of those catalogs that were used as values of the ScheduleOwner attribute.
Calendar schedules
  • Added the OnFillObjectsToChangeDependentOnBusinessCalendars method to the CalendarSchedulesOverridable common module. If some objects dependent on business calendars are processed in the OnUpdateDataDependentOnBusinessCalendars handler, list the metadata names of these objects.
  • Include the CalendarNonWorkDaysPeriods information register in the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).
Data integrity
File management
Access management
  • Update standard data access restriction templates for ForObject and ForRegister. Get them from the EditAccessGroupMembers role and copy to all roles. For more information, see documentation of the Access management subsystem in the Update access restriction templates in roles subsection.
Digital signature
  • Remove the LatestErrorsClassifierUpdateDate and CryptoErrorsClassifier constants from the exchange plans of the DIB.

Optional migration actions

The actions below are optional for the migration, but we recommend that you schedule them in the future.

Core
  • The SetGroupTitleRepresentation procedure of the StandardSubsystemsServer common module is marked as obsolete and left for backward compatibility. We recommend that you delete its calls.
  • To improve the reliability of the client and server code:
    • Instead of the LatinString function of the StringFunctionsClientServer common module, use the same name functions of the StringFunctions or StringFunctionsClient modules.
    • Instead of the FormattedString function of the StringFunctionsClientServer common module, use the same name functions of the StringFunctions or StringFunctionsClient module.
    • Make appropriate replacements in the usage locations.
  • To simplify calling the ReplaceReferences function of the Common common module for the ReplacementParameters parameter (the Structure type), you can use the RefsReplacementParameters function in the same module. To ensure standardization control, in particular, when new required properties of the structure appear, replace all the manual structure initialization sites with a function call.
  • Changed behavior of the DefaultLanguageCode function of the Common common module to simplify the development of applications with several interface languages. Now the function returns a code of the main application language explicitly set by the administrator upon the first application startup.
Business processes and tasks
  • To unify the initial filling of business roles and task addressing objects, procedures OnInitiallyFillPerformersRoles, AtInitialPerformerRoleFilling to fill assignee roles, OnInitialFillingTasksAddressingObjects, OnInitialFillingTaskAddressingObjectItem to fill task addressing objects, have been added to the API of the BusinessProcessesAndTasksOverridable common module. Move the filling item code from initial filling handlers to these procedures.
Object versioning
  • Deleted unclaimed UpdateObjectsVersioningSettings procedure of the ObjectsVersioning common module.
Contact information
  • To exclude excess server export procedures, subsystem integration procedure was changed in form modules (for more information, see the documentation). Apply it to new forms. Reintegration to the existing forms is optional. New code inserts involve procedures StartChange, StartSelection, StartClearing, StartURLProcessing, and StartCommandExecution of the AttachableCommandsClient common module instead of similar OnChange, StartChoice, Cleanup, URLProcessing, ExecuteCommand and look as follows:
    • Previously:

      &AtClient
      Procedure Attachable_ContactInformationOnChange(Item)
          ContactsManagerClient.OnChange(ThisObject, Item);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationStartChoice(Item, ChoiceData, StandardDataProcessor)
          ContactsManagerClient.StartChoice(ThisObject, Item, StandardDataProcessor);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationOnClick(Item, StandardDataProcessor)
          ContactsManagerClient.StartChoice(ThisObject, Item, StandardDataProcessor);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationClearing(Item, StandardDataProcessor)
          ContactsManagerClient.Cleanup(ThisObject, Item.Name);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationExecuteCommand(Command)
          ContactsManagerClient.ExecuteCommand(ThisObject, Command.Name);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationAutoComplete(Item, Text, ChoiceData, DataGetParameters, Wait, StandardDataProcessor)
      
          ContactsManagerClient.AddressAutoComplete(Item, Text, ChoiceData, DataGetParameters, Wait, StandardDataProcessor);
      
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationChoiceProcessing(Item, SelectedValue, StandardDataProcessor)
      
          ContactsManagerClient.ChoiceProcessing(ThisObject, SelectedValue, Item.Name, StandardDataProcessor);
      
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationURLProcessing(Item, FormattedStringURL, StandardDataProcessor)
          ContactsManagerClient.URLProcessing(ThisObject, Item, FormattedStringURL, StandardDataProcessor);
      EndProcedure
      &AtServer
      Procedure Attachable_UpdateContactInformation(Result) Export
          ContactsManager.UpdateContactInformation(ThisObject, Object, Result);
      EndProcedure
    • Now:

      &AtClient
      Procedure Attachable_ContactInformationOnChange(Item)
          ContactsManagerClient.StartChange(ThisObject, Item);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationStartChoice(Item, ChoiceData, StandardDataProcessor)
          ContactsManagerClient.StartSelection(ThisObject, Item, StandardDataProcessor);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationOnClick(Item, StandardDataProcessor)
          ContactsManagerClient.StartSelection(ThisObject, Item, StandardDataProcessor);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationClearing(Item, StandardDataProcessor)
          ContactsManagerClient.StartClearing(ThisObject, Item.Name);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationExecuteCommand(Command)
          ContactsManagerClient.StartCommandExecution(ThisObject, Command.Name);
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationAutoComplete(Item, Text, ChoiceData, DataGetParameters, Wait, StandardDataProcessor)
      
          ContactsManagerClient.AddressAutoComplete(Item, Text, ChoiceData, DataGetParameters, Wait, StandardDataProcessor);
      
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationChoiceProcessing(Item, SelectedValue, StandardDataProcessor)
      
          ContactsManagerClient.ChoiceProcessing(ThisObject, SelectedValue, Item.Name, StandardDataProcessor);
      
      EndProcedure
      &AtClient
      Procedure Attachable_ContactInformationURLProcessing(Item, FormattedStringURL, StandardDataProcessor)
          ContactsManagerClient.StartURLProcessing(ThisObject, Item, FormattedStringURL, StandardDataProcessor);
      EndProcedure
      &AtClient
      Procedure Attachable_ContinueContactInformationUpdate(Result, AdditionalParameters) Export
          UpdateContactInformation(Result);
      EndProcedure
      &AtServer
      Procedure UpdateContactInformation(Result)
          ContactsManager.UpdateContactInformation(ThisObject, Object, Result);
      EndProcedure
  • In the ContactInformationKinds catalog, the EditInDialogOnly attribute (Boolean) is marked as obsolete. Instead, the EditingOption attribute (String) is used. Therefore, according to the rules of conversion with versions SSL 3.1.1 and earlier, you should consider conversion of values from one attribute to another for exchange plans. See an example in the demo application in the templates of the _DemoExchangeWithStandardSubsystemsLibrary225 exchange plan.
Data integrity
  • In all the object form modules to which a subsystem applied, implement the AfterWriteObject event handler for rechecking the object after writing the form. For this, add the procedure call to the AfterWriteAtServer event handler:
AccountingAudit.AfterWriteAtServer(CurrentObject);
Item order setup
  • The FillOrderingAttributeValue procedure of the ItemsOrderSetup common module has been removed from the API. Instead, use the SetOrderingAttributeValue procedure of the same module. Make appropriate replacements in the usage locations.
Application settings
  • There are changes in administration panels (see forms of the SSLAdministrationPanel data processor) that need to be transferred to the application. If these forms were changed in the application, merge them with the changes in the library.
Attachable commands
  • To exclude excess server export procedures, subsystem integration procedure was changed in form modules (for more information, see the documentation). Apply it to new forms. Reintegration to the existing forms is optional. New code inserts involve the StartCommandExecution procedure instead of ExecuteCommand of the AttachableCommandsClient common module and look as follows:
    • Previously:

      &AtClient
      Procedure Attachable_ExecuteCommand(Command)
          AttachableCommandsClient.ExecuteCommand(ThisObject, Command, Object);
      EndProcedure
      &AtServer
      Procedure Attachable_ExecuteCommandAtServer(Context, Result) Export
       AttachableCommands.ExecuteCommand(ThisObject, Context, Object, Result);
      EndProcedure
      &AtClient
      Procedure Attachable_UpdateCommands()
          AttachableCommandsClientServer.UpdateCommands(ThisObject, Object);
      EndProcedure
    • Now:

      &AtClient
      Procedure Attachable_ExecuteCommand(Command)
          AttachableCommandsClient.StartCommandExecution(ThisObject, Command, Object);
      EndProcedure
      &AtClient
      Procedure Attachable_ContinueCommandExecutionAtServer(ExecutionParameters, AdditionalParameters) Export
          ExecuteCommandAtServer(ExecutionParameters);
      EndProcedure
      &AtServer
      Procedure ExecuteCommandAtServer(ExecutionParameters)
          AttachableCommands.ExecuteCommand(ThisObject, ExecutionParameters, Object);
      EndProcedure
      &AtClient
      Procedure Attachable_UpdateCommands()
          AttachableCommandsClientServer.UpdateCommands(ThisObject, Object);
      EndProcedure
Email Management
  • The SendEmailMessage function is marked as obsolete. Instead, use the SendEmail function when sending one email, and SendEmails if the SendEmailMessage function was called in the loop. To simplify migration to new functions, you can use the PrepareEmail auxiliary function whose parameters duplicate the parameters of the SendEmailMessage function in the way how to prepare an email. Make appropriate replacements.
File management
  • To support the thick client of the managed application in the client/server mode, the DetermineAttachedFileForm procedure of the StoredFiles common module is marked as obsolete. Instead, use the procedure of the same name of the StoredFilesClientServer common module. Revise usage locations for this procedure.
  • To simplify calling the AddFile function of the StoredFiles common module for the FileParameters parameter (type Structure), you can use the FileAddingOptions function of the same module. To ensure standardization control, in particular, when new required properties of the structure appear, replace all the manual structure initialization sites with a function call.

Migration to corrective releases 3.1.2

Corrective library releases differ only by the fourth digit in the full version number, for example, 3.1.2.1, 3.1.2.20, 3.1.2.300, etc. To upgrade to the corrective releases, use external data processor UpdateToCorrectiveVersionSSL.EPF from the distribution package. It will help save your time when regularly updating the application (for example, every week).

Start the data processor in the infobase with the application that contains the previous library release. Specify the CF delivery file for the new library version and click Update to corrective version. The library version is automatically compared/merged with the new library version according to the documentation settings. All built-in library objects will be transferred, and those overridden during integration will be merged with the priority of the vendor configuration (for example, flexible type collections) or skipped (such as overridable modules). After the comparison/merging, the database configuration will not be updated automatically, which allows you to compare with the database configuration and edit the changed objects: overridable modules, various local patches, and revisions.

Besides, as an alternative, you can click Generate a settings file and generate a comparison or merging setting file that can be imported to the application for manual comparison or merging.

From version 3.1.2.430 and earlier

Core

From version 3.1.2.352 and earlier

Calendar schedules
  • Include the CalendarNonWorkDaysPeriods information register in the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).

From version 3.1.2.306 and earlier

Access management
  • Update standard data access restriction templates for ForObject and ForRegister. Get them from the EditAccessGroupMembers role and copy to all roles. For more information, see documentation of the Access management subsystem in the Update access restriction templates in roles subsection.

From version 3.1.2.166 and earlier

Contact information

From version 3.1.2.196 and earlier

Infobase version update
  • The third parameter TabularSections with the Structure type is added to the initial data filling handlers OnSetUpInitialItemsFilling located in object manager modules. The parameter is required to fill in the object tables. Add the parameter to the initial filling handlers of the same names that have been added earlier.

From version 3.1.2.202 and earlier

From version 3.1.2.229 and earlier

Core

How to migrate from earlier versions to version 3.1.2

When migrating from earlier library versions (up to 3.1.1):

  • Compare/merge the latest library version (to which you are migrating) with the distribution package file in Designer.
  • Follow the instructions from all the Migration from previous version sections for every skipped version.

Version 3.1.1

Version 3.1.1 is the new revision of 1C:Standard Subsystems Library. Use version 3.1.1 to develop on 1C:Enterprise platform versions 8.3.14 and later with disabled mode of compatibility with version 8.3.14. Полный перечень нововведений см. ниже в разделе Новые возможности и изменения в версии 3.1.1.

Migration from version 3.0.3 to version 3.1.1

Use version 3.1.1 to develop on 1C:Enterprise platform versions 8.3.14 and later with disabled mode of compatibility with version 8.3.14. You should preliminarily adapt the application according to the list of modifications and update of technological platform of versions 8.3.13 and 8.3.14. The minimum adaptation requirements are described in Methodology of application migration to 1C:Enterprise 8.3 platform.

In this version, deleted the metadata objects that were marked as obsolete more than two years ago (in version 2.3.3 and earlier) and the API that had been marked as obsolete before version 2.4.2.

If earlier the migration from an obsolete to a relevant API was not regular in the application, find and replace all the calls specified below in the Required migration actions section before the update. Make replacements according to the instructions in the documentation comments to obsolete procedures and functions. Use 1C:Automated Configuration Check tool (https://v8.1c.ru/acc/) to quickly identify deprecated calls of the obsolete API.

If you use 1C:Standard Subsystems Library (SSL) together with 1C:Cloud Technology Library (CTL), the migration procedure is as follows: to migrate to version 3.1.1, get SSL version 1.2 and perform 5 steps in Designer.

  1. Run the Configuration — Support — Update configuration command. Specify a path to the SSL delivery file in the Select update file option. In the application comparison/merging window that opens, go to the parameters by clicking Actions — Parameters, clear the Allow main configuration object deletion check box, and click OK. In the application comparison/merging window, clear all the check boxes and select the objects to migrate by clicking Actions — Select by new vendor configuration subsystems. Select from the Standard subsystems group:
  • Required subsystems according to the documentation table 2.1.

  • Additional subsystems required for migrating to the application for SaaS according to the documentation table 2.2.

  • All the previously integrated subsystems and the subsystems you need to integrate into your application.

  • Subsystems on which the mentioned above subsystems depend according to documentation tables 2.1–2.3 https://its.1c.ru/db/bspdoc (in Russian).

    Next, click Set.

    Warning

    Select merging mode Get from new vendor configuration (Actions — Set rule for all…). Also select or clear check boxes for separate library objects and their properties according to the instructions in the documentation table 2.6. Depending on the number of subsystems being updated and installed, this step can take from 15 minutes to one hour.

  1. Click Configuration — Support — Update configuration. Specify a path to the CTL delivery file in the Select update file option. In the application comparison/merging window that opens, go to the parameters by clicking Actions — Parameters, clear the Allow main configuration object deletion check box, and click OK. In the application comparison/merging window, clear all the check boxes by clicking Actions — Select by new vendor configuration subsystems and select all the ‘SaaSTechnology’ subsystem objects. Next, click Set.

  2. Click Configuration — Support — Support options. On the Support options form that opens, select the StandardSubsystemsLibrary value in the Vendor configuration drop-down list and click Compare and merge. In the configuration comparison/merging window that opens, go to the parameters by clicking Actions — Parameters, select Allow main configuration object deletion, and click OK. In the configuration comparison/merging window, clear all the check boxes and select all the subsystems integrated in the application and related to the StandardSubsystems subsystem. Next, click Execute.

  3. Click Configuration — Support — Support options. On the Support setting form that opens, select the SaaSTechnologyLibrary value in the Vendor configuration drop-down list and click Compare and merge. In the configuration comparison/merging window that opens, go to the parameters by clicking Actions — Parameters, select Allow main configuration object deletion, and click OK. In the configuration comparison/merging window, clear all the check boxes and select the SaaSTechnology subsystem. Next, click Execute.

Required migration actions

In this section, you can find additional instructions on migrating for each subsystem. Follow these instructions after comparison or merging.

  • Names and composition of parameters of export procedures and functions of common modules, object modules, managers, record sets, and so on located in the Public area.
  • Names and composition of parameters of all export procedures and functions of overridable common modules.
  • Names of metadata objects (including their attributes, tables, and so on) that can be directly accessed from the application code or from queries.

If you use the API, there is less need to revise the application code on update to new library versions.

There are additional instructions for each subsystem for the exceptional cases when such compatibility is not supported and it is required to adapt the application to a new library API. Changes in internal library procedures and functions (even if they are export ones) that are not related to the API are not documented. When calling them directly from the application, note that they can be changed, moved, or deleted in the next library version since they are its internal implementation.

Address classifier
  • Deleted the obsolete API of common modules:
    • AddressClassifier:
      • ClassifierImported.
    • AddressClassifierClient:
      • OpenUpdateCheckForm;
      • OpenAddressClassifierImportForm.
Core
  • Deleted the obsolete API of common modules:
    • Common:
      • GetCommentImage;
      • FillArrayWithUniqueValues;
      • Decline;
      • WSProxy;
      • GetObjectPropertiesDetailsTable;
      • GetCommonRefsSearchExceptionsList;
      • CopyXDTO;
      • XDTOTypePresentation;
      • CommonSettingsStorageSaveArrayAndUpdateCachedValues;
      • CommonSettingsStorageSaveAndUpdateCachedValues;
      • LockIB;
      • UnlockIB;
      • InformationRegistersTypeName;
      • AccumulationRegistersTypeName;
      • AccountingRegistersTypeName;
      • CalculationRegistersTypeName;
      • DocumentsTypeName;
      • CatalogsTypeName;
      • EnumsTypeName;
      • ReportsTypeName;
      • DataProcessorsTypeName;
      • ExchangePlansTypeName;
      • ChartsOfCharacteristicTypesTypeName;
      • BusinessProcessesTypeName;
      • TasksTypeName;
      • ChartsOfAccountsTypeName;
      • ChartsOfCalculationTypesTypeName;
      • ConstantsTypeName;
      • DocumentJournalsTypeName;
      • SequencesTypeName;
      • ScheduledJobsTypeName;
      • RecalculationsTypeName;
      • SetSessionSeparation;
      • SessionSeparatorValue;
      • SetInfobaseSeparationParameters;
      • WriteAuxiliaryData;
      • DeleteAuxiliaryData;
      • IsSeparatedMetadataObject.
    • CommonServerCall:
      • CommonSettingsStorageSaveArrayAndUpdateCachedValues;
      • CommonSettingsStorageSaveAndUpdateCachedValues;
      • SetSessionSeparation.
    • CommonOverridable:
      • ClientRunParametersOnStart;
      • ClientRunParameters.
    • CommonCached:
      • IsSeparatedConfiguration;
      • ConfigurationSeparators;
      • CommonAttributeComposition;
      • IsSeparatedMetadataObject;
      • MainDataSeparator;
      • AuxiliaryDataSeparator;
      • DataSeparationEnabled;
      • SeparatedDataUsageAvailable;
      • GetXSLConversionFromCommonTemplate;
      • SessionWithoutSeparators;
      • ApplicationRunMode.
    • StandardSubsystemsServer:
      • IsDIBNodeInitialImageObject;
      • CheckExchangePlanComposition.
    • StringFunctionsClientServer:
      • StringFromSubstringsArray;
      • FindCharFromEnd;
      • GetParametersFromString.
Business processes and tasks
  • Deleted obsolete API of the BusinessProcessesAndTasksServerCall common module:
    • NotifyPerformersOnNewTasks;
    • CheckTasks.
Currencies
  • Deleted obsolete ConvertFromCurrencyToCurrency function of the CurrenciesExchangeRatesClientServer common module.
Report options
  • Deleted obsolete API of the ReportsOptions common module:
    • UsedSections;
    • AddFullUpdateHandlers;
    • GetRef.
Business interactions
  • Deleted obsolete OpenMailMessageFormSend procedure of the InteractionsClient common module.
Additional reports and data processors
  • Deleted the obsolete API of common modules:
    • AdditionalReportsAndDataProcessors:
      • GetExternalDataProcessorObject;
      • OnCreateAtServer;
      • RunAssignedCommandAtServer.
    • AdditionalReportsAndDataProcessorsServerCall:
      • GetExternalDataProcessorObject.
    • AdditionalReportsAndDataProcessorsClient:
      • ShowСommandExecutionResult;
      • RunAssignedCommandAtClient.
    • AdditionalReportsAndDataProcessorsClientServer:
      • CommandTypeSafeModeScenario.
  • Deleted common modules with an obsolete API:
    • AdditionalReportsAndDataProcessorsInSafeModeInterface;
    • AdditionalReportsAndDataProcessorsScheduledJobs.
Personal data protection
  • Deleted obsolete GetAccessEventUse function of the PersonalDataProtection common module.
Contact information
  • Deleted obsolete API of the ContactsManager common module:
    • ObjectContactInformationValues;
    • ObjectContactInformationTable;
    • FillObjectsContactInformation;
    • FillObjectContactInformation;
    • PreviousContactInformationXMLFormat;
    • PreviousContactInformationXMLStructure;
    • AddressInARCAFormat;
    • AddressesInfo;
    • AddressInfo;
    • ContactInformationAddressState;
    • ContactInformationAddressCity;
    • ValidateAddress;
    • ContactInformationParameters.
  • As 1C:Enterprise platform updated to version 8.3.13 changed its behavior, in the form modules with integrated contact information, add the Export keyword to the previously placed Attachable_UpdateContactInformation procedures:
    • Previously:

      Procedure Attachable_UpdateContactInformation(Result)
    • Now:

      Procedure Attachable_UpdateContactInformation(Result) Export
Calendar schedules
  • Deleted obsolete API of the CalendarSchedules common module:
    • GetDatesArraysByCalendar;
    • GetDateByCalendar;
    • GetDatesDiffByCalendar;
    • RussianFederationProductionCalendar;
    • GetWorkdaysDates.
  • If there is Cloud Technology Library in the application, delete the previously inserted code of the Calendar schedules subsystem from the OnProcessDataArea procedure of the ClassifiersOperationsSaaSOverridable common module.
User reminders
  • Deleted the UserRemindersClientServerOverridable common module with an obsolete API.
Data exchange SaaS
  • Include the MessageExchange exchange plan from Cloud Technology Library in the MessagesQueueEndpoint flexible collection type and exclude all other types.
Infobase version update
  • Deleted obsolete OnDisableUpdateHandlers procedure of the InfobaseUpdateOverridable common module.
  • Deleted the obsolete API of common modules:
    • PrintManagement:
      • GetLocalPrintFilesDirectory;
      • OnCreateAtServer.
    • PrintManagementClient:
      • RunConnectedPrintCommand;
      • StartCommandUpdate.
    • PrintManagementClientServer:
      • UpdateCommands.
Attachable commands

As 1C:Enterprise platform updated to version 8.3.13 changed its behavior, add the Export keyword to the previously placed Attachable_ExecuteCommandAtServer procedures in the form modules:

  • Previously:

    Procedure Attachable_ExecuteCommandAtServer(Context, Result)
  • Now:

    Procedure Attachable_ExecuteCommandAtServer(Context, Result) Export
Users
  • Deleted obsolete API of the Users common module:
    • ReadIBUser;
    • WriteIBUser;
    • SystemAdministratorRole.
Object prefixes
  • Deleted obsolete API of the ObjectPrefixationClientServer common module:
    • GetCustomPrefix;
    • GetNumberToPrint.
Security profiles
  • Deleted obsolete API of the SafeModeManager common module:
    • ExecuteConfigurationMethod;
    • ExecuteObjectMethod;
    • ExecuteInSafeMode;
    • CalculateInSafeMode.
File management
  • Deleted common modules with an obsolete API:
    • AttachedFiles;
    • AttachedFilesClient;
    • AttachedFilesClientServer;
    • FileFunctions.
Object presentation declension
  • The OnChangePresentation procedure of the ObjectsPresentationsDeclensionClient common module is no longer supported. In the declension object form modules where it is called:
    • Replace its call with a call of the DeclinePresentation procedure of the ObjectsPresentationsDeclensionClient common module.
    • Delete the Attachable_DeclinePresentationForAllCases procedure.
Individuals
  • Deleted API of the IndividualsClientServer common module:
    • FullName;
    • IndividualInitialsLastName.
Access management
  • Update standard data access restriction templates for ForObject and ForRegister in all roles. Use standard templates from the EditAccessGroupMembers role and copy them to all the roles. For bulk update, use the Restriction templates tab in the All access restrictions form (filter by the template name, select all the lines, and click Edit). You can also use the SSLImplementationCheck.erf report in the error correction mode.

Optional migration actions

The actions below are optional for the migration, but we recommend that you schedule them in the future.

Core
  • The IsOSXClient procedures of the Common and CommonClient common modules are obsolete. Use IsMacOSClient of the same common modules instead. Revise call sites for this procedure.
Currencies
Contact information
Application settings
  • Merge the form module code of all the administration panels with its own form modifications and transfer it to the application.
Object presentation declension
  • The OnWriteAtServer procedure of the ObjectPresentationDeclension common module is obsolete. Use OnWriteDeclensionObjectForm of the same common module instead. Revise call sites for this procedure.
  • The DeclineFullNameUsingComponent procedure of the ObjectPresentationDeclension common module is obsolete. Use DeclineFullName of the same common module instead. Revise call sites for this procedure.
  • The DeclinePresentationForAllCases procedure of the ObjectsPresentationsDeclensionClient common module is obsolete. Use DeclinePresentation of the same common module instead. Revise call sites for this procedure.
  • The ProcessDeclensionCommand procedure of the ObjectsPresentationsDeclensionClient common module is obsolete. Use ShowDeclension of the same common module instead. Revise call sites for this procedure.
Access management
  • Simplified API of the OnCreateAccessValueForm procedure of the AccessManagement common module.
    • Now instead of five only two parameters are used. The second parameter is a structure that contains rarely used parameters.
    • The Attribute, Items, ValueType, CreateNewAccessValue parameters are marked as obsolete and left for backward compatibility. Instead, use the AdditionalParameters structure passed by the second parameter. Check all the usage locations.
    • The AdditionalParameters parameter has the ParametersOnCreateAccessValueForm function in the AccessManagement common module.
  • Add predefined items of all the registers to the MetadataObjectIDs catalog. It ensures that when changing access restrictions in the manager modules, you do not need to add predefined items upon the application customization and using application extensions.
    Now the SSLImplementationCheck.epf report adds predefined items of all the registers to the MetadataObjectIDs catalog in the correction mode. We recommend that you run the report in the correction mode.

Migration to corrective releases 3.1.1

Corrective library releases differ only by the fourth digit in the full version number, for example, 3.1.1.1, 3.1.1.20, 3.1.1.300, etc. To upgrade to the corrective releases, use external data processor UpdateToCorrectiveVersionSSL.EPF from the distribution package. It will help save your time when regularly updating the application (for example, every week).

Start the data processor in the infobase with the application that contains the previous library release. Specify the CF delivery file for the new library version and click Update to corrective version. The library version is automatically compared/merged with the new library version according to the documentation settings. All built-in library objects will be transferred, and those overridden during integration will be merged with the priority of the vendor configuration (for example, flexible type collections) or skipped (such as overridable modules). After the comparison/merging, the database configuration will not be updated automatically, which allows you to compare with the database configuration and edit the changed objects: overridable modules, various local patches, and revisions.

Besides, as an alternative, you can click Generate a settings file and generate a comparison or merging setting file that can be imported to the application for manual comparison or merging.

From version 3.1.1.99 and earlier

Access management
  • Improved standard data access restriction templates for ForObject and ForRegister. Get them from the EditAccessGroupMembers role and copy to all roles. For bulk update, use the Restriction templates tab in the All access restrictions form (filter by the template name, select all the lines, and click Edit). Or use the SSLImplementationCheck.erf report in the error correction mode.

From version 3.1.1.120 and earlier

Access management
  • Make an insert for the metadata objects specified in the OnFillListsWithAccessRestriction procedure of the AccessManagementOverridable common module in the AfterWriteAtServer event handler of the object form (all the forms with the main object attribute):
// StandardSubsystems.AccessManagement  
AccessManagement.AfterWriteAtServer(ThisObject, CurrentObject, WriteParameters);  
// End StandardSubsystems.AccessManagement 
  • Update standard data access restriction templates for ForObject and ForRegister in all roles. Use standard templates from the EditAccessGroupMembers role and copy them to all the roles. For bulk update, use the Restriction templates tab in the All access restrictions form (filter by the template name, select all the lines, and click Edit). You can also use the SSLImplementationCheck.erf report in the error correction mode.
  • Transfer the changes made to the code of the UsersAndRightsSettings form of the SSLAdministrationPanel data processor if used.

From version 3.1.1.136 and earlier

Access management
  • Fixed standard data access restriction templates for ForObject and ForRegister to run on platform version 8.3.15. Get them from the EditAccessGroupMembers role and copy to all roles. For bulk update, use the Restriction templates tab in the All access restrictions form (filter by the template name, select all the lines, and click Edit). Or use the SSLImplementationCheck.erf report in the error correction mode.

From version 3.1.1.151 and earlier

Access management
  • Transfer the changes made to the UsersAndRightsSettings form of the SSLAdministrationPanel data processor if used.

How to migrate from earlier versions to version 3.1.1

Limited update for the versions earlier than 2.3.3

You can migrate to version 3.1.1 from version 2.3.3 and later. If an older library version is embedded in the application, a developer must restrict direct migration to the new application version (on the basis of library 3.1.1 version). The migration must be made via an intermediate version with a required startup to execute update handlers (including deferred ones).

For example, in the application version 1.1.1 and later, 2.3.3 SSL version is used. 3.1.1 SSL version is embedded to new 1.2.1 version:

  1. If you publish application releases on 1C:Application update portal (https://releases.1c.ru), then on publishing new version 1.2.1, specify in the Minimum version to startup handlers property the version where 2.3.3 SSL is used (here, it is 1.1.1). Then the required startup will occur automatically on updating the application in 1С:Enterprise mode.
  2. If you run update via Designer and want to avoid unexpected situations, consider displaying a warning in the OnDetermineUpdateAvailability procedure of the InfobaseUpdateClientOverridable common module:
Procedure OnDetermineUpdateAvailability(Val DataVersion) Export

    AvailableVersion = "1.1.1";

    DataVersionWithoutBuildNumber = CommonClientServer.ConfigurationVersionWithoutBuildNumber(DataVersion);
    Result = CommonClientServer.CompareVersionsWithoutBuildNumber(DataVersionWithoutBuildNumber, AvailableVersion);
    If DataVersion <> "0.0.0.0" And Result < 0 Then
        Message = NStr("en = 'Update from version %2 was attempted. 
            |You can update only from version %1 or later.
            |Restore the infobase from a backup
            |and try to update again as described in file 1cv8upd.htm'");
        Message = StringFunctionsClientServer.SubstituteParametersToString(Message, AvailableVersion, DataVersion);
        RaiseException Message;
    EndIf;

EndProcedure

How to update from versions 2.3.3 – 3.0.1

When migrating from earlier library versions (up to 3.0.1):

  • Compare/merge the latest library version (to which you are migrating) with the distribution package file in Designer.
  • Follow the instructions from all the Migration from previous version sections for every skipped version.

For example, if you are migrating from version 3.0.1.1 directly to version 3.1.1.123, sequentially follow the instructions of all the sections:

  • Migration from previous versions 3.0.1 to version 3.0.1
  • Migration from version 3.0.1 to version 3.0.2
  • Migration from version 3.0.2 to version 3.1.1
Icon/Social/001 Icon/Social/006 Icon/Social/005 Icon/Social/004 Icon/Social/002