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
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
- 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.
- 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
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. 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 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
- 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
- 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
- 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
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.
- 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.
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.
- 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.
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
- 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
- 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.

