Version 3.1
What’s new in versions
- What's new in version 3.1.12
- New features for developers in version 3.1.12
- Migrating from version 3.1.11 to version 3.1.12
- How to migrate from earlier versions to version 3.1.12
- Migration to corrective releases 3.1.12
- What's new in version 3.1.11
- New features for developers in version 3.1.11
- Migrating from version 3.1.10 to version 3.1.11
- How to migrate from earlier versions to version 3.1.11
- Migration to corrective releases 3.1.11
- What's new in version 3.1.10
- New features for developers in version 3.1.10
- Migrating from version 3.1.9 to version 3.1.10
- How to migrate from earlier versions to version 3.1.10
- Migration to corrective releases 3.1.10
- What’s new in version 3.1.7
- New features for developers in version 3.1.7
- Migration from version 3.1.6 to version 3.1.7
- How to migrate from earlier versions to version 3.1.7
- Migration to corrective releases 3.1.7
- What’s new in version 3.1.6
- New features for developers in version 3.1.6
- Migration from version 3.1.6 to version 3.1.6
- How to migrate from earlier versions to version 3.1.6
- Migration to corrective releases 3.1.6
- What’s new in version 3.1.5
- New features for developers in version 3.1.5
- Migration from version 3.1.4 to version 3.1.5
- How to migrate from earlier versions to version 3.1.5
- Migration from version 3.1.1 to version 3.1.2
- Migration to corrective releases 3.1.2
- How to migrate from earlier versions to version 3.1.3
- Migration from version 3.0.3 to version 3.1.1
- Migration to corrective releases 3.1.1
- How to migrate from earlier versions to 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
FromNewLineoperand 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 Administration → File 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 Administration → Organizer → Email (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.Currenciestype attribute or a common field of this type, nested fields with amounts in words are added to the monetary type object fields (see theMonetaryAmountPositiveNegativeandMonetaryAmountNonNegativetype collections). At this, the currency for displaying the amount in words is determined automatically. - To redefine a default currency, use the API with the
OnDefineObjectDefaultCurrencyprocedure of theCurrencyRateOperationsOverridablecommon 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 theCatalogRef.Currenciestype. See the example in the demobase. - If an object contains several attributes of the
CatalogRef.Currenciestype, you can use theCurrencyRateOperations.ConnectPrintDataSourceNumberWrittenprocedure expanded with theFieldSourceNameparameter 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:ConfirmSendingSelectiveDataUploadMessageInitializeSelectiveDataUpload
ExchangeMessagesTransport:StructureOfTransportParametersStructureOfResultOfObtainingParametersOfCorrespondent
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 theDataExchangeServer.PerformExchangeActionwith dedicated additional parameters. Example of use:- Prepare a list of references
ReferencesForExportand initialize data export.
AdditionalParameters = Undefined; DownloadableLinks = DataExchangeXDTOServer.InitializeSelectiveDataUpload( ExchangeNode, ReferencesForExport, AdditionalParameters); If DownloadableLinks.Count() = 0 Then Return; EndIf;- Export data using a configured exchange message transport.
Cancel = False; DataExchangeServer.PerformExchangeAction( Cancel, ExchangeNode Enums.ActionsOnExchange.DataExport, "<ID of configured message transport>", AdditionalParameters);- Confirm the export if the exchange message is successfully sent.
If Not Cancel Then DataExchangeXDTOServer.ConfirmSendingSelectiveDataUploadMessage( ExchangeNode, AdditionalParameters); EndIf- Prepare a list of references
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 theOnFillListOfCommonFieldsprocedure of thePrintManagementOverridablecommon 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
OnExecuteActionWithFileof theFilesOperationsClientOverridablehas been added.You can perform asynchronous retrieval of binary data from attached files in the
OpenFileandSaveFileAsfunctions of theFilesOperationsClientcommon module.
To use this feature, the first parameter of these functions must be the result of theFilesOperationsClient.AsynchFileReceiptParametersconstructor function.To improve code readability, the
FilesOperationsClientServer.AdditionalParametersFileDataForSaveconstructor function has been added. This function is designed to initialize the second parameter of theFilesOperationsInternalServerCall.FileDataToSavefunction.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
IsFileArchiveAvailableproperty in theSettingsparameter of theOnDefineSettingsprocedure of theFilesOperationsOverridablecommon 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
StandardOptionsetting in theAccessManagementOverridable.OnDefineSettingsprocedure (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
CaptionsLevelRestrictionsin theAccessManagementOverridable.OnDefineSettingsprocedure (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
BasicAccessSSLrole. - For unrestricted rights, use the
ReadKeyCertificatesOfDigitalSignatureAndEncryptionandAddEditDigitalSignatureAndEncryptionKeyCertificatesroles. - For record-level access restriction, use the RLS-supported roles:
ReadDigitalSignatureAndEncryptionKeysPersonalCertificatesandAddEditDigitalSignatureAndEncryptionKeysPersonalCertficates. - 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.
- Rights to the specified metadata objects are no longer included in the
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:
DataExchangeOverridableDataExchangeSaaSOverridable
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
Publicarea. - 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 StandardSubsystemscomment in the following handlers of the managed application module:OnGlobalSearchOnGlobalSearchResultChoiceOnGlobalSearchResultActionChoiceNavigationByURLProcessing
Email management
- Exclude the
CommonSettingsForInternetServicesAuthorizationcatalog 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
- Constant
Digital signature
- The rights to read the Certificates of digital signature keys and encryption catalog are no longer included in the
BasicAccessSSLrole. TheReadDigitalSignatureAndEncryptionKeysPersonalCertificatesrole with the same rights as theBasicAccessSSLrole 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, theReadKeyCertificatesOfDigitalSignatureAndEncryptionrole 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 DriveandInternet (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:
GetFilesFromInternetLocalizationFilesOperationsLocalization
Core
- In the
OpenFile,SaveFile, andSaveFilesprocedures of theFileSystemClientcommon 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.ExceptionClarificationfunction. 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 theErrorInfo.Causeproperty), 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 functionStandardSubsystemsClientServer.MetadataObjectsSelectionParameters.To open a form for viewing and editing spreadsheet documents, use the procedure
StandardSubsystemsClient.ShowSpreadsheetEditorand the constructor functionStandardSubsystemsClient.SpreadsheetEditorParameters. To view differences in spreadsheet documents, use the procedureStandardSubsystemsClient.ShowSpreadsheetComparisonand the constructor functionStandardSubsystemsClient.SpreadsheetComparisonParameters.The
CommonClientOverridablecommon module is augmented with handler procedures for standard events of the managed application module:OnGlobalSearch,OnGlobalSearchResultChoice,OnGlobalSearchResultActionChoice, andNavigationByURLProcessing.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
DataAreahas been added to the functionsReadOwnersDataFromSecureStorageandReadDataFromSecureStorageof theCommoncommon module.A new function,
InterfacesVersions, was implemented in theCommonmodule, which retrieves all available API versions from theInterfaceVersionsweb 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
ReportsSnapshotscommon module. For the implementation example, see the_DemoExchangeMobileClientcommon module. - List forms can now display open commands for non-contextual reports. To do this, you can set the
IsNonContextualproperty in theReportsOptionsOverridable.BeforeAddReportCommandsprocedure when defining report commands. When set toTrue, 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 isFalse.
Add-ins
- The procedure
AttachAddInFromTemplateand the functionAttachAddInFromTemplateAsyncin theCommonClientcommon 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 methodCheckAddInAttachment. - When using the
AttachAddInFromTemplateprocedure and theAttachAddInFromTemplateAsyncfunction from theCommonClientmodule, it is no longer necessary to display the installation prompt; the add-in installation can begin immediately. To support this, theAddInAttachmentParametersconstructor function in the same module includes theShouldShowInstallationPromptproperty.
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
ContactsManagercommon module now includes functionsInfoAboutAddressandInfoAboutAddresses. 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
AccountingAuditcommon module is augmented with theObjectsWithIssuesfunction and theParametersOfObjectsWithIssuesSelectionconstructor function. These functions can be used for batch retrieval and processing of records. See an example of use in thePostTaxInvoicesForTroublesomeCounterpartiesprocedure in the_DemoTaxInvoiceReceiveddocument'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
AdditionalLanguage3andUseAdditionalLanguage3, along with a functional optionUseAdditionalLanguage3. - Add common attributes, such as
DescriptionLanguage3,CommentLanguage3, etc.
- Create constants
- 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.
- To add a new accounting language, create the corresponding metadata specifying the language suffixes. For example, to add a third additional language:
Data exchange
The
ExchangeMessagesTransportsubsystem has been separated from theDataExchangesubsystem. 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 modulesExchangeMessagesTransportandExchangeMessagesTransportOverridable.Standard transport data processors:
ExchangeMessageTransportCOM: direct connection to the peer infobase via a COM connection (with theCOMID). See theTransportIDparameter in the data processor's manager module.ExchangeMessageTransportEMAIL: exchange via email (EMAILID).ExchangeMessageTransportFILE: exchange via a local or network directory (FILEID).ExchangeMessageTransportFTP: exchange via an FTP server (FTPID).ExchangeMessageTransportGoogleDrive: exchange via Google Drive cloud storage (GoogleDriveID).ExchangeMessageTransportHTTP: exchange over the Internet via an HTTP service (HTTPID).ExchangeMessageTransportSM: for exchange between areas in SaaS applications (SMID).ExchangeMessageTransportSM: exchange over the Internet using a web service (WSID).ExchangeMessageTransportESB1C: exchange via 1C:Bus (ESB1CID).
The
DataExchangeServercommon module's API is augmented with thePerformExchangeActionprocedure. For more information, see the procedure description.The
DataExchangeClientcommon module's API is augmented with the proceduresOpenInfobasePrefixChangeFormandOpenFormForDeletingSyncAlerts. 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:AllConfigurationExchangeMessagesTransportsFTPDirectoryExistsExecuteExchangeActionForInfobaseNode
- Common module
DataExchangeCached:IsStandaloneWorkplaceFindExchangePlanNodeByCode
Remove all references to them from your code, or replace them with the procedures and functions specified in the comments.
- Common module
Infobase version update
To check for permissions to view the application release notes, use the
ApplicationReleaseNotesViewAvailablefunction of theInfobaseUpdatecommon module.To optimize data retrieval handler queries, a dot notation access check has been implemented in the parameters of multithreaded handlers
OrderingFieldsOnUserOperationsandOrderingFieldsOnProcessData. 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, andSelectRefsToProcessfunctions of theInfobaseUpdatecommon module.The
MarkForProcessingprocedure of theInfobaseUpdatecommon module can now acceptQueryResulttype data to optimize memory usage.In the
InfobaseUpdate.DataProcessingCompletedfunction, the second parameter,FullObjectNameMetadata, is now optional; its value is calculated automatically. For more information, see the function description.In the
AfterWriteDataprocedure of theInfobaseUpdateOverridable, 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
_DemoGoodsSalesdocument 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
OrganizationandRecipientmust be populated from the document data for each document type in theOnDefineKeyAttributesOfDefaultPrintFormsprocedure of thePrintManagementOverridablecommon module. See the example in the demo configuration. - To retrieve the stored names of default print forms, you can use functions
DescriptionOfGeneratedDefaultPrintFormandDescriptionsOfGeneratedDefaultPrintFormsin thePrintManagementcommon module. These functions can be used, for example, when generating reconciliation statements.
Network download
- The
ConnectionDiagnosticsfunction of theGetFilesFromInternetcommon module now includes theErrorTextparameter, 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
UpdateDistributionTermstemplate 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.OpenFileListFormprocedure and theFileListFormOpeningParametersconstructor function to pass additional parameters for opening the form and to specify notifications for closing the form.
Properties
- The API of the
PropertyManagercommon module is updated:- To add additional attributes and labels to an object before writing it, the
SetPropertiesForObjectprocedure is provided. For more information, see the procedure description. - In the
AddPropertyValuefunction, the redundantHierarchyparameter has been removed; it is now automatically calculated based on the other parameters. - The
AddPropertyprocedure 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).
- To add additional attributes and labels to an object before writing it, the
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, theAccessManagement.ReadingAllowedandAccessManagement.EditionAllowedfunctions 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.OnDefineSettingsallows 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
SourceDocumentsOriginalsRecordingOverridablecommon module API:- The
OnChangeAggregatedOriginalStateprocedure allows you to define actions when writing the aggregated state of the original. - The
BeforeWriteOriginalStatesAfterPrintprocedure 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.
- The
New functions in the
SourceDocumentsOriginalsRecordingcommon module API:- The
SetNewOriginalStatefunction writes new or modified states of source document originals. - The
OriginalStateInfoByReffunction retrieves data on the current aggregated state of the source document. - The
StateHyperlinkPresentationfunction 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.
- The
In the API procedures necessary to ensure correct original tracking without the Attachable commands subsystem, some parameters are now optional: the second parameter
ListinSourceDocumentsOriginalsRecording.UpdateOriginalStateCommandsand the third parameterListinSourceDocumentsOriginalsRecordingClient.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.OpenExtendedErrorPresentationFormand the constructor functionExtendedErrorPresentationFormParameterscan 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
CertificatePropertiesfunction of theDigitalSignatureandDigitalSignatureClientcommon 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
IsTimestampDateSpecifiedproperty to True in theCheckParametersparameter of theDigitalSignatureClient.CheckCertificateprocedure and theDigitalSignature.CheckCertificatefunction and pass the date in theOnDateparameter.For batch retrieval of references to digital signature certificates in a single query, the
DigitalSignaturecommon module now includes theRefsToCertificatesfunction, which complements the existingCertificateReffunction.For batch retrieval of digital signature stamps in a single query, the
DigitalSignaturecommon module now includes theDigitalSignatureVisualizationStampsfunction, which complements the existingDigitalSignatureVisualizationStampfunction. As theSignatureparameter, we recommend passing the signature properties obtained with theObjectSignaturesfunction.
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:
PeriodClosingDatesOverridableDataExchangeOverridableDataExchangeSaaSOverridableCommonClientOverridableCommonOverridableCompaniesOverridableSoftwareLicenseCheckOverridableFilesOperationsOverridableDigitalSignatureOverridable
Modified localizable common modules:
InteractionsLocalizationAddInsClientLocalizationCurrencyRateOperationsLocalizationCurrencyRateOperationsClientLocalizationEmailOperationsLocalizationStandardSubsystemsClientServerLocalizationStandardSubsystemsServerLocalizationContactsManagerClientLocalizationContactsManagerClientServerLocalizationContactsManagerLocalizationDigitalSignatureClientLocalizationDigitalSignatureClientServerLocalizationDigitalSignatureLocalization
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
Publicarea. - 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:
OnGlobalSearchOnGlobalSearchResultChoiceOnGlobalSearchResultActionChoiceNavigationByURLProcessing
- Custom implementations of these handlers can now also be placed in the
CommonClientOverridablecommon module. See the corresponding procedures:OnGlobalSearch,OnGlobalSearchResultChoice,OnGlobalSearchResultActionChoice, andNavigationByURLProcessing. - We recommend adding the
AccessToInternetServicesAllowedconstant to the DIB and SWS exchange plans, as it is used when creating the initial image. - Exclude the
ObsoleteSafeDataAreaDataStorageinformation 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
Countryattribute (CatalogRef.WorldCountriestype, separated data) in theBankClassifiercatalog (common data) has been renamed toObsoleteCountryand is no longer used. It is replaced by theCountryCodeattribute (Stringtype), which is filled according to ISO 3166-1 and corresponds to theCodeattribute of theWorldCountriescatalog of the Contact information subsystem. This change must be considered in all configuration areas that directly reference theBankClassifiercatalog'sCountryattribute.
Data exchange
In the
OnGetSettingOptionDetailsprocedure of the exchange plan's manager module, the type of added values in theUsedExchangeMessagesTransportsproperty 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
ExchangeMessagesTransportcommon module provides the following functions to get a manager of the suitable data processor:TransportManagerFILETransportManagerCOMTransportManagerEMAILTransportManagerFTPTransportManagerHTTPTransportManagerWSTransportManagerSMTransportManagerPassiveModeTransportManagerESB1CTransportManagerGoogleDrive
The new type collection
ExchangePlansDSLmust contain references to all exchange plans used for data synchronization, as specified in the procedureDataExchangeOverridable.GetExchangePlans.In the
ProcessExchangeMessageTransportSettingsprocedure of the EnterpriseData exchange plan's manager module, you must now use theExchangeMessageTransportSettingscatalog instead of theDataExchangeTransportSettingsinformation register to store connection settings.Exclude the
ExchangeMessageTransportSettingscatalog from the DIB exchange plans.
Configuration update
- Exclude the
PatchPropertiesBeforeInfobaseUpdateconstant from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.
Print tools
- Include information registers
DefaultObjectPrintFormsandDefaultCounterpartyPrintFormsto the DIB and SWS exchange plans.
Totals and aggregates
- We recommend adding the
MonthsInMinTotalsPeriodconstant 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
AccessesExternalResourcesproperty toTruein theOnDefineScheduledJobSettings 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
UseExternalResourcesproperty set toTrue(for example, jobs that send email, text messages, or synchronize data). Such scheduled jobs should be disabled in infobase copies.
- Scheduled jobs that modify data in external resources should still have the
Source document tracking
- The names of notification events in the subsystem have been renamed:
AddDeleteSourceDocumentOriginalStatehas becomeWrite_SourceDocumentsOriginalsStatesandSourceDocumentOriginalStateChangehas becomeWrite_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
CertificateandSignatureFileNameresources have been removed from theDigitalSignaturesinformation register. Delete or adapt all references to these resources in the code, queries, and reports. To get a signature certificate, use theDigitalSignature.CertificateFromSignatureBinaryDatafunction. To get a signature file name, use theDigitalSignatureClientServer.SignatureFileNamefunction. - We recommend adding the
AllowAccessToDigitalSignatureInternetServicesconstant to the DIB and SWS exchange plans, as it is used when creating the initial image. - The
OpenInstructionOnTypicalProblemsOnWorkWithApplicationsprocedure of theDigitalSignatureClientcommon module and theOnDefiningRefToAppsTroubleshootingGuideprocedure of theDigitalSignatureClientServerLocalizationcommon 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, andDeletemodes on 1C:Enterprise v.8.3.25 and later, theCommoncommon module is augmented with the helper functionsSetRecordsFromDatabase,SetRecordsChange,NewParametersToFilterSetRecordsFromDatabase, andFilterSetRecordsFromDatabase. Additionally, to ensure compatibility with 1C:Enterprise v.8.3.24, wrapper functions can be used:IsRecordSetAddition,IsRecordSetReplacement,IsRecordSetUpdate,IsRecordSetMerge,IsRecordSetDeletion,RecordSetUpdateMode,RecordSetMergeMode, andRecordSetDeletionModefrom theCommoncommon module. For more information, see comments to these functions.The behavior of the
PredefinedItemfunction in theCommonandCommonClientmodules has been improved. It now returnsUndefinedif an object or its predefined item does not exist in the configuration metadata. Previously,Undefinedwas 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
TimeIntervalStringfunction in theCommoncommon module has been improved. Now, instead of throwing an exception, it returns an empty string ifBeginTimeis greater thanEndTime. 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.ExceptionClarificationfunction. 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
GetFilesFromInternetcommon module and theCommon.CreateWSProxyfunction, no additional actions are required: when theAccessToInternetServicesAllowedfunctional option is disabled, they will return an Internet access error. In other cases, before establishing a connection with a web service, call theCommon.AccessToInternetServicesAllowedprocedure. - To access local network resources (if known in advance), disable Internet access checks using the
ShouldCheckAccessToInternetServicesproperty in theGetFilesFromInternetClientServer.FileGettingParametersparameter for the functions of theGetFilesFromInternetmodule and in theWSProxyConnectionParametersparameter forCommon.CreateWSProxy. - We also recommend that you hide unavailable features and controls in the UI using the
AccessToInternetServicesAllowedfunctional option (constant of the same name). The functionCommon.AccessToInternetServicesDeniedMessageTextcan 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
AccessToInternetServicesAllowedand the procedureSetUpInternetServicesOperationsof theCommoncommon module.
- In places where access to web services uses the API of the
Instead of using the obsolete function
CommonServerCall.RefsToObjectFound, we recommend that you open a long-running operation form and callCommon.RefsToObjectFoundfrom there.Instead of the obsolete function
CommonServerCall.CheckDocumentsPosting, call the functionCommonServerCall.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
AttachFileOperationsExtensionfunction from theFileSystemClientcommon module is deprecated. Instead, callAttach1CEnterpriseExtensionfrom the same module.
Business processes and tasks
- Instead of using obsolete procedures and functions from the
BusinessProcessesAndTasksServerCallcommon module, call their counterparts from theBusinessProcessesAndTasksServercommon module.
Add-ins
- The
AddInServerCall.AddInInformationfunction is deprecated. Instead, callAddInsServer.AddInInformation.
Period-end closing dates
- To be able to write information and accumulation registers in the
Update,Merge, andDeletemodes on 1C:Enterprise v.8.3.25 and later, you need to adjust the implementation of overridable proceduresBeforeCheckPeriodClosing,BeforeCheckOldDataVersion, andBeforeCheckNewDataVersionof thePeriodClosingDatesOverridablecommon module. TheReplaceproperty, which is passed to these procedures as part of theAdditionalPropertiesstructure of a record set, can now have not only aBooleantype but also aReplacementModetype (for more details, see the comments to these procedures).
Additional reports and data processors
- Instead of using obsolete functions of the
AdditionalReportsAndDataProcessorsServerCallcommon module, call their counterparts from theAdditionalReportsAndDataProcessorscommon module:AttachExternalDataProcessorandExternalDataProcessorObject.
Contact information
- To improve code readability and maintainability, we recommend using the
AddressParameters,EmailAddressParameters, andPhoneParametersconstructor functions (depending on the contact information type) instead of theContactInformationKindParametersfunction of theContactsManagercommon module.
Print tools
- Instead of the obsolete function
PrintManagementServerCall.TemplatesAndObjectsDataToPrint, callPrintManagement.TemplatesAndObjectsDataToPrintand use the server mechanism to generate print forms based on Office document templates.
File management
- The
FilesOperationsOverridable.OnPrintFileWithStampprocedure is deprecated. Instead, useDigitalSignatureOverridable.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
WriteCommonDocumentOriginalStateandWriteDocumentOriginalStateByPrintFormsof theInformationRegisters.SourceDocumentsOriginalsStatesmanager module, call the same procedures from theSourceDocumentsOriginalsRecording module. The new procedures take a reference to a state catalog item as the secondState` parameter, rather than a string with the state description. Review all locations where the obsolete procedures are called and make any necessary replacements.The
NotificationHandlerDocumentFormprocedure in theSourceDocumentsOriginalsRecordingClientcommon 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 parameterSourceto all procedure calls.The
SourceDocumentsOriginalsRecordingServerCall.WriteOriginalsStatesAfterPrintfunction is deprecated. Instead, callSourceDocumentsOriginalsRecording.WriteOriginalsStatesAfterPrintandSourceDocumentsOriginalsRecordingClient.WriteOriginalsStatesAfterPrint.The
WriteDocumentOriginalsStatesAfterPrintFormprocedure of theInformationRegisters.SourceDocumentsOriginalsStatesmanager module is deprecated. Instead, call the same procedure from theSourceDocumentsOriginalsRecordingmodule.
Digital signature
- The
SetSignaturesfunction of theDigitalSignaturecommon module is deprecated. Instead, use the newObjectSignaturesfunction and theNewObjectSignaturesAcquisitionParametersconstructor function from the same module. Review all locations where this function is called.- For performance reasons, the
ObjectSignaturesfunctions does not return digital signature certificates by default. To get them, you must explicitly set theShouldExtractCertificatesFromSignaturesproperty in theAdditionalParametersparameter toTrue. - The
SequenceNumberandShouldReturnMachineReadableLOADataparameters used in theSetSignaturesfunction can also be passed to theObjectSignaturesfunction via the same named properties of theNewObjectSignaturesAcquisitionParametersconstructor function.
- For performance reasons, the
- 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
AccessToInternetServicesAllowedfunction of theDigitalSignaturecommon 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,ExecuteProcedureinMultipleThreadsandExecuteInBackgroundof theTimeConsumingOperationscommon module.- Now, the output of a long-running operation contains the property
ErrorInfo(of theErrorInfotype), while the obsolete propertiesBriefErrorDescriptionandDetailErrorDescription(of the String type) are kept for backward compatibility. The propertyErrorInfois returned by the functionTimeConsumingOperations.JobCompletedand in the return value to be passed to the notification procedure specified in theCallbackOnCompletionparameter of theTimeConsumingOperationsClient.WaitCompletionprocedure. - To display exceptions on the client, we recommend calling the
StandardSubsystemsClient.OutputErrorInfofunction instead of showing warnings or calling the 1C:Enterprise methodShowErrorInfo. This function is intended for intercepting exceptions by automated testing software (given that theShowErrorInfomethod doesn't trigger theErrorDisplayProcessingevent handler in the application module). - The descriptiveness of errors occurred in background jobs of long-running operations is now adjustable. When the
CommonParameters.ShouldIncludeFullStackInLongRunningOperationErrorsparameter of theCommonOverridable.OnDetermineCommonCoreParametersprocedure is set toTrue, the error details for the developer will contain a snippet of the operation stack (before the startup). By default, the parameter is set toFalsefor debugging purposes.
- Now, the output of a long-running operation contains the property
To make handling errors occurred when replacing items more adjustable, the output of the function
Common.ReplaceReferencesis augmented by theErrorInfoproperty (of theErrorInfotype). 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
CancelButtonTitleparameter of theTimeConsumingOperationsClient.IdleParametersfunction.A new procedure,
OnDefineFullNameComponents, is implemented in thePersonsClientServerLocalizationmodule. The procedure overrides theIndividualsClientServer.NamePartsfunction to address the national aspects of individuals' names.The
IndividualsClientServer.NamePartsfunction is updated:FullNamecan be passed as either "Surname,Name,MiddleName" (by default) or "Name,MiddleName,Surname". The order is set in theNameFormatparameter.
A new procedure,
OnDefineSurnameAndInitials, is implemented in thePersonsClientServerLocalizationmodule. The procedure overrides theIndividualsClientServer.InitialsAndLastNamefunction to address the aspects of individuals' names in local languages.The
IndividualsClientServer.InitialsAndLastNamefunction is updated:FullNamecan be passed as either "Surname,Name,MiddleName" (by default) or "Name,MiddleName,Surname". The order is set in theFullNameFormatparameter.- The return value format can be either "Surname N. M." (by default) or "N. M. Surname". The order is defined in the
IsInitialsComeFirstparameter.
To typify the
Resultparameter of procedures that handle the long-running operation progress and completion, we recommend that you use the following functions:TimeConsumingOperationsClient.NewResultLongOperationis intended for values passed to the completion procedure specified in theCallbackOnCompletionparameter of theTimeConsumingOperationsClient.WaitCompletionprocedure.LongRunningOperationNewStateis intended for values passed to the progress notification procedure specified in theExecutionProgressNotificationparameter of theTimeConsumingOperationsClient.IdleParametersprocedure. For example:
// Parameters: // Result - See TimeConsumingOperationsClient.NewResultLongOperation // AdditionalParameters - Undefined // &AtClient Procedure ApplyRulesCompletion(Result, AdditionalParameters) ExportTo seamlessly aggregate multiple queries, we recommend that you use the return value of the
Common.UnionAllTextfunction (similarly toCommon.QueryBatchSeparator).The performance of the
CommonClientServer.ValueListsAreEqualfunction is improved.A new parameter,
ShouldCompareValuesCount, is added to theCommonClientServer.ValueListsAreEqualfunction, which allows for comparing lists of unequal lengths.The
IsStringContainsOnlyNationalAlphabetCharsfunction is implemented in theStringFunctionsClientServercommon module. It is intended for finding invalid characters (for example, in names).The
StringFunctionsClientServerLocalizationcommon module now contains the following procedures:OnDefineNationalAlphabetChars, which is intended to override theIsStringContainsOnlyNationalAlphabetCharsfunction of theStringFunctionsClientServercommon module to adjust it to local languages.OnDefineWordChars, which is intended to override theIsWordSeparatorfunction of theStringFunctionsClientServercommon 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
RemoteODataAccessrole 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.GenerateAmountInWordsis augmented by theIsFractionalPartInWordsparameter, which allows for expressing the decimal fraction in words.
Calendar schedules
- A new procedure,
WhenReceivingClassifierData, is implemented in theCalendarSchedulesLocalizationmodule. The procedure overrides theCalendarSchedules.ClassifierDatafunction when getting a file with country-specific calendar classifier data.
Contact information
- The function
ContactsManager.ContactInformationPresentationis augmented by theTransliterateparameter, 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
UserMonitoringcommon module now includes theRegistrationSettingsForDataAccessEventsandShouldRegisterDataAccessfunctions and theSetRegistrationSettingsForDataAccessEventsandSetDataAccessRegistrationprocedures.
National language support
- New entities were implemented to facilitate the development of queries intended for auto-filling items in additional languages. The
NationalLanguageSupportServercommon module's API is augmented by the functionsCurrentLanguageSuffix,LanguageSuffix,IsAdditionalLangUsed, andAttributesNamesConsideringLangCode. For details, see the comments to these functions and a use case in theChoiceDataGetProcessingprocedure in the_DemoProductscatalog's manager module in the demo SSL. - To test the machine translation service, use the
TextTranslationTool.TextTranslationAvailablefunction.
User reminders
- Reminder commands are switched to the general mechanism of attachable commands, with the
Organizercommand type. This applies only to configurations with the Attachable commands subsystem integrated. - The
UserRemindersClient.RemindInSpecifiedTimeprocedure is augmented by theIdparameter, 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
WriteErrorToEventLogprocedure is implemented in theInfobaseUpdatemodule 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.DoUpdatePredefinedItemsprocedure is implemented. In just a single call, the procedure adds new and updates existing items according to their current description in theOnInitialItemsFillingprocedure 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.UpdateContactInformationKindsin the demo SSL.
Configuration update
- When using the function
ConfigurationUpdate.InstallAndDeletePatches, you can now pass theUsedInDistributedInfoBaseparameter to reduce the installation time for extensions that are not intended for distributed infobases. To pass parameters to the functionConfigurationUpdate.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.OnDefineCommandsAttachedToObjectin the demo SSL.
Duplicate cleaner
- The function
DuplicateObjectsDetection.FindSimilarStringsnow supports the safe mode, which is useful for calls from external data processors or extensions. For that purpose, theDuplicateObjectsDetection.ParametersOfSearchForSimilarStringsfunction was reworked.
Network download
- The function
GetFilesFromInternet.ConnectionDiagnosticsruns 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 parameterIsPackageDeliveryCheckEnabledwas 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
IsPackageDeliveryCheckOnErrorEnabledproperty in the parameters of the following functions:GetFilesFromInternet.DownloadFileAtServer,GetFilesFromInternet.DownloadFileToTempStorage,Common.CreateWSProxy, andCommon.GetInterfaceVersions.
- Alternatively, you can use the
- The
GetFilesFromInternet.FileImportTimeoutfunction 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
CommonAuthorizationSettingsNewDetailsandNewDescriptionOfLoginSettingsnow support the 1C:Enterprise v.8.3.26 features available in theLogonSettingscommon form. For earlier versions, the values assigned to these properties are ignored (however, the values are stored in theUserAuthorizationSettingsconstant). - The following procedures and functions are implemented for centralized management of the logging settings of the Access.Access event:
UsersOverridable.OnDefineRegistrationSettingsForDataAccessEventsUsers.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 inUsersOverridable.OnDefineRegistrationSettingsForDataAccessEventsand callUsers.UpdateRegistrationSettingsForDataAccessEvents. If an error occurs when changing settings,Users.UpdateRegistrationSettingsForDataAccessEventsdeletes 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
UsersandExternalUserscatalogs when passing the properties of theAdditionalPropertiesobject are improved:- If the passed structure
AdditionalPropertiescontains theIBUserDetailsproperty, its value is now considered in theDataExchange.Loadmode. - Also, when the property
AdditionalProperties.IBUserDetails.Actionis set toWrite, then you can use the propertyAdditionalProperties.IBUserDetails.UpdateInfobaseUserOnlyto restrict creating a new infobase user when it's not found.
- If the passed structure
- Instead of directly accessing the predefined items
Catalogs.UserGroups.AllUsersandCatalogs.ExternalUsersGroups.AllExternalUsers, we recommend calling the functionsUsers.AllUsersGroupandExternalUsers.AllExternalUsersGrouprespectively.
File management
- The function
FilesOperations.BinaryFilesDatais implemented to allow obtaining the binary data of multiple files in a single call. - The procedure
FilesOperaions.ConvertFilesToAttachedFiles(marked as obsolete) is replaced withMoveFilesBetweenStorageCatalogs. 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_DemoProductsfrom the_DemoProductsAttachedFilescatalog to theFilescatalog. See the call example inDataProcessor._DemoTransferAttachments.
Email management
- The API of the
EmailOperationscommon module functionsSendMail,SendEmails, andDownloadEmailMessagesis 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.ConnectToEmailAccountis implemented. - The procedure
EmailOperationsOverridable.OnDefineSettingsis augmented with theShouldUsePOP3Protocolproperty, 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
SendOptionsparameter of theEmailOperationsClientOverridable.BeforeOpenEmailSendingFormprocedure: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 theMessageKindparameter toArbitrary. For the implementation example, seeDocumentFormof the_DemoDebitingFromAccountdocument in the demo SSL.
- To create an arbitrary message template, in the
Digital signature
- The
DigitalSignatureOverridable.OnDefineSettingsprocedure is implemented, which allows for overriding subsystem settings. With it, you can specify whether the app should display the attributeDefinedType.Individualin the catalogDigitalSignatureAndEncryptionKeysCertificatesand 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 theBriefCheckResultproperty that contains the verification result based on the data stored in the infobase. The property is filled in by the procedureDigitalSignatureClientServer.FillSignatureStatus. - The
DigitalSignatureClientOverridable.AfterAddToDigitalSignatureCertificatesCatalogprocedure is introduced to help users update certificate settings and replace certificates when they add new certificates to theDigitalSignatureAndEncryptionKeysCertificatescatalog. - 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.CheckCertificateandDigitalSignature.CheckCertificateprocedures are augmented with theCheckParametersparameter and the constructorDigitalSignatureClient.CertificateCheckParameters. You can use the propertyPerformCAVerificationto specify whether the certificate should be checked against the list of accredited certificate authorities. The propertyIgnoreCertificateRevocationStatusallows you to specify whether to check the certificate against the revocation list. - Similarly, you can use the new properties
PerformCAVerificationandIgnoreCertificateRevocationStatusin theAdditionalParametersparameter of theDigitalSignatureClient.CheckCatalogCertificateprocedure. - Additionally, using the property
ShouldCheckCertificatein the constructorDigitalSignatureClient.SignatureVerificationParameterswhen calling the procedureDigitalSignatureClient.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
CertificateCheckParametersis implemented in the parameterDigitalSignatureClientServer.SignatureVerificationResultof theDigitalSignature.VerifySignatureprocedure.
- To enable this feature, the
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
Publicarea. - 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
ExtensionPropertiesinformation 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 ofAdministration) to the new configuration so that the elements of the Administrator reports panel would be grouped appropriately.
Notes
- Add the
AttachableCommandssubsystem (if integrated) to all forms that have note-related buttons. - We recommend that you add the
UseNotesCommandconstant to the DIB and SWS exchange plans.
User monitoring
- Exclude the
RegistrationSettingsForDataAccessEventsandShouldRegisterChangesInAccessRightsconstants from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.
Application settings
- Transfer the changes made to the
UsersAndRightsSettingsform of theSSLAdministrationPaneldata processor (if used).
User reminders
- Add the
AttachableCommandssubsystem (if integrated) to all forms that have reminder-related buttons. - We recommend adding the
UseRemindersCommandconstant to the DIB and SWS exchange plans.
Users
- Add the information registers
UserGroupsHierarchyandUserGroupCompositionsto 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.PasswordHashStringshould be supplemented with a call to the 1C:Enterprise methodsEvaluateStoredUserPasswordValueorCheckUserPasswordComplianceWithStoredValue, 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, theUsers.PasswordHashStringwill be marked as deprecated.
File management
- Add the catalog
BinaryDataStorageand information registersFileRepositoryandDeleteFilesBinaryDataonly to the subordinate node initial image.
Access management
- Add the information register
AccessValuesGroupsto 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
AttachableCommandssubsystem (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 theOnInitialItemsFillingprocedure 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.
- To prevent a predefined item from being overwritten, add its object to the common attribute
Exception handling is improved for long-running operations that are triggered by the functions
ExecuteFunction,ExecuteProcedure,ExecuteFunctionInMultipleThreads,ExecuteProcedureinMultipleThreadsandExecuteInBackgroundof theTimeConsumingOperationscommon module. We recommend that you update the code for running and processing long-running operations accordingly:- Instead of obsolete properties
BriefErrorDescriptionandDetailErrorDescription(of the String type), use theErrorInfoproperty (of theErrorInfotype) in long-running operations results. The propertyErrorInfois returned by the functionTimeConsumingOperations.JobCompletedand in the return value to be passed to the notification procedure specified in theCallbackOnCompletionparameter of theTimeConsumingOperationsClient.WaitCompletionprocedure. - To display exceptions on the client, we recommend calling the
StandardSubsystemsClient.OutputErrorInfofunction instead of showing warnings or calling the 1C:Enterprise methodShowErrorInfo. This function is intended for intercepting exceptions by automated testing software (given that theShowErrorInfomethod doesn't trigger theErrorDisplayProcessingevent 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
RefinementErrorsproperty (instead of adding it to the client code) in the parameters of the followingTimeConsumingOperationscommon 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
Resultparameter of procedures that handle the long-running operation progress and completion, we recommend that you use the following functions:TimeConsumingOperationsClient.NewResultLongOperationis intended for values passed to the completion procedure specified in theCallbackOnCompletionparameter of theTimeConsumingOperationsClient.WaitCompletionprocedure.LongRunningOperationNewStateis intended for values passed to the progress notification procedure specified in theExecutionProgressNotificationparameter of theTimeConsumingOperationsClient.IdleParametersprocedure. 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:
- Output to the UI the result of the method
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.ConfigureVisibilityAndTitleForURLSendErrorReportfrom theOnOpenform module handler. - In the
OnCloseform module handler, call the procedureStandardSubsystemsClient.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, andDataProcessor.ToDoList.Form.Form.
- Instead of obsolete properties
We recommend replacing calls to the procedure
EventLogServerCall.WriteEventsToEventLogwith the calls toEventLogClient.WriteEventsToEventLog.The function
IndividualsClientServer.FullNameWrittenCorrectly(marked as obsolete) is replaced withStringFunctionsClientServer.IsStringContainsOnlyNationalAlphabetChars.
Additional reports and data processors
- The process for managing settings stored in the
SettingsStorageattribute of theAdditionalReportsAndDataProcessorscatalog has been updated. To save and retrieve these settings, use theShouldSaveSettingsandLoadSettingsprocedures from theAdditionalReportsAndDataProcessorscommon module.
Banks
- The function
BankManager.GetClassifierData(marked as obsolete) is replaced withBankManager.BICInformation.
Contact information
- We recommend using the
SMSAndEmailParametersconstructor function to generate parameters of the proceduresContactsManagerClient.CreateEmailMessageandContactsManagerClient.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
_DemoMySettingsform in the demo SSL. For opening the reminder settings form programmatically, see procedureUserRemindersClient.OpenSettings.
Infobase version update
For logging of data processing errors, we recommend calling the
InfobaseUpdate.WriteErrorToEventLogprocedure. 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 functionConfigurationUpdate.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.OnDefineRegistrationSettingsForDataAccessEventsUsers.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 inUsersOverridable.OnDefineRegistrationSettingsForDataAccessEventsand callUsers.UpdateRegistrationSettingsForDataAccessEvents. If an error occurs when changing settings,Users.UpdateRegistrationSettingsForDataAccessEventsdeletes 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.PropertyAdditionParametersparameter constructor procedure used in theAddPropertyprocedure, theTypeproperty is replaced withValueType. If you are adding additional attributes or information records programmatically, we recommend replacingTypewithValueTypeat 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.CheckCertificateandDigitalSignature.CheckCertificateprocedures are augmented with theCheckParametersparameter and the constructorDigitalSignatureClient.CertificateCheckParameters. You can use the propertyPerformCAVerificationto specify whether the certificate should be checked against the list of accredited certificate authorities. The propertyIgnoreCertificateRevocationStatusallows you to specify whether to check the certificate against the revocation list. - Similarly, you can use the new properties
PerformCAVerificationandIgnoreCertificateRevocationStatusin theAdditionalParametersparameter of theDigitalSignatureClient.CheckCatalogCertificateprocedure. - Additionally, using the property
ShouldCheckCertificatein the constructorDigitalSignatureClient.SignatureVerificationParameterswhen calling the procedureDigitalSignatureClient.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
CertificateCheckParametersis implemented in the parameterDigitalSignatureClientServer.SignatureVerificationResultof theDigitalSignature.VerifySignatureprocedure.
- To enable this feature, the
Migrating from version 3.1.10.248 and earlier
Calendar schedules
- A new procedure,
WhenReceivingClassifierData, is implemented in theCalendarSchedulesLocalizationmodule. The procedure overrides theCalendarSchedules.ClassifierDatafunction 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 theMessageTemplatesOverridablecommon 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
RemoteODataAccessrole 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.PropertyAdditionParametersparameter constructor procedure used in theAddPropertyprocedure, theTypeproperty is replaced withValueType. If you are adding additional attributes or information records programmatically, we recommend replacingTypewithValueTypeat 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
OnAddServerNotificationsprocedure of theCommonOverridablecommon 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
BeforePeriodicClientDataSendToServerprocedure of theCommonClientOverridablecommon module and its processing in theUponPeriodicClientDataReceiptAtServerorAfterPeriodicClientDataReceiptAtServerprocedures of theCommonOverridablecommon module. See the demo application for examples. - We recommend that you replace native idle handlers for a long-running operation check with the
WaitCompletionprocedure of theTimeConsumingOperationsClientcommon module. Also, replace theUserMessageplatform object in long-running operation procedures with theMessageToUserprocedure of theCommoncommon module. If conversations (Collaboration system) are enabled in the infobase, progress information and messages from a background job are sent to the client faster.
- To process server notifications on the client, register your server notification in the
You no longer need to separate user messages from background jobs of long-running operations from the internal progress text using the
UserMessagesfunction of theTimeConsumingOperationscommon module. TheReportProgressprocedure of theTimeConsumingOperationscommon 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
Publicarea. - 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
TimeConsumingOperationFormNamefunction of theAdditionalReportsAndDataProcessorsClientcommon module is marked as obsolete. Instead of this function, use a notification passed to theHandlerparameter of theExecuteCommandInBackgroundprocedure of the same common module.
To-do list
- Unused
BeforeLoadDataFromSettingsAtServerandOnCreateAtServerprocedures of theToDoListOverridablecommon 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 Dataexchange 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
StateContactIDfield in theContractscatalog properties. Use it to synchronize information on state contracts between applications. - New optional
TRUCodeproperty is added to the object with the Products catalog format for the Social Security Fund. The format is advanced with theTypesofPaymentSystemCashRegisterenumeration. - 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
BCCandPotentialAnnualIncomefields 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.
- 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
BeforeStartApplicationprocedure of theCommonOverridablecommon 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 withMetadata). - In the
SelectMetadataObjects, you can now select the following metadata objects:CommonAttributes,HTTPServices, andExternalDataSources. The By object kinds selection mode now also displays recognizable pictures for all metadata object kinds. - The
HTTPDateandRFC1123Datefunctions are added to theCommonClientServercommon 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
ExecuteProcedureinMultipleThreadsorExecuteFunctionInMultipleThreadsfunction from theTimeConsumingOperationscommon 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
AddressClassifierLoadingform of theAddressObjectsinformation register.
- To keep your users updated on the long-running operation progress, the API for the
IdleParametersfunction of theTimeConsumingOperationsClientcommon module is advanced:- New
Titleproperty to display an arbitrary title in the window of pending long-running operation. - New properties are added to the
UserNotificationstructure: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.
- New
Report options
- The API is expanded. Use it to group fields of report header settings. With the
OnDefineSettingsFormItemsPropertiesprocedure of the report module, you can specify the following group properties:Title,BackColor,ToolTip,ToolTipRepresentation,Height,Width,VerticalStretch, andHorizontalStretch. See theFormItemsGroupPropertiesprocedure of theReportsServercommon module and an example in theOnDefineSettingsFormItemsPropertiesprocedure of theUniversalReportreport module. - Use the
AtStartValueSelectionprocedure of theReportsClientOverridablecommon module to override the form for selecting values in report filter fields. For example, in theRolesRightsreport, use theSelectMetadataObjectscommon form to filter by roles and metadata objects. - To execute the logic on the client before generating a report, use the
BeforeFormationReportevent. See theDefaultReportSettingsfunction of theReportsClientServercommon module. For example, this can be required to display a warning before generating a report that is too large. - The list of the
AdditionalPropertiesproperties of theNewDCSettingsparameter and theSettingsobject of the Settings Composer (report object) of theBeforeImportSettingsToComposerreport module event is expanded. TheVariantKey,PredefinedOptionKey,OptionContext, andFormParametersSelectionproperties are passed there. Use the properties to better consider the context of the report generation. - New
AfterLoadSettingsInLinkerevent instead of the outdatedOnDefineSelectionParametersevent (see details in theDefaultReportSettingsfunction of theReportsClientServercommon 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
DisableStandardContextMenuflag to disable the context menu and report column settings. See the details in theDefaultReportSettingsfunction of theReportsClientServercommon 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
OnInitialItemsFillingandOnInitialItemFillingprocedures of theContactsManagerOverridablecommon module. You can also use it to set creation of folders (ContactInformationKindscatalog groups). See the demo application for examples.
Data integrity
- New optional parameter in the
OpenIssuesReportprocedure of theAccountingAuditClientcommon module:ExactMap. Use the parameter to set filter by theChecksKindparameter 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
NativeLanguagesSupportServercommon module, use theChangeRequestFieldUnderCurrentLanguageprocedure 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 changesDescriptiontoDescriptionLanguage1. For more information, see the procedure comment.
User reminders
- New function in the API of the
UserReminderscommon 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
InfobaseUpdatecommon module:WriteEventToRegistrationLog,RelaunchDeferredUpdate,RestartExclusiveUpdate,FileIssueWithData, andEnableDisableDeferredUpdate. For more information, see their details. - New method in the API of the
InfobaseUpdateOverridablecommon module:WhenPrioritizingMetadataTypes. For more information, see its details. - The
Parametersstructure that is passed to the input of the deferred update handlers is extended with theSubsystemVersionAtStartUpdatesproperty. 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 detailsdevelopment 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
OnInitialItemsFillingprocedure of the catalog manager module or theInfobaseUpdateOverridablecommon module.- To update such items, in the
OnSetUpInitialItemsFillingprocedure of the catalog manager module or theInfobaseUpdateOverridablecommon module, for theNameOfKeyPropssettings 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
OnInitialItemsFillingprocedures of the_DemoInfobaseUpdateSSLand_DemoPropertiescommon modules of the demo application.
- To update such items, in the
- To update certain attributes of built-in items described in the
OnInitialItemsFillingprocedure, use the new thirdPopulationSettingsparameter in theFillItemsWithInitialDataprocedure of theInfobaseUpdatecommon module API. TheAttributesproperty 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
InfobaseUpdatecommon module API, use theFillObjectInitialDataprocedure. It fills an object with the data described in theOnInitialItemsFillingprocedure 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
OnAddApplicationMigrationHandlersprocedure of the common module whose name is specified in theConfigurationSubsystemsOverridable.SubsystemsOnAddprocedure. - Only handlers with the
SeamlessandExclusivemodes are called. - Disabled by default. To enable this feature, in the
OnAddSubsystemprocedure of theInfobaseUpdate<ShortForm>common module, specify theFillDataNewSubsystemsWhenSwitchingFromAnotherProgramproperty.- You can also disable some handlers that are not required to be executed. To do this, set the
DoNotExecuteWhenSwitchingFromAnotherProgramproperty toTruefor these handlers.
- You can also disable some handlers that are not required to be executed. To do this, set the
- Before starting to execute migration handlers defined in the
- 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
Userscommon module API:SetLoginSettingsto save user authorization settings.NewDescriptionOfLoginSettingsto receive a structure with default authorization settings.AddUsedPasswordto add a password to the list of the active ones if theDenyReusingRecentPasswordsproperty is filled in the authorization settings.
Email management
- To display notes and ways to troubleshoot a mail server connection error, use the
ReportConnectionErrorprocedure in theEmailOperationsClientcommon module. - To prepare details of a mail server connection error, use the
ExplanationOnErrorandExtendedErrorPresentationfunctions in theEmailOperationscommon 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
OnInitialItemsFillingandOnInitialItemFillingprocedures of thePropertyManagerOverridablecommon 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
MarkedObjectsDeletionOverridablecommon module, use theBeforeDeletingAGroupOfObjectsandAfterDeletingAGroupOfObjectsprocedures. 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
SignatureTypeparameter is added to theSignprocedure of theDigitalSignatureClientmodule. 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
RefineSignatureprocedure of theDigitalSignatureClientcommon module. TheRefineSignatureandImproveObjectSignatureprocedures are added to theDigitalSignaturemodule. To determine whether signatures can be improved depending on the used 1C:Enterprise platform version, use theAvailableAdvancedSignaturefunction. - To filter certain signatures, you can use the optional
SequenceNumberparameter in theSetSignaturesfunction of theDigitalSignaturemodule. - To update improved signature data, you can use the optional
UpdateByOrderNumberparameter in theUpdateSignatureprocedure of theDigitalSignaturemodule. - To add and update digital signature data, use the
NewSignaturePropertiesconstructor function of theDigitalSignatureClientServermodule as an initial value of theSignaturePropertiesparameter for theAddSignatureandUpdateSignatureprocedures of theDigitalSignaturecommon module.
- To sign a document with a certain signature type, the new optional
DSS service digital signature
- Exclude the
ServiceAccountDSSconstant 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
Publicarea. - 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
DataForChangingMultilingualAttributesconstant in distributed infobase exchange plans and their event subscriptions to record changes.
Companies
- In the
CompaniesOverridablecommon module, theOnDefineForeignCompanyRegistrationDataprocedure is renamed toOnDefineForeignCompanyOfficeRegistrationData.
- The Print subsystem requires the Formula constructor subsystem. Add it to the application.
- Include the new
PrintFormTemplatescatalog in distributed infobase exchange plans and their event subscriptions to record changes.
Users
- Include the new
UseExternalUserGroups,UserAuthorizationSettingsconstants in distributed infobase exchange plans and their subscriptions to events for change registration. - Exclude the
DeleteLoginSettingsUsersconstant 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,CertificateIssuanceApplicationsinformation registers. NewTimestampsServersAddresses,AddTimestampsAutomatically,DefaultCryptographySignatureType,ImproveSignaturesAutomatically,ImproveSignaturesStartingFromDateconstants. Include in handlers for registering changes in distributed infobase exchange plans. - In the built-in profile description in the program code, replace the
AddEditDigitalSignaturesAndEncryptionrole with the newAddingChangeElectronicSignatures,EncryptionAndDecryptionData,DataDecryption,AddingChangeCertificatesKeysElectronicSignatureAndEncryption,AddingChangeProgramsElectronicSignatureAndEncryptionroles 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
Informationcommon picture is deprecated and renamed toDeleteInformation. Use theInformationstandard 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
_DemoReportAppearanceBeigecommon template and theBeforeLoadVariantAtServerprocedure of theReportsOverridablecommon 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 Dataexchange 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
StateContactIDfield in theContractscatalog properties. Use it to synchronize information on state contracts between applications. - New optional
TRUCodeproperty is added to the object with the Products catalog format for the Social Security Fund. The format is advanced with theTypesofPaymentSystemCashRegisterenumeration. - 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
BCCandPotentialAnnualIncomefields 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 Dataexchange format is updated up to version 1.10.6. It is supplemented with theDeductedPersonalIncomeTaxdocument 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
OnAddSubsystemprocedure of theInfobaseUpdate<ShortForm>common module, specify theFillDataNewSubsystemsWhenSwitchingFromAnotherProgramproperty. - You can also disable some handlers that are not required to be executed. To do this, set the
DoNotExecuteWhenSwitchingFromAnotherProgramproperty toTruefor these handlers.
From version 3.1.6.159 and earlier
Companies
- In the
CompaniesOverridablecommon module, theOnDefineForeignCompanyRegistrationDataprocedure is renamed toOnDefineForeignCompanyOfficeRegistrationData.
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 theCommonSettingsform of theSSLAdministrationPaneldata 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 modeproperty is set toNone. - 8.3.15 if the
Compatibility modeproperty is set toVersion 8.3.14orNone. - 8.3.16 if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15, orNone. - 8.3.17 if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15,Version 8.3.16, orNone. - 8.3.18 and later if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15,Version 8.3.16, orVersion 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
EndUserSessionscommand-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
StringToDatefunction in the API of theCommonClientServercommon module. - Similarly, to determine whether a string literal is a number, use a new
IsNumberfunction in the API of theCommonClientServercommon 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
StringFunctionsandStringFunctionsClientcommon modules, use thePeriodPresentationInTextfunction.
- To exchange messages over the “Enterprise service bus”, implemented the
IntegrationServicesProcessingscheduled 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
CalculationCellsIndicatorsfunction of theCommonClientServercommon module:CalculationParameters. The parameter is of the return value type of theCellsIndicatorsCalculationParametersfunction of theCommonClientServercommon module. In the new parameter, with theCalculateAtServerproperty, 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
DefineFormSettingsprocedure of the report module, change theSettings.PeriodOptionproperty value toFiscal:Settings.PeriodOption = Enums.PeriodOption.Fiscal;
- For better experience using fiscal periods, you can override the period presentation:
In the
DefineFormSettingsprocedure of the object module, change thePeriodPresentationOptionsettings property value toHyperlink: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
IBConnectionsClientcommon module:SetUsersSessionsTerminationModeandSetTerminateAllSessionsExceptCurrentFlag. 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
GetDataImportFromFileParametersprocedure of the catalog manager module, you can define a value of the newObjectPresentationproperty of theParametersparameter. 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_DemoProductscatalog manager module. - To improve documentation comments, in the API of the
ImportDataFromFilecommon module, use the following constructor functions:DataImportSettings,DetailsOfDataToImportForCatalogs,NewConflictsList, andMappingTable. For more information, see the demo application, the_DemoProductscatalog manager module.
Object attribute lock
Data exchange
To write an exchange node using a long-running operation, add the
DataExchangeClient.BeforeWriteprocedure call to theBeforeWriteform event handler. Also make sure that subsequent procedures, such asOnWrite, do not have the node data changed. For example, see the_DemoDataSynchronizationUsingUniversalFormatexchange plan in the demo application.When developing rules for universal data exchange, we recommend that you use the
XDTODataExchange.KeyPropertiesClassfunction 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
OnGenerateListOfSubsystemsToDevelopprocedure of theInfobaseUpdateOverridablecommon module is deprecated. Use theOnGenerateListOfSubsystemsToDevelopprocedure of the same module instead.
- To improve documentation comments, in the API of the
PrintManagementClientcommon module, use thePrintParametersDetailsconstructor function. For more information, see the demo application, theDefaultFormform module of the_DemoCompaniescatalog.
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
ExternalResourcesOperationsLockOverridablecommon module:OnProhibitWorkWithExternalResourcesandExternalResourcesOperationsLockOverridable. 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
AccessGroupProfilescatalog. Just list them in theOnFillSuppliedAccessGroupProfilesprocedure of theAccessManagementOverridablecommon module. You can also use it to define folders (AccessGroupProfilescatalog 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
Administratorpredefined item of theAccessGroupProfilescatalog and theAdministratorspredefined item of theAccessGroupscatalog, we recommend that you call theProfileAdministratorandAdministratorsAccessGroupfunctions of theAccessManagementcommon module, respectively.
- To develop the restriction logic in the
OnFillAccessRestrictionprocedures 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 theAccessRightandRoleAvailablefunctions. 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
SourceDocumentsOriginalsRecordingOverridablecommon 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
SourceDocumentsOriginalsRecordingOverridablecommon module, use a new procedure that overrides the list of “multi-employee” documents:OnDefineMultipleEmployeeDocuments. - In the API of the manager module of the
SourceDocumentsOriginalsStatesinformation register, use a new parameter for theWriteDocumentOriginalStateByPrintFormsprocedure:Employee.
- In the API of the
When you need to track the status of the record of the changed original state, in the API of the
SourceDocumentsOriginalsRecordingClientandSourceDocumentsOriginalsRecordingServerCallcommon modules and theSourceDocumentsOriginalsStatesinformation register manager module, use theWrittenrecord flag parameter of theWriteOriginalsStatesAfterPrintandWriteDocumentOriginalsStatesAfterPrintFormprocedures.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
MessagesTemplatescommon module, use theEmailLinkproperty in theGenerateMessageAndSendfunction return value. - To improve documentation comments, in the API of the
MessagesTemplatescommon module, use theEmailSendingParametersByTemplateconstructor function. For more information, see its comments.
Digital signature
- To speed up verification and creation of XMLDSig digital signatures using the
SignandVerifySignatureprocedures of theDigitalSignatureClientandDigitalSignaturecommon modules, use automatic detection of XMLDSig parameters from the passed XML envelope. For this, leave theXPathSignedInfoandXPathTagToSignproperties of the structure returned by theXMLDSigParametersfunction of theDigitalSignatureClientandDigitalSignaturecommon modules blank. - To create XMLDSig digital signatures easier in standard scenarios, added the
XMLEnvelopefunction to theDigitalSignatureClientandDigitalSignaturecommon 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:
BusinessProcessesAndTasksClientOverridableAdditionalReportsAndDataProcessorsOverridableObjectsFillingOverridableInfobaseUpdateOverridableReportsOverridableAttachableCommandsOverridableFullTextSearchServerOverridableEmailOperationsOverridableFilesOperationsOverridableGenerationOverridableHierarchyOverridableToDoListOverridablePrintManagementOverridableSourceDocumentsOriginalsRecordingOverridable
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
Publicarea. - 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
AddMetadataObjectsConnectionsprocedure of theReportsOverridablecommon module because it is no longer useful.
Business interactions
Data exchange
- The
UnresolvedIssuesCountandIssuesMonitorHyperlinkTitleStructurefunctions of theDataExchangeServercommon 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:
UsedAccessKindsandUsedAccessKindsByTables. Include only theUsedAccessKindsinformation 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 newOwnerWithRestrictedAccessValueSetsDocumentflexible type collection. If there are no documents, in the new flexible type collection, specify theCatalogObject.MetadataObjectIDstype. - Delete the created
WriteAccessValuesSets<End>event subscriptions, and move their types to theAccessValuesSetsOwnerObjectflexible type collection. - Delete the created
WriteDependentAccessValuesSets<End>event subscriptions, and move their types to theExternalValuesOwnerInAccessValueSetsObjectflexible type collection. - In all information registers (including library ones) whose name begins with
AccessKeysToRegister, rename theForExternalUsersdimension toAccessOptionand set all its properties (including the type) as in theAccessOptiondimension of theAccessKeysForRegistersinformation register. When you re-update libraries with SSL version earlier than 3.1.5 that provide theAccessKeysToRegister*information registers, retry the operation or do not transfer theAccessOptiondimension properties. - In all roles, update the
ForObjectandForRegisterstandard templates and access restrictions with these templates (improvements implemented). Also update the standard templatesByValues,ByValuesAdvanced,ByValuesAndSetsAdvanced, andByValuesSets(added the word Right to the names of internal register rights resources for correct translation). To update the templates, we recommend that you use theSSLImplementationCheck.erfreport 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
ContactInformationKindparameter of theContactInformationPresentationfunction of theContactsManagercommon 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 extensionsproperty in the DIB exchange plans. For example, see the_DemoDistributedInfobaseExchangeexchange plan in the demo application. - Clear the
Attach configuration extensionsproperty for exchange plans in standalone mode in SaaS. For example, see the_DemoStandaloneModeexchange plan in the demo application.
Digital signature
- To speed up verification and creation of XMLDSig digital signatures using the
SignandVerifySignatureprocedures of theDigitalSignatureClientandDigitalSignaturecommon modules, we recommend that you switch to automatic detection of XMLDSig parameters from the passed XML envelope. For this, leave theXPathSignedInfoandXPathTagToSignproperties of the structure returned by theXMLDSigParametersfunction of theDigitalSignatureClientandDigitalSignaturecommon 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
OnAddApplicationMigrationHandlersprocedure. If shared data is processed, set the newSharedDataproperty toTrue.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
OnGenerateListOfSubsystemsToDevelopprocedure of theInfobaseUpdateOverridablecommon module is deprecated. Use theOnGenerateListOfSubsystemsToDevelopprocedure 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 modeproperty is set toNone. - 8.3.15 if the
Compatibility modeproperty is set toVersion 8.3.14orNone. - 8.3.16 if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15, orNone. - 8.3.17 and later, if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15, orVersion 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
Publicarea. - 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
BusinessProcessObjectflexible collection type. Objects must be the same as links in theBusinessProcessflexible type collection.
Access management
- In all roles, update standard templates
ForObject,ForRegisterand access restrictions for theForObjecttemplate. We recommend that you use theSSLImplementationCheck.erfreport 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
UpdatePeriodClosingDatesSectionsprocedure of thePeriodClosingDatescommon module is moved to theObsoleteProceduresAndFunctionsarea. You should delete the procedure calls as the update runs automatically.
Translator
- Include the
PrintFormsLanguagescatalog in exchange plans of the DIB and standalone workstation (SWP).
Email Management
- Include the
PasswordRecoveryAccountconstant in exchange plans of a DIB and a standalone workstation (SWP).
File management
Digital signature
- When using the
XMLDSigParametersfunction of common modulesDigitalSignatureClientandDigitalSignature, 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 modeproperty is set toNone. - 8.3.15 if the
Compatibility modeproperty is set toVersion 8.3.14orNone. - 8.3.16 if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15, orNone. - 8.3.17 and later, if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15, orVersion 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
Publicarea. - 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
CalendarNonWorkDaysPeriodsinformation register in the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).
Infobase version update
- Include the
UpdateHandlersinformation 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
OnGenerateDefferedHandlersQueuesprocedure of theInfobaseUpdateOverridablecommon 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
ProcessGetCollaborationSystemUsersChoiceFormevent 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
SetDocumentPrintAreaprocedure of thePrintManagementcommon module, theReferenceparameter 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
QRCodeDatafunction of thePrintManagementcommon module, use theQRCodeDataorBarcodeImagefunction of theBarcodeGenerationServerCallcommon module from the1C:Peripherals Librarylibrary version 2.1.4 and later. Improved performance on Linux OS. The previous function is marked as obsolete for backward compatibility.
File management
- The
ChangeFilesStorageCatalogprocedure of theStoredFilescommon module is marked as obsolete. Instead, use theConvertFilesToAttachedFilesfunction of the same common module.
Hierarchy
- If the
AttachableCommandssubsystem is embedded in the application, clear the types of theRelatedDocumentscommon command parameters. The subsystem itself defines the objects in whoseReportssubmenu theRelated documentscommand 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 versionsections 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 modeproperty is set toNone. - 8.3.15 if the
Compatibility modeproperty is set toVersion 8.3.14orNone. - 8.3.16 if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15, orNone. - 8.3.17 and later, if the
Compatibility modeproperty is set toVersion 8.3.14,Version 8.3.15, orVersion 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
Publicarea. - 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,UseAdditionalLanguage2andMainLanguageconstants in the exchange plans of the distributed infobase (DIB).
Object versioning
- Changed location and appearance of the
ChangeHistorycommon 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 theOnCreateAtServerprocedure 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
ScheduleOwnerattribute in theCalendarscatalog has been changed to theWorkScheduleOwnerflexible type collection. List in theWorkScheduleOwnerflexible collection type the types of those catalogs that were used as values of theScheduleOwnerattribute.
Calendar schedules
- Added the
OnFillObjectsToChangeDependentOnBusinessCalendarsmethod to theCalendarSchedulesOverridablecommon module. If some objects dependent on business calendars are processed in theOnUpdateDataDependentOnBusinessCalendarshandler, list the metadata names of these objects. - Include the
CalendarNonWorkDaysPeriodsinformation 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
ForObjectandForRegister. Get them from theEditAccessGroupMembersrole and copy to all roles. For more information, see documentation of theAccess managementsubsystem in theUpdate access restriction templates in rolessubsection.
Digital signature
- Remove the
LatestErrorsClassifierUpdateDateandCryptoErrorsClassifierconstants 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
SetGroupTitleRepresentationprocedure of theStandardSubsystemsServercommon 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
LatinStringfunction of theStringFunctionsClientServercommon module, use the same name functions of theStringFunctionsorStringFunctionsClientmodules. - Instead of the
FormattedStringfunction of theStringFunctionsClientServercommon module, use the same name functions of theStringFunctionsorStringFunctionsClientmodule. - Make appropriate replacements in the usage locations.
- Instead of the
- To simplify calling the
ReplaceReferencesfunction of theCommoncommon module for theReplacementParametersparameter (theStructuretype), you can use theRefsReplacementParametersfunction 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
DefaultLanguageCodefunction of theCommoncommon 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,AtInitialPerformerRoleFillingto fill assignee roles,OnInitialFillingTasksAddressingObjects,OnInitialFillingTaskAddressingObjectItemto fill task addressing objects, have been added to the API of theBusinessProcessesAndTasksOverridablecommon module. Move the filling item code from initial filling handlers to these procedures.
Object versioning
- Deleted unclaimed
UpdateObjectsVersioningSettingsprocedure of theObjectsVersioningcommon 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, andStartCommandExecutionof theAttachableCommandsClientcommon module instead of similarOnChange,StartChoice,Cleanup,URLProcessing,ExecuteCommandand 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); EndProcedureNow:
&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
ContactInformationKindscatalog, theEditInDialogOnlyattribute (Boolean) is marked as obsolete. Instead, theEditingOptionattribute (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_DemoExchangeWithStandardSubsystemsLibrary225exchange plan.
Data integrity
- In all the object form modules to which a subsystem applied, implement the
AfterWriteObjectevent handler for rechecking the object after writing the form. For this, add the procedure call to theAfterWriteAtServerevent handler:
AccountingAudit.AfterWriteAtServer(CurrentObject);
Item order setup
- The
FillOrderingAttributeValueprocedure of theItemsOrderSetupcommon module has been removed from the API. Instead, use theSetOrderingAttributeValueprocedure of the same module. Make appropriate replacements in the usage locations.
Application settings
- There are changes in administration panels (see forms of the
SSLAdministrationPaneldata 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
StartCommandExecutionprocedure instead ofExecuteCommandof theAttachableCommandsClientcommon 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); EndProcedureNow:
&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
SendEmailMessagefunction is marked as obsolete. Instead, use theSendEmailfunction when sending one email, andSendEmailsif theSendEmailMessagefunction was called in the loop. To simplify migration to new functions, you can use thePrepareEmailauxiliary function whose parameters duplicate the parameters of theSendEmailMessagefunction 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
DetermineAttachedFileFormprocedure of theStoredFilescommon module is marked as obsolete. Instead, use the procedure of the same name of theStoredFilesClientServercommon module. Revise usage locations for this procedure. - To simplify calling the
AddFilefunction of theStoredFilescommon module for theFileParametersparameter (typeStructure), you can use theFileAddingOptionsfunction 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
CalendarNonWorkDaysPeriodsinformation 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
ForObjectandForRegister. Get them from theEditAccessGroupMembersrole and copy to all roles. For more information, see documentation of theAccess managementsubsystem in theUpdate access restriction templates in rolessubsection.
From version 3.1.2.166 and earlier
Contact information
From version 3.1.2.196 and earlier
Infobase version update
- The third parameter
TabularSectionswith theStructuretype is added to the initial data filling handlersOnSetUpInitialItemsFillinglocated 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 versionsections 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.
- 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.
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.
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.
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
BusinessProcessesAndTasksServerCallcommon module:NotifyPerformersOnNewTasks;CheckTasks.
Currencies
- Deleted obsolete
ConvertFromCurrencyToCurrencyfunction of theCurrenciesExchangeRatesClientServercommon module.
Report options
- Deleted obsolete API of the
ReportsOptionscommon module:UsedSections;AddFullUpdateHandlers;GetRef.
Business interactions
- Deleted obsolete
OpenMailMessageFormSendprocedure of theInteractionsClientcommon 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
GetAccessEventUsefunction of thePersonalDataProtectioncommon module.
Contact information
- Deleted obsolete API of the
ContactsManagercommon module:ObjectContactInformationValues;ObjectContactInformationTable;FillObjectsContactInformation;FillObjectContactInformation;PreviousContactInformationXMLFormat;PreviousContactInformationXMLStructure;AddressInARCAFormat;AddressesInfo;AddressInfo;ContactInformationAddressState;ContactInformationAddressCity;ValidateAddress;ContactInformationParameters.
- As
1C:Enterpriseplatform updated to version 8.3.13 changed its behavior, in the form modules with integrated contact information, add theExportkeyword to the previously placedAttachable_UpdateContactInformationprocedures:Previously:
Procedure Attachable_UpdateContactInformation(Result)Now:
Procedure Attachable_UpdateContactInformation(Result) Export
Calendar schedules
- Deleted obsolete API of the
CalendarSchedulescommon module:GetDatesArraysByCalendar;GetDateByCalendar;GetDatesDiffByCalendar;RussianFederationProductionCalendar;GetWorkdaysDates.
- If there is
Cloud Technology Libraryin the application, delete the previously inserted code of theCalendar schedulessubsystem from theOnProcessDataAreaprocedure of theClassifiersOperationsSaaSOverridablecommon module.
User reminders
- Deleted the
UserRemindersClientServerOverridablecommon module with an obsolete API.
Data exchange SaaS
- Include the
MessageExchangeexchange plan from Cloud Technology Library in theMessagesQueueEndpointflexible collection type and exclude all other types.
Infobase version update
- Deleted obsolete
OnDisableUpdateHandlersprocedure of theInfobaseUpdateOverridablecommon 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
Userscommon module:ReadIBUser;WriteIBUser;SystemAdministratorRole.
Object prefixes
- Deleted obsolete API of the
ObjectPrefixationClientServercommon module:GetCustomPrefix;GetNumberToPrint.
Security profiles
- Deleted obsolete API of the
SafeModeManagercommon module:ExecuteConfigurationMethod;ExecuteObjectMethod;ExecuteInSafeMode;CalculateInSafeMode.
File management
- Deleted common modules with an obsolete API:
AttachedFiles;AttachedFilesClient;AttachedFilesClientServer;FileFunctions.
Object presentation declension
- The
OnChangePresentationprocedure of theObjectsPresentationsDeclensionClientcommon module is no longer supported. In the declension object form modules where it is called:- Replace its call with a call of the
DeclinePresentationprocedure of theObjectsPresentationsDeclensionClientcommon module. - Delete the
Attachable_DeclinePresentationForAllCasesprocedure.
- Replace its call with a call of the
Individuals
- Deleted API of the
IndividualsClientServercommon module:FullName;IndividualInitialsLastName.
Access management
- Update standard data access restriction templates for
ForObjectandForRegisterin all roles. Use standard templates from theEditAccessGroupMembersrole and copy them to all the roles. For bulk update, use theRestriction templatestab in theAll access restrictionsform (filter by the template name, select all the lines, and clickEdit). You can also use theSSLImplementationCheck.erfreport 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
IsOSXClientprocedures of theCommonandCommonClientcommon modules are obsolete. UseIsMacOSClientof 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
OnWriteAtServerprocedure of theObjectPresentationDeclensioncommon module is obsolete. UseOnWriteDeclensionObjectFormof the same common module instead. Revise call sites for this procedure. - The
DeclineFullNameUsingComponentprocedure of theObjectPresentationDeclensioncommon module is obsolete. UseDeclineFullNameof the same common module instead. Revise call sites for this procedure. - The
DeclinePresentationForAllCasesprocedure of theObjectsPresentationsDeclensionClientcommon module is obsolete. UseDeclinePresentationof the same common module instead. Revise call sites for this procedure. - The
ProcessDeclensionCommandprocedure of theObjectsPresentationsDeclensionClientcommon module is obsolete. UseShowDeclensionof the same common module instead. Revise call sites for this procedure.
Access management
- Simplified API of the
OnCreateAccessValueFormprocedure of theAccessManagementcommon 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,CreateNewAccessValueparameters are marked as obsolete and left for backward compatibility. Instead, use theAdditionalParametersstructure passed by the second parameter. Check all the usage locations. - The
AdditionalParametersparameter has theParametersOnCreateAccessValueFormfunction in theAccessManagementcommon module.
- Add predefined items of all the registers to the
MetadataObjectIDscatalog. 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 theSSLImplementationCheck.epfreport adds predefined items of all the registers to theMetadataObjectIDscatalog 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
ForObjectandForRegister. Get them from theEditAccessGroupMembersrole and copy to all roles. For bulk update, use theRestriction templatestab in theAll access restrictionsform (filter by the template name, select all the lines, and clickEdit). Or use theSSLImplementationCheck.erfreport 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
OnFillListsWithAccessRestrictionprocedure of theAccessManagementOverridablecommon module in theAfterWriteAtServerevent 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
ForObjectandForRegisterin all roles. Use standard templates from theEditAccessGroupMembersrole and copy them to all the roles. For bulk update, use theRestriction templatestab in theAll access restrictionsform (filter by the template name, select all the lines, and clickEdit). You can also use theSSLImplementationCheck.erfreport in the error correction mode. - Transfer the changes made to the code of the
UsersAndRightsSettingsform of theSSLAdministrationPaneldata processor if used.
From version 3.1.1.136 and earlier
Access management
- Fixed standard data access restriction templates for
ForObjectandForRegisterto run on platform version 8.3.15. Get them from theEditAccessGroupMembersrole and copy to all roles. For bulk update, use theRestriction templatestab in theAll access restrictionsform (filter by the template name, select all the lines, and clickEdit). Or use theSSLImplementationCheck.erfreport in the error correction mode.
From version 3.1.1.151 and earlier
Access management
- Transfer the changes made to the
UsersAndRightsSettingsform of theSSLAdministrationPaneldata 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:
- If you publish application releases on
1C:Application updateportal (https://releases.1c.ru), then on publishing new version 1.2.1, specify in theMinimum version to startup handlersproperty 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. - If you run update via Designer and want to avoid unexpected situations, consider displaying a warning in the
OnDetermineUpdateAvailabilityprocedure of theInfobaseUpdateClientOverridablecommon 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 versionsections 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