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.
Google Drive and Internet (over HTTP).``GetFilesFromInternetLocalizationFilesOperationsLocalizationOpenFile, SaveFile, and SaveFiles procedures of the FileSystemClient common module, you can also specify a URL to an object attribute that stores binary data (previously, you could only specify the temporary storage address).CommonClientServer.ExceptionClarification function. For more information, see Catching exceptions. Example:Try
DownloadFile(...);
Except
ErrorInfo = ErrorInfo();
Refinement = CommonClientServer.ExceptionClarification(ErrorInfo,
NStr("en = 'Cannot download the file:'"));
Refinement.Text = Refinement.Text + Chars.LF + NStr("en = 'Possible reasons:
| • No Internet connection.
| • Problems on the web node.
| • Firewall or another middleware (antivirus software, etc.) locks attempts to connect to the Internet.
| • Internet connection is established through a proxy server, but its parameters are not specified in the application.'");
ForAdministrator = InternetConnectionDiagnostics(); // Detailed error presentation for the event log.
Raise(Refinement.Text, Refinement.Category,, ForAdministrator, ErrorInfo);
EndTry;
CommonClientServer.IsExceptionWithErrorCode. This function recursively finds one or more relevant error codes in all nested exceptions (in the ErrorInfo.Cause property), which is convenient when the exception is rethrown up the stack. For more information, see Catching exceptions. Example:Try
RunUpdate();
Except
If CommonClientServer.IsExceptionWithErrorCode(ErrorInfo(),
"StandardSubsystems.Core.ConfigurationModifiedDynamically
|StandardSubsystems.Core.ExtensionsModifiedDynamically") Then
RestartBackgroundJob();
Return;
EndIf;
Raise;
EndTry;
To open the metadata object selection form, use the procedure StandardSubsystemsClient.ChooseMetadataObjects. Selecting metadata objects is useful in various scenarios, such as selecting sections of the command interface, selecting sections and objects for searches, and in reports. You can select one or more objects, filter based on selected subsystems and objects, toggle object grouping (by subsystem or type of metadata objects), etc. For a complete list of parameters, see the constructor function StandardSubsystemsClientServer.MetadataObjectsSelectionParameters.
To open a form for viewing and editing spreadsheet documents, use the procedure StandardSubsystemsClient.ShowSpreadsheetEditor and the constructor function StandardSubsystemsClient.SpreadsheetEditorParameters. To view differences in spreadsheet documents, use the procedure StandardSubsystemsClient.ShowSpreadsheetComparison and the constructor function StandardSubsystemsClient.SpreadsheetComparisonParameters.
The CommonClientOverridable common module is augmented with handler procedures for standard events of the managed application module: OnGlobalSearch, OnGlobalSearchResultChoice, OnGlobalSearchResultActionChoice, and NavigationByURLProcessing.
In some cases, in a SaaS environment, you may need to centrally retrieve and update secure storage data across all data areas from a session with no set separators. To avoid entering each area individually, optional parameter DataArea has been added to the functions ReadOwnersDataFromSecureStorage and ReadDataFromSecureStorage of the Common common module.
A new function, InterfacesVersions, was implemented in the Common module, which retrieves all available API versions from the InterfaceVersions web service in a single call.
The FirstSSLDeployment.epf external data processor now marks any subsystems already present in the configuration to facilitate the implementation of new subsystems. You can also load a previously saved list of subsystems from a file.
ReportsSnapshots common module. For the implementation example, see the _DemoExchangeMobileClient common module.IsNonContextual property in the ReportsOptionsOverridable.BeforeAddReportCommands procedure when defining report commands. When set to True, additional report options are available for selection. You can also add this report to your favorites and get a link to a report option. By default, the value is False.AttachAddInFromTemplate and the function AttachAddInFromTemplateAsync in the CommonClient common module now return the symbolic name and location from which the add-in was attached: either the template name or a URL to the newer version of the add-in from the catalog. Using the symbolic name and location, you can check the add-in attachment using the platform method CheckAddInAttachment. Set this property only when additional information about the add-in installation is redundant (for example, if the user has already been informed).AccountingAudit common module is augmented with the ObjectsWithIssues function and the ParametersOfObjectsWithIssuesSelection constructor function. These functions can be used for batch retrieval and processing of records. See an example of use in the PostTaxInvoicesForTroublesomeCounterparties procedure in the _DemoTaxInvoiceReceived document’s manager module.AdditionalLanguage3 and UseAdditionalLanguage3, along with a functional option UseAdditionalLanguage3.DescriptionLanguage3, CommentLanguage3, etc.ExchangeMessageTransportCOM: direct connection to the peer infobase via a COM connection (with the COM ID). See the TransportID parameter in the data processor’s manager module.ExchangeMessageTransportEMAIL: exchange via email (EMAIL ID).ExchangeMessageTransportFILE: exchange via a local or network directory (FILE ID).ExchangeMessageTransportFTP: exchange via an FTP server (FTP ID).ExchangeMessageTransportGoogleDrive: exchange via Google Drive cloud storage (GoogleDrive ID).ExchangeMessageTransportHTTP: exchange over the Internet via an HTTP service (HTTP ID).ExchangeMessageTransportSM: for exchange between areas in SaaS applications (SM ID).ExchangeMessageTransportSM: exchange over the Internet using a web service (WS ID).ExchangeMessageTransportESB1C: exchange via 1C:Bus (ESB1C ID).DataExchangeServer common module’s API is augmented with the PerformExchangeAction procedure. For more information, see the procedure description.DataExchangeClient common module’s API is augmented with the procedures OpenInfobasePrefixChangeForm and OpenFormForDeletingSyncAlerts. For more information, see the procedure descriptions.DataExchangeClient:
OpenDataExchangeSetupWizardDataExchangeServer:
AllConfigurationExchangeMessagesTransportsFTPDirectoryExistsExecuteExchangeActionForInfobaseNodeDataExchangeCached:
IsStandaloneWorkplaceFindExchangePlanNodeByCodeTo check for permissions to view the application release notes, use the ApplicationReleaseNotesViewAvailable function of the InfobaseUpdate common module.
To optimize data retrieval handler queries, a dot notation access check has been implemented in the parameters of multithreaded handlers OrderingFieldsOnUserOperations and OrderingFieldsOnProcessData. Accessing such fields in debug mode throws an exception, while in non-debug mode a warning is logged.
Exceptions are now thrown on incorrect calls to single-threaded data retrieval functions from multithreaded handlers: SelectStandaloneInformationRegisterDimensionsToProcess, SelectRegisterRecordersToProcess, and SelectRefsToProcess functions of the InfobaseUpdate common module.
The MarkForProcessing procedure of the InfobaseUpdate common module can now accept QueryResult type data to optimize memory usage.
In the InfobaseUpdate.DataProcessingCompleted function, the second parameter, FullObjectNameMetadata, is now optional; its value is calculated automatically. For more information, see the function description.
In the AfterWriteData procedure of the InfobaseUpdateOverridable, you can specify additional logic for writing objects in update handlers. For more information, see the procedure description.
PrintManagement.CreatePrintCommandsCollection, two new properties have been added:
DefaultPrintForm (Boolean)PrintFormDescription (String)Organization and Recipient must be populated from the document data for each document type in the OnDefineKeyAttributesOfDefaultPrintForms procedure of the PrintManagementOverridable common module. See the example in the demo configuration.DescriptionOfGeneratedDefaultPrintForm and DescriptionsOfGeneratedDefaultPrintForms in the PrintManagement common module. These functions can be used, for example, when generating reconciliation statements.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.UpdateDistributionTerms template to display the update distribution terms text in a language that matches the user’s current settings. To do this, simply add a template with the required language suffix next to it, for example, UpdateDistributionTerms_en.FilesOperationsClient.OpenFileListForm procedure and the FileListFormOpeningParameters constructor function to pass additional parameters for opening the form and to specify notifications for closing the form.PropertyManager common module is updated:
SetPropertiesForObject procedure is provided. For more information, see the procedure description.AddPropertyValue function, the redundant Hierarchy parameter has been removed; it is now automatically calculated based on the other parameters.AddProperty procedure has been replaced with the same-name function that returns the added property. It now allows you to add labels (previously, you could only add additional attributes and information records).AccessManagement.AccessRightsToData (for details, see the comment to this function). Previously, the AccessManagement.ReadingAllowed and AccessManagement.EditionAllowed functions could only be used to obtain access rights for one user and one data element, requiring loop calls when rights were needed for multiple users. Multiple calls to these functions in a loop resulted in suboptimal repeated database queries.The procedure SourceDocumentsOriginalsRecordingOverridable.OnDefineSettings allows you to customize the appearance:
For more information, see the procedure description.
New procedures in the SourceDocumentsOriginalsRecordingOverridable common module API:
OnChangeAggregatedOriginalState procedure allows you to define actions when writing the aggregated state of the original.BeforeWriteOriginalStatesAfterPrint procedure may be required to override the list of print objects and print forms before recording states in the information register after printing.For more information, see the procedure descriptions.
New functions in the SourceDocumentsOriginalsRecording common module API:
SetNewOriginalState function writes new or modified states of source document originals.OriginalStateInfoByRef function retrieves data on the current aggregated state of the source document.StateHyperlinkPresentation function returns the hyperlink presentation of a source document state and may be required if a custom hyperlink is used in forms.For more information, see the procedure descriptions.
In the API procedures necessary to ensure correct original tracking without the Attachable commands subsystem, some parameters are now optional: the second parameter List in SourceDocumentsOriginalsRecording.UpdateOriginalStateCommands and the third parameter List in SourceDocumentsOriginalsRecordingClient.SetOriginalState. These procedures can now be called in document form modules when the Attachable commands subsystem in not integrated and the interface is displayed as command bar buttons. For more information, see the procedure descriptions.
The procedure DigitalSignatureClient.OpenExtendedErrorPresentationForm and the constructor function ExtendedErrorPresentationFormParameters can be used to open a diagnostic form that provides reasons and solutions for known digital signature problems. These recommendations are automatically obtained from the classifier over the Internet. The form also allows submitting information to technical support. We recommend that you use this function instead of displaying an error message to the user after a digital signature operation has failed.
Added new certificate properties that are returned by the CertificateProperties function of the DigitalSignature and DigitalSignatureClient common modules. You can now retrieve the validity period of the digital signature key, the revocation list addresses, the certificate algorithm, and the CA key ID. These properties are available with 1C:Enterprise v.8.3.27 or later.
When using 1C:Enterprise v.8.3.27 or later, you can check a signature certificate with a trusted timestamp for a specific date in more detail: the revocation status and the certificate chain can also be checked for this date. To do this, set the IsTimestampDateSpecified property to True in the CheckParameters parameter of the DigitalSignatureClient.CheckCertificate procedure and the DigitalSignature.CheckCertificate function and pass the date in the OnDate parameter.
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:
PeriodClosingDatesOverridableDataExchangeOverridableDataExchangeSaaSOverridableCommonClientOverridableCommonOverridableCompaniesOverridableSoftwareLicenseCheckOverridableFilesOperationsOverridableDigitalSignatureOverridableModified localizable common modules:
InteractionsLocalizationAddInsClientLocalizationCurrencyRateOperationsLocalizationCurrencyRateOperationsClientLocalizationEmailOperationsLocalizationStandardSubsystemsClientServerLocalizationStandardSubsystemsServerLocalizationContactsManagerClientLocalizationContactsManagerClientServerLocalizationContactsManagerLocalizationDigitalSignatureClientLocalizationDigitalSignatureClientServerLocalizationDigitalSignatureLocalizationFor recommendations on how to use the new features of overridable and localizable common modules, see What’s new for developers above.
Public area.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.
OnGlobalSearchOnGlobalSearchResultChoiceOnGlobalSearchResultActionChoiceNavigationByURLProcessingCommonClientOverridable common module. See the corresponding procedures: OnGlobalSearch, OnGlobalSearchResultChoice, OnGlobalSearchResultActionChoice, and NavigationByURLProcessing.AccessToInternetServicesAllowed constant to the DIB and SWS exchange plans, as it is used when creating the initial image.ObsoleteSafeDataAreaDataStorage information register from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.Country attribute (CatalogRef.WorldCountries type, separated data) in the BankClassifier catalog (common data) has been renamed to ObsoleteCountry and is no longer used. It is replaced by the CountryCode attribute (String type), which is filled according to ISO 3166-1 and corresponds to the Code attribute of the WorldCountries catalog of the Contact information subsystem. This change must be considered in all configuration areas that directly reference the BankClassifier catalog’s Country attribute.In the OnGetSettingOptionDetails procedure of the exchange plan’s manager module, the type of added values in the UsedExchangeMessagesTransports property has changed from an enumeration to a transport data processor.
Before:
UsedExchangeMessagesTransports = New Array;
UsedExchangeMessagesTransports.Add(Enums.ExchangeMessagesTransportTypes.WS);
OptionDetails.UsedExchangeMessagesTransports = UsedExchangeMessagesTransports;
Now:
UsedExchangeMessagesTransports = New Array;
UsedExchangeMessagesTransports.Add(ExchangeMessagesTransport.TransportManagerWS());
OptionDetails.UsedExchangeMessagesTransports = UsedExchangeMessagesTransports;
The ExchangeMessagesTransport common module provides the following functions to get a manager of the suitable data processor:
TransportManagerFILETransportManagerCOMTransportManagerEMAILTransportManagerFTPTransportManagerHTTPTransportManagerWSTransportManagerSMTransportManagerPassiveModeTransportManagerESB1CTransportManagerGoogleDriveThe new type collection ExchangePlansDSL must contain references to all exchange plans used for data synchronization, as specified in the procedure DataExchangeOverridable.GetExchangePlans.
In the ProcessExchangeMessageTransportSettings procedure of the EnterpriseData exchange plan’s manager module, you must now use the ExchangeMessageTransportSettings catalog instead of the DataExchangeTransportSettings information register to store connection settings.
Exclude the ExchangeMessageTransportSettings catalog from the DIB exchange plans.
PatchPropertiesBeforeInfobaseUpdate constant from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.DefaultObjectPrintForms and DefaultCounterpartyPrintForms to the DIB and SWS exchange plans.MonthsInMinTotalsPeriod constant to the DIB and SWS exchange plans. Also, add it to the demo DIB in the demo configuration.AccessesExternalResources property to True in the OnDefineScheduledJobSettings procedure. This is particularly relevant for scheduled jobs downloading currency rates or classifiers from the Internet.
UseExternalResources property set to True (for example, jobs that send email, text messages, or synchronize data). Such scheduled jobs should be disabled in infobase copies.AddDeleteSourceDocumentOriginalState has become Write_SourceDocumentsOriginalsStates and SourceDocumentOriginalStateChange has become Write_InformationRegisterSourceDocumentsOriginalsStates. Make any necessary substitutions in the configuration code.Certificate and SignatureFileName resources have been removed from the DigitalSignatures information register. Delete or adapt all references to these resources in the code, queries, and reports. To get a signature certificate, use the DigitalSignature.CertificateFromSignatureBinaryData function. To get a signature file name, use the DigitalSignatureClientServer.SignatureFileName function.AllowAccessToDigitalSignatureInternetServices constant to the DIB and SWS exchange plans, as it is used when creating the initial image.OpenInstructionOnTypicalProblemsOnWorkWithApplications procedure of the DigitalSignatureClient common module and the OnDefiningRefToAppsTroubleshootingGuide procedure of the DigitalSignatureClientServerLocalization common module have been removed as unused.The actions below are optional for the migration, but we recommend that you schedule them in the future.
To facilitate the development of write handlers for information and accumulation registers in the Update, Merge, and Delete modes on 1C:Enterprise v.8.3.25 and later, the Common common module is augmented with the helper functions SetRecordsFromDatabase, SetRecordsChange, NewParametersToFilterSetRecordsFromDatabase, and FilterSetRecordsFromDatabase. Additionally, to ensure compatibility with 1C:Enterprise v.8.3.24, wrapper functions can be used: IsRecordSetAddition, IsRecordSetReplacement, IsRecordSetUpdate, IsRecordSetMerge, IsRecordSetDeletion, RecordSetUpdateMode, RecordSetMergeMode, and RecordSetDeletionMode from the Common common module. For more information, see comments to these functions.
The behavior of the PredefinedItem function in the Common and CommonClient modules has been improved. It now returns Undefined if an object or its predefined item does not exist in the configuration metadata. Previously, Undefined was only returned if the predefined item existed in the configuration metadata but was not created in the infobase. We recommend that you review all function calls and remove any redundant exception catching.
The behavior of the TimeIntervalString function in the Common common module has been improved. Now, instead of throwing an exception, it returns an empty string if BeginTime is greater than EndTime. Review all function calls and replace exception catching with empty string handling.
We recommend that you review all cases of exception catching and rethrowing where the text displayed to the user (or administrator) is changed or added, and replace them with the CommonClientServer.ExceptionClarification function. For more information, see Catching exceptions.
Using the Allow access to web services checkbox (Administration > Online support and services > Online support settings), you can disable all web service requests from the application.
GetFilesFromInternet common module and the Common.CreateWSProxy function, no additional actions are required: when the AccessToInternetServicesAllowed functional option is disabled, they will return an Internet access error. In other cases, before establishing a connection with a web service, call the Common.AccessToInternetServicesAllowed procedure.ShouldCheckAccessToInternetServices property in the GetFilesFromInternetClientServer.FileGettingParameters parameter for the functions of the GetFilesFromInternet module and in the WSProxyConnectionParameters parameter for Common.CreateWSProxy.AccessToInternetServicesAllowed functional option (constant of the same name). The function Common.AccessToInternetServicesDeniedMessageText can be used to provide additional hints on why a certain function is unavailable: Access to web services in the application is prohibited by the administrator (Online support and services > Allow access to web services).AccessToInternetServicesAllowed and the procedure SetUpInternetServicesOperations of the Common common module.Instead of using the obsolete function CommonServerCall.RefsToObjectFound, we recommend that you open a long-running operation form and call Common.RefsToObjectFound from there.
Instead of the obsolete function CommonServerCall.CheckDocumentsPosting, call the function CommonServerCall.UnpostedDocuments. In a single server call, the new function returns a list of unposted documents and the posting right availability flag. This allows the client to process the result without additional server calls.
The AttachFileOperationsExtension function from the FileSystemClient common module is deprecated. Instead, call Attach1CEnterpriseExtension from the same module.
BusinessProcessesAndTasksServerCall common module, call their counterparts from the BusinessProcessesAndTasksServer common module.AddInServerCall.AddInInformation function is deprecated. Instead, call AddInsServer.AddInInformation.Update, Merge, and Delete modes on 1C:Enterprise v.8.3.25 and later, you need to adjust the implementation of overridable procedures BeforeCheckPeriodClosing, BeforeCheckOldDataVersion, and BeforeCheckNewDataVersion of the PeriodClosingDatesOverridable common module. The Replace property, which is passed to these procedures as part of the AdditionalProperties structure of a record set, can now have not only a Boolean type but also a ReplacementMode type (for more details, see the comments to these procedures).AdditionalReportsAndDataProcessorsServerCall common module, call their counterparts from the AdditionalReportsAndDataProcessors common module: AttachExternalDataProcessor and ExternalDataProcessorObject.AddressParameters, EmailAddressParameters, and PhoneParameters constructor functions (depending on the contact information type) instead of the ContactInformationKindParameters function of the ContactsManager common module.PrintManagementServerCall.TemplatesAndObjectsDataToPrint, call PrintManagement.TemplatesAndObjectsDataToPrint and use the server mechanism to generate print forms based on Office document templates.FilesOperationsOverridable.OnPrintFileWithStamp procedure is deprecated. Instead, use DigitalSignatureOverridable.OnGetDigitalSignatureStamp.The ambiguity in setting the state of an original document has been resolved in cases where a user could create two items with the same state name in the catalog, which previously resulted in a random state being assigned. Instead of the obsolete procedures WriteCommonDocumentOriginalState and WriteDocumentOriginalStateByPrintForms of the InformationRegisters.SourceDocumentsOriginalsStates manager module, call the same procedures from the SourceDocumentsOriginalsRecording module. The new procedures take a reference to a state catalog item as the 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 NotificationHandlerDocumentForm procedure in the SourceDocumentsOriginalsRecordingClient common module has been enhanced. It can now take a third parameter, Source, to prevent redundant processing of notifications in open document forms. We recommend adding the third parameter Source to all procedure calls.
The SourceDocumentsOriginalsRecordingServerCall.WriteOriginalsStatesAfterPrint function is deprecated. Instead, call SourceDocumentsOriginalsRecording.WriteOriginalsStatesAfterPrint and SourceDocumentsOriginalsRecordingClient.WriteOriginalsStatesAfterPrint.
The WriteDocumentOriginalsStatesAfterPrintForm procedure of the InformationRegisters.SourceDocumentsOriginalsStates manager module is deprecated. Instead, call the same procedure from the SourceDocumentsOriginalsRecording module.
SetSignatures function of the DigitalSignature common module is deprecated. Instead, use the new ObjectSignatures function and the NewObjectSignaturesAcquisitionParameters constructor function from the same module. Review all locations where this function is called.
ObjectSignatures functions does not return digital signature certificates by default. To get them, you must explicitly set the ShouldExtractCertificatesFromSignatures property in the AdditionalParameters parameter to True.SequenceNumber and ShouldReturnMachineReadableLOAData parameters used in the SetSignatures function can also be passed to the ObjectSignatures function via the same named properties of the NewObjectSignaturesAcquisitionParameters constructor function.AccessToInternetServicesAllowed function of the DigitalSignature common module.When migrating from earlier library versions to version 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.
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.
ExecuteFunction, ExecuteProcedure, ExecuteFunctionInMultipleThreads, ExecuteProcedureinMultipleThreads and ExecuteInBackground of the TimeConsumingOperations common module.
ErrorInfo (of the ErrorInfo type), while the obsolete properties BriefErrorDescription and DetailErrorDescription (of the String type) are kept for backward compatibility. The property ErrorInfo is returned by the function TimeConsumingOperations.JobCompleted and in the return value to be passed to the notification procedure specified in the CallbackOnCompletion parameter of the TimeConsumingOperationsClient.WaitCompletion procedure.StandardSubsystemsClient.OutputErrorInfo function instead of showing warnings or calling the 1C:Enterprise method ShowErrorInfo. This function is intended for intercepting exceptions by automated testing software (given that the ShowErrorInfo method doesn’t trigger the ErrorDisplayProcessing event handler in the application module).CommonParameters.ShouldIncludeFullStackInLongRunningOperationErrors parameter of the CommonOverridable.OnDetermineCommonCoreParameters procedure is set to True, the error details for the developer will contain a snippet of the operation stack (before the startup). By default, the parameter is set to False for debugging purposes.Common.ReplaceReferences is augmented by the ErrorInfo property (of the ErrorInfo type). Now, error information can be either displayed in the calling code using 1C:Enterprise tools or sent to the Error Reporting Service.CancelButtonTitle parameter of the TimeConsumingOperationsClient.IdleParameters function.OnDefineFullNameComponents, is implemented in the PersonsClientServerLocalization module. The procedure overrides the IndividualsClientServer.NameParts function to address the national aspects of individuals’ names.IndividualsClientServer.NameParts function is updated:
FullName can be passed as either “Surname,Name,MiddleName” (by default) or “Name,MiddleName,Surname”. The order is set in the NameFormat parameter.OnDefineSurnameAndInitials, is implemented in the PersonsClientServerLocalization module. The procedure overrides the IndividualsClientServer.InitialsAndLastName function to address the aspects of individuals’ names in local languages.IndividualsClientServer.InitialsAndLastName function is updated:
FullName can be passed as either “Surname,Name,MiddleName” (by default) or “Name,MiddleName,Surname”. The order is set in the FullNameFormat parameter.IsInitialsComeFirst parameter.Result parameter of procedures that handle the long-running operation progress and completion, we recommend that you use the following functions:
TimeConsumingOperationsClient.NewResultLongOperation is intended for values passed to the completion procedure specified in the CallbackOnCompletion parameter of the TimeConsumingOperationsClient.WaitCompletion procedure.LongRunningOperationNewState is intended for values passed to the progress notification procedure specified in the ExecutionProgressNotification parameter of the TimeConsumingOperationsClient.IdleParameters procedure. For example:// Parameters:
// Result - See TimeConsumingOperationsClient.NewResultLongOperation
// AdditionalParameters - Undefined
//
&AtClient
Procedure ApplyRulesCompletion(Result, AdditionalParameters) ExportCommon.UnionAllText function (similarly to Common.QueryBatchSeparator).CommonClientServer.ValueListsAreEqual function is improved.ShouldCompareValuesCount, is added to the CommonClientServer.ValueListsAreEqual function, which allows for comparing lists of unequal lengths.IsStringContainsOnlyNationalAlphabetChars function is implemented in the StringFunctionsClientServer common module. It is intended for finding invalid characters (for example, in names).StringFunctionsClientServerLocalization common module now contains the following procedures:
OnDefineNationalAlphabetChars, which is intended to override the IsStringContainsOnlyNationalAlphabetChars function of the StringFunctionsClientServer common module to adjust it to local languages.OnDefineWordChars, which is intended to override the IsWordSeparator function of the StringFunctionsClientServer common module to adjust it to local languages.SSLImplementationCheck.erf) is improved:
RemoteODataAccess role is enhanced: in 1C:Fresh powered SaaS applications, this role now grants access rights to objects with independent and shared separators. Additionally, objects that are excluded from export/import when migrating from on-premises solutions to the cloud are skipped by this role.CurrencyRateOperations.GenerateAmountInWords is augmented by the IsFractionalPartInWords parameter, which allows for expressing the decimal fraction in words.WhenReceivingClassifierData, is implemented in the CalendarSchedulesLocalization module. The procedure overrides the CalendarSchedules.ClassifierData function when getting a file with country-specific calendar classifier data.ContactsManager.ContactInformationPresentation is augmented by the Transliterate parameter, which allows for converting contact information from Cyrillic into Latin. For example, to provide English-speaking partners with addresses written initially in Cyrillic.SSLImplementationCheck.erf). Errors are diagnosed if:
To identify and fix issues, use the latest report version.
NationalLanguageSupportServer common module’s API is augmented by the functions CurrentLanguageSuffix, LanguageSuffix, IsAdditionalLangUsed, and AttributesNamesConsideringLangCode. For details, see the comments to these functions and a use case in the ChoiceDataGetProcessing procedure in the _DemoProducts catalog’s manager module in the demo SSL.TextTranslationTool.TextTranslationAvailable function.Organizer command type. This applies only to configurations with the Attachable commands subsystem integrated.UserRemindersClient.RemindInSpecifiedTime procedure is augmented by the Id parameter, which allows users to specify the reminder type. For details, see the comments to the procedure.For seamless logging of data processing errors, the WriteErrorToEventLog procedure is implemented in the InfobaseUpdate module API. For details, see the comments to the procedure. Code before implementing the procedure:
MessageText = StringFunctionsClientServer.SubstituteParametersToString(
NStr("ru = 'Could not process %1 due to:
|%2'"),
RepresentationOfTheReference, ErrorProcessing.DetailErrorDescription(ErrorInfo()));
WriteLogEvent(InfobaseUpdate.EventLogEvent(),
EventLogLevel.Warning, Metadata.Catalogs.ContactPersonsForPartners,
PartnerContactPerson.Ref, MessageText);
The new procedure reduces the algorithm’s complexity to a single line:
InfobaseUpdate.WriteErrorToEventLog(PartnerContactPerson.Ref, RepresentationOfTheReference, ErrorInfo());To facilitate the development of predefined item update handlers, the InfobaseUpdate.DoUpdatePredefinedItems procedure is implemented. In just a single call, the procedure adds new and updates existing items according to their current description in the OnInitialItemsFilling procedure of the object’s manager module. The procedure allows for updating either all items or specify which of the object’s items and attributes should be updated. See the handler instance in the procedure _DemoInfobaseUpdateSSL.UpdateContactInformationKinds in the demo SSL.
ConfigurationUpdate.InstallAndDeletePatches, you can now pass the UsedInDistributedInfoBase parameter to reduce the installation time for extensions that are not intended for distributed infobases. To pass parameters to the function ConfigurationUpdate.InstallAndDeletePatches, a new constructor function is introduced: ConfigurationUpdate.PatchesInstallationParameters.Send. See the example in the procedure _DemoStandardSubsystems.OnDefineCommandsAttachedToObject in the demo SSL.DuplicateObjectsDetection.FindSimilarStrings now supports the safe mode, which is useful for calls from external data processors or extensions. For that purpose, the DuplicateObjectsDetection.ParametersOfSearchForSimilarStrings function was reworked.GetFilesFromInternet.ConnectionDiagnostics runs the ping command to test the connectivity between the requester and an Internet resource. However, if responding to ping is disabled or not configured on the Internet resource, its result might misinform the requester. To address that issue, the new parameter IsPackageDeliveryCheckEnabled was implemented, which allows you to disable the ping request. We recommend using this parameter if you know or suspect that the ping response is disabled on the requested Internet resource.
IsPackageDeliveryCheckOnErrorEnabled property in the parameters of the following functions:
GetFilesFromInternet.DownloadFileAtServer, GetFilesFromInternet.DownloadFileToTempStorage,Common.CreateWSProxy, andCommon.GetInterfaceVersions.GetFilesFromInternet.FileImportTimeout function is introduced to calculate the timeout threshold for downloading files from the Internet. It is intended for downloading files without using the Network download API, which already has an embedded timeout estimator.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
CommonAuthorizationSettingsNewDetails and NewDescriptionOfLoginSettings now support the 1C:Enterprise v.8.3.26 features available in the LogonSettings common form. For earlier versions, the values assigned to these properties are ignored (however, the values are stored in the UserAuthorizationSettings constant).UsersOverridable.OnDefineRegistrationSettingsForDataAccessEventsUsers.RegistrationSettingsForDataAccessEventsUsers.UpdateRegistrationSettingsForDataAccessEvents. These functions and procedures allow each mechanism to store its settings separately and apply the common result to the infobase when the settings are changed, without the risk of overwriting other mechanisms’ settings. And instead of disabling the logging of the Access.Access event, just disable the settings of the required mechanism in UsersOverridable.OnDefineRegistrationSettingsForDataAccessEvents and call Users.UpdateRegistrationSettingsForDataAccessEvents. If an error occurs when changing settings, Users.UpdateRegistrationSettingsForDataAccessEvents deletes non-existent field names from the settings, retries applying the settings, and logs the event Users.Error setting up Access.Access event without throwing an exception.Users and ExternalUsers catalogs when passing the properties of the AdditionalProperties object are improved:
AdditionalProperties contains the IBUserDetails property, its value is now considered in the DataExchange.Load mode.AdditionalProperties.IBUserDetails.Action is set to Write, then you can use the property AdditionalProperties.IBUserDetails.UpdateInfobaseUserOnly to restrict creating a new infobase user when it’s not found.Catalogs.UserGroups.AllUsers and Catalogs.ExternalUsersGroups.AllExternalUsers, we recommend calling the functions Users.AllUsersGroup and ExternalUsers.AllExternalUsersGroup respectively.FilesOperations.BinaryFilesData is implemented to allow obtaining the binary data of multiple files in a single call.FilesOperaions.ConvertFilesToAttachedFiles (marked as obsolete) is replaced with MoveFilesBetweenStorageCatalogs. With the new procedure, you can transfer object attachments between attachment tables when refactoring the file storage locations. For example, you can utilize this procedure to transfer attachments in _DemoProducts from the _DemoProductsAttachedFiles catalog to the Files catalog. See the call example in DataProcessor._DemoTransferAttachments.EmailOperations common module functions SendMail, SendEmails, and DownloadEmailMessages is updated to allow performing multiple send/receive actions on the mail server without reconnecting to it. Alongside an email account, the functions take an established connection to a mail server (InternetMail) as a parameter. It is intended for developing custom email clients.EmailOperations.ConnectToEmailAccount is implemented.EmailOperationsOverridable.OnDefineSettings is augmented with the ShouldUsePOP3Protocol property, which allows for toggling the POP3 protocol. If you set the property to False, the mail server will be accessed over IMAP, and POP3 settings will be unavailable.SendOptions parameter of the EmailOperationsClientOverridable.BeforeOpenEmailSendingForm procedure: IsInteractiveRecipientSelection.MessageTemplatesClient.SelectTemplate, set the MessageKind parameter to Arbitrary. For the implementation example, see DocumentForm of the _DemoDebitingFromAccount document in the demo SSL.DigitalSignatureOverridable.OnDefineSettings procedure is implemented, which allows for overriding subsystem settings. With it, you can specify whether the app should display the attribute DefinedType.Individual in the catalog DigitalSignatureAndEncryptionKeysCertificates and in the application on certificate issuance.DigitalSignatureClientServer.ResultOfSignatureValidationOnForm. The constructor has the BriefCheckResult property that contains the verification result based on the data stored in the infobase. The property is filled in by the procedure DigitalSignatureClientServer.FillSignatureStatus.DigitalSignatureClientOverridable.AfterAddToDigitalSignatureCertificatesCatalogprocedure is introduced to help users update certificate settings and replace certificates when they add new certificates to the DigitalSignatureAndEncryptionKeysCertificates catalog.DigitalSignatureClient.CheckCertificate and DigitalSignature.CheckCertificate procedures are augmented with the CheckParameters parameter and the constructor DigitalSignatureClient.CertificateCheckParameters. You can use the property PerformCAVerification to specify whether the certificate should be checked against the list of accredited certificate authorities. The property IgnoreCertificateRevocationStatus allows you to specify whether to check the certificate against the revocation list.PerformCAVerification and IgnoreCertificateRevocationStatus in the AdditionalParameters parameter of the DigitalSignatureClient.CheckCatalogCertificate procedure.ShouldCheckCertificate in the constructor DigitalSignatureClient.SignatureVerificationParameters when calling the procedure DigitalSignatureClient.VerifySignature, you can completely disable certificate verification for non-qualified signatures that are intended only to verify that the document has not changed. Conversely, you can enable verification and require qualified signature certificates.CertificateCheckParameters is implemented in the parameter DigitalSignatureClientServer.SignatureVerificationResult of the DigitalSignature.VerifySignature procedure.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.
Public area.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.
ExtensionProperties information register from the exchange plans of the distributed infobase (DIB) and standalone workstation (SWS) and from the exchange plans that synchronize different apps.UserMonitoring (a child subsystem of Administration) to the new configuration so that the elements of the Administrator reports panel would be grouped appropriately.AttachableCommands subsystem (if integrated) to all forms that have note-related buttons.UseNotesCommand constant to the DIB and SWS exchange plans.RegistrationSettingsForDataAccessEvents and ShouldRegisterChangesInAccessRights constants from the DIB and SWS exchange plans and from the exchange plans that synchronize different apps.UsersAndRightsSettings form of the SSLAdministrationPanel data processor (if used).AttachableCommands subsystem (if integrated) to all forms that have reminder-related buttons.UseRemindersCommand constant to the DIB and SWS exchange plans.UserGroupsHierarchy and UserGroupCompositions to the DIB and SWS exchange plans only for the purpose of creating an initial image (exclude from event subscriptions). Also, exclude the registers from exchange plans that synchronize different apps.Users.PasswordHashString should be supplemented with a call to the 1C:Enterprise methods EvaluateStoredUserPasswordValue or CheckUserPasswordComplianceWithStoredValue, as shown in the function example. This is required in cases where the application administrator has selected a password hashing algorithm other than SHA-1. In future releases, the Users.PasswordHashString will be marked as deprecated.BinaryDataStorage and information registers FileRepository and DeleteFilesBinaryData only to the subordinate node initial image.AccessValuesGroups to the DIB and SWS exchange plans only for the purpose of creating an initial image (exclude from event subscriptions). Also, exclude the register from exchange plans that synchronize different apps.AttachableCommands subsystem (if integrated) to all forms that have buttons related to sending messages.The actions listed below are not required for migration, but we recommend that you perform them in the future.
InfobaseUpdateOverridable.OnDefineSettings. Predefined items in such objects are populated by the OnInitialItemsFilling procedure of the manager module.
EditedPredefinedAttributes.ExecuteFunction, ExecuteProcedure, ExecuteFunctionInMultipleThreads, ExecuteProcedureinMultipleThreads and ExecuteInBackground of the TimeConsumingOperations common module. We recommend that you update the code for running and processing long-running operations accordingly:
BriefErrorDescription and DetailErrorDescription (of the String type), use the ErrorInfo property (of the ErrorInfo type) in long-running operations results. The property ErrorInfo is returned by the function TimeConsumingOperations.JobCompleted and in the return value to be passed to the notification procedure specified in the CallbackOnCompletion parameter of the TimeConsumingOperationsClient.WaitCompletion procedure.StandardSubsystemsClient.OutputErrorInfo function instead of showing warnings or calling the 1C:Enterprise method ShowErrorInfo. This function is intended for intercepting exceptions by automated testing software (given that the ShowErrorInfo method doesn’t trigger the ErrorDisplayProcessing event handler in the application module).RefinementErrors property (instead of adding it to the client code) in the parameters of the following TimeConsumingOperations common module functions: FunctionExecutionParameters, BackgroundExecutionParameters, ProcedureExecutionParameters. Example: ExecutionParameters.RefinementErrors = NStr("en = 'The action failed due to:'");. This approach ensures that the error message the user sees repeats the same information that is logged during the exception handling.Result parameter of procedures that handle the long-running operation progress and completion, we recommend that you use the following functions:
TimeConsumingOperationsClient.NewResultLongOperation is intended for values passed to the completion procedure specified in the CallbackOnCompletion parameter of the TimeConsumingOperationsClient.WaitCompletion procedure.LongRunningOperationNewState is intended for values passed to the progress notification procedure specified in the ExecutionProgressNotification parameter of the TimeConsumingOperationsClient.IdleParameters procedure. For example:// Parameters:
// Result - See TimeConsumingOperationsClient.NewResultLongOperation
// AdditionalParameters - Undefined
//
&AtClient
Procedure ApplyRulesCompletion(Result, AdditionalParameters) Export
ErrorProcessing.ErrorMessageForUser(ErrorInfo) and provide the users with the ability to preview and send the error report by clicking the Generate error report link: ReportToSend = New ErrorReport(ErrorInfo);
StandardSubsystemsClient.ShowErrorReport(ReportToSend);
StandardSubsystemsClient.ConfigureVisibilityAndTitleForURLSendErrorReport from the OnOpen form module handler.OnClose form module handler, call the procedure StandardSubsystemsClient.SendErrorReport(ReportToSend, ErrorInfo), which sends the report if the app settings imply that sending reports is mandatory for this error category.DataProcessor.ApplicationUpdateResult.Form.FailedUpdateMessage, DataProcessor.ReplaceAndMergeItems.Form.ItemsReplacement, and DataProcessor.ToDoList.Form.Form.EventLogServerCall.WriteEventsToEventLog with the calls to EventLogClient.WriteEventsToEventLog.IndividualsClientServer.FullNameWrittenCorrectly (marked as obsolete) is replaced with StringFunctionsClientServer.IsStringContainsOnlyNationalAlphabetChars.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.BankManager.GetClassifierData (marked as obsolete) is replaced with BankManager.BICInformation.SMSAndEmailParameters constructor function to generate parameters of the procedures ContactsManagerClient.CreateEmailMessage and ContactsManagerClient.CreateSMSMessage._DemoMySettings form in the demo SSL. For opening the reminder settings form programmatically, see procedure UserRemindersClient.OpenSettings.For logging of data processing errors, we recommend calling the InfobaseUpdate.WriteErrorToEventLog procedure. Code before implementing the procedure:
MessageText = StringFunctionsClientServer.SubstituteParametersToString(
NStr("ru = 'Could not process %1 due to:
|%2'"),
RepresentationOfTheReference, ErrorProcessing.DetailErrorDescription(ErrorInfo()));
WriteLogEvent(InfobaseUpdate.EventLogEvent(),
EventLogLevel.Warning, Metadata.Catalogs.ContactPersonsForPartners,
PartnerContactPerson.Ref, MessageText);
The new procedure reduces the algorithm’s complexity to a single line:
InfobaseUpdate.WriteErrorToEventLog(PartnerContactPerson.Ref, RepresentationOfTheReference, ErrorInfo());ConfigurationUpdate.InstallAndDeletePatches, we recommend calling the constructor function ConfigurationUpdate.PatchesInstallationParameters.UsersOverridable.OnDefineRegistrationSettingsForDataAccessEventsUsers.RegistrationSettingsForDataAccessEventsUsers.UpdateRegistrationSettingsForDataAccessEvents. These functions and procedures allow each mechanism to store its settings separately and apply the common result to the infobase when the settings are changed, without the risk of overwriting other mechanisms’ settings. And instead of disabling the logging of the Access.Access event, just disable the settings of the required mechanism in UsersOverridable.OnDefineRegistrationSettingsForDataAccessEvents and call Users.UpdateRegistrationSettingsForDataAccessEvents. If an error occurs when changing settings, Users.UpdateRegistrationSettingsForDataAccessEvents deletes non-existent field names from the settings, retries applying the settings, and logs the event Users.Error setting up Access.Access event without throwing an exception.PropertyManager.PropertyAdditionParameters parameter constructor procedure used in the AddProperty procedure, the Type property is replaced with ValueType. If you are adding additional attributes or information records programmatically, we recommend replacing Type with ValueType at all call sites. The old property is kept for backward compatibility.When migrating from earlier library versions (up to 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.
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.
The DigitalSignatureClientOverridable.AfterAddToDigitalSignatureCertificatesCatalog procedure is introduced to help users update certificate settings and replace certificates when they add new certificates to the DigitalSignatureAndEncryptionKeysCertificates catalog.
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.
DigitalSignatureClient.CheckCertificate and DigitalSignature.CheckCertificate procedures are augmented with the CheckParameters parameter and the constructor DigitalSignatureClient.CertificateCheckParameters. You can use the property PerformCAVerification to specify whether the certificate should be checked against the list of accredited certificate authorities. The property IgnoreCertificateRevocationStatus allows you to specify whether to check the certificate against the revocation list.PerformCAVerification and IgnoreCertificateRevocationStatus in the AdditionalParameters parameter of the DigitalSignatureClient.CheckCatalogCertificate procedure.ShouldCheckCertificate in the constructor DigitalSignatureClient.SignatureVerificationParameters when calling the procedure DigitalSignatureClient.VerifySignature, you can completely disable certificate verification for non-qualified signatures that are intended only to verify that the document has not changed. Conversely, you can enable verification and require qualified signature certificates.CertificateCheckParameters is implemented in the parameter DigitalSignatureClientServer.SignatureVerificationResult of the DigitalSignature.VerifySignature procedure.WhenReceivingClassifierData, is implemented in the CalendarSchedulesLocalization module. The procedure overrides the CalendarSchedules.ClassifierData function when getting a file with country-specific calendar classifier data.MessageTemplatesOverridable.OnCreateMessage. Copy the new description from the library distribution package and make sure that comments, the number of parameters, and the parameter names of each procedure in the MessageTemplatesOverridable common module match their library equivalents.SSLImplementationCheck.erf). Errors are diagnosed if:
The performance of SSL integration check (distributed with the library as an external report SSLImplementationCheck.erf) is improved:
RemoteODataAccess role is enhanced: in 1C:Fresh powered SaaS applications, this role now grants access rights to objects with independent and shared separators. Additionally, objects that are excluded from export/import when migrating from on-premises solutions to the cloud are skipped by this role.PropertyManager.PropertyAdditionParameters parameter constructor procedure used in the AddProperty procedure, the Type property is replaced with ValueType. If you are adding additional attributes or information records programmatically, we recommend replacing Type with ValueType at all call sites. The old property is kept for backward compatibility.Version 3.1.9 is designed for development on 1C:Enterprise platform 8.3.21 or higher in Version 8.3.21 compatibility mode.
For the entire list of new features, see What’s new in version 3.1.9 below.
SupplementList procedure in the CommonClientServer common module. You can use the procedure to combine value lists. If the destination list already contains an item with a value to add, the item presentation is changed to the new one from the source list.ExpectedValues parameter in the CommonClientServer.CheckParameter procedure. You can use the parameter to check possible parameter values of procedures and functions. For example, if the Color parameter of the SpecifyColor procedure can have only three possible string values Red, Yellow, and Green, then you can check the parameter value as follows: ~~~ CommonClientServer.CheckParameter(“Colors.SpecifyColor”, “Color”, Color, Type(“String”), “Red,Yellow,Green”); ~~~StandardSubsystemsServer.IsTrainingPlatform function in the API. The function allows branching code that depends on restrictions of the training platform version.IsBaseConfigurationVersion and IsTrainingPlatform functions of the StandardSubsystemsClient common module and CommonClientServer.COMConnectorName instead of obsolete same-name properties of the structure returned by the ClientRunParameters and ClientParametersOnStart functions of the StandardSubsystemsClient common module.ValueToJSON and JSONValue functions in the Common module. These functions simplify value conversion into and from the JSON format.IsDistributedInfobase function in the Common common module. You can use the function to check whether the infobase is distributed.Enum.ReportOptionPurposes type) in the CustomizeReportsOptions procedure in the report manager module or centrally in the ReportsOptionsOverridable common module:ForComputersAndTablets. A report option must be displayed on report panels only in the thin client, thick client, or web client of 1C:Enterprise. This is a default value.ForSmartphones. A report option must be displayed on report panels only in the mobile application.ForAnyDevice. A report option must be displayed in any 1C:Enterprise applications.CustomizeReportOptions procedure in the report manager module or in the CustomizeReportOptions procedure of the ReportsOptionsOverridable common module. For example: OptionDetails = ReportsOptions.OptionDetails(Settings, DescriptionOfReport, "IncomeAndExpensesForEnterpriseMobileClient");
OptionDetails.Description = NStr("en='Company's income and expenses (mobile)'");
OptionDetails.LongDesc = NStr("en= 'Itemized analysis of income and expenses for the entire company with dimension selection.'");
OptionDetails.Purpose = Enums.ReportOptionPurposes.ForSmartphones;
Besides, you can save report snapshots to view them later in the mobile client in standalone mode. To manage the report snapshots in the application, you can use the following procedures and functions in the manager module of the ReportsSnapshots information register:
UserReportsSnapshotsSaveUserReportSnapshotUpdateUserReportsSnapshotsFor more information, see the description of the procedures and functions.
To view reports in the mobile client in standalone mode when there is no connection to the server, set up data export to an offline configuration:
OnWrite event subscription. You can find the example in the demo configuration: EventSubscriptions._DemoRegisterChangesForStandaloneMode and EventSubscriptions._DemoRegisterChangesForStandaloneModeRegisters.OnStart procedure of the CommonClientOverridable common module._DemoExchangeMobileClientOfflineServerCall common module._DemoExchangeMobileClient role. Add access rights for metadata objects involved in the exchange to this role. You can find the example in the demo configuration: Constants._DemoExchangePlanNewNodeCode. Add this role and the AddEditReportsSnapshots role to access group profiles of mobile client users.WriteObjectProperties API procedure of the ImportDataFromFile common module and pass a reference to the property owner object and a string of data to import as parameters.PositionOfAddButton property in the OnDefineSettings procedure parameter of the ContactsManagerOverridable common module. By default, the button is displayed on the left.
CommentFieldWidth parameter to specify the exact width of the Comment field for contact information fields with the following types: Phone, Email, Skype, WebPage, and Fax.GetWSProxy_3_0_2_2 function is added to the DataExchangeServer common module API. For more information, see the function description.AfterImportObject and OnRegisterDataImportHandlers procedures are added to the DataExchangeEvents common module API. For more information, see the procedure description.UsersClient.IsFullUser function in the client code instead of the obsolete IsFullUser,IsSystemAdministrator, andHasAccessForUpdatingPlatformVersion properties of the structure returned by the ClientRunParameters and ClientParametersOnStart functions of the StandardSubsystemsClient common module.IsFullUser property of the structure returned by the FilesOperations.FilesOperationSettings function is now obsolete. Instead, use the Users.IsFullUser and UsersClient.IsFullUser functions.FilesOperationsClient common module for scanning images:
AddFromScannerCombineToMultipageFileScanCommandAvailable and ScanAvailableAddingFromScannerParameters, GraphicDocumentConversionParameters, ScanParameters, ConversionResultTypeBinaryData, ConversionResultTypeFileName, and ConversionResultTypeAttachedFileSaveUserScanSettings procedure andGetUserScanSettings function in the FilesOperations and FilesOperationsClient common modules.UserScanSettings function in the FilesOperationsClientServer common module.OnDefineEmailTextParameters and OnReceiveEmailTextParameters procedures of the ReportMailingOverridable common module. For more information, see comments to these procedures.Now you can use labels to mark catalogs and documents with multi-colored label icons (Administration – General settings – Properties). The labels are displayed as pictures or text and can be edited in forms of catalogs and documents. Besides, you can see a label column and its legend in lists and filter the lists by labels. New procedures and functions in the PropertyManager module for managing labels in the application:
LabelsDisplayParametersOnGetDataAtServerPropertiesByAdditionalAttributesKindSetLabelsLegendVisibilityHasLabelsOwnersFillObjectLabels For more information, see the description of the procedures and functions.New procedures and functions in thePropertyManagerClient module:
EditLabelsExecuteCommandApplyFilterByLabel For more information, see the description of the procedures and functions.Improved the support of property sets created using 1C:Enterprise language based on various configuration catalogs, for example, Product kinds. To delete such property sets automatically when deleting a source catalog item, you can use the new BeforeDeleteObjectKind procedure in the PropertyManager common module. Call this procedure in the BeforeDelete procedure in the object module of the source catalog:
// StandardSubsystems.Properties
PropertyManager.BeforeDeleteObjectKind(ThisObject);
// End StandardSubsystems.Properties
True in the IsVerificationRequired property.SignatureVerificationParameters constructor in the DigitalSignatureClient common module to the CheckParameters parameter of the VerifySignature procedure and set the ResultAsStructure flag.ShouldIgnoreCertificateValidityPeriod parameter is added to the RefineSignature procedure of the DigitalSignatureClient common module. You can use the parameter to add a timestamp to a signature whose certificate expired.DeleteDigitalSignatures role is added to delete signatures of other signers.Sign and Decrypt functions of the DigitalSignatureClient module, OperationContext is now returned even in case of an unsuccessful operation if a password was entered. However, a repeated action with such context might also be unsuccessful.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 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:
DataExchangeOverridableDataExchangeSaaSOverridableDuplicateObjectsDetectionOverridableReportMailingOverridableFor the recommendations on how to use the new features of the overridable common modules, see the What’s new for developers section above.
Public area.Using an API requires much less rewriting of configuration code when upgrading to new library versions. 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.
BeforeStart, OnStart, BeforeExit, and CollaborationSystemUsersChoiceFormGetProcessing handlers in modules of the managed and ordinary applications with the following snippets:#Region EventsHandlers
Procedure BeforeStart()
#If MobileClient Then
If IsMainServerAvailable() = False Then
Return;
EndIf;
#EndIf
// StandardSubsystems
#If MobileClient Then
Execute("StandardSubsystemsClient.BeforeStart()");
#Else
StandardSubsystemsClient.BeforeStart();
#EndIf
// End StandardSubsystems
EndProcedure
Procedure OnStart()
// StandardSubsystems
#If MobileClient Then
Execute("StandardSubsystemsClient.OnStart()");
#Else
StandardSubsystemsClient.OnStart();
#EndIf
// End StandardSubsystems
EndProcedure
Procedure BeforeExit(Cancel, WarningText)
// StandardSubsystems
#If MobileClient Then
Execute("StandardSubsystemsClient.BeforeExit(Cancel, WarningText)");
#Else
StandardSubsystemsClient.BeforeExit(Cancel, WarningText);
#EndIf
// End StandardSubsystems
EndProcedure
Procedure CollaborationSystemUsersChoiceFormGetProcessing(ChoicePurpose,
Form, ConversationID, Parameters, SelectedForm, StandardProcessing)
// StandardSubsystems
#If MobileClient Then
Execute("StandardSubsystemsClient.CollaborationSystemUsersChoiceFormGetProcessing(ChoicePurpose,
|Form, ConversationID, Parameters, SelectedForm, StandardProcessing)");
#Else
StandardSubsystemsClient.CollaborationSystemUsersChoiceFormGetProcessing(ChoicePurpose,
Form, ConversationID, Parameters, SelectedForm, StandardProcessing);
#EndIf
// End StandardSubsystems
EndProcedure
#EndRegion
OwnerForm1 property name within the structure returned by the IdleParameters function of the TimeConsumingOperationsClient common module API. The old name should be replaced with OwnerForm in all occurrences.DataExchangeEvents.OnRegisterDataImportHandlers procedure call to the OnRegisterDataImportHandlers overridable procedure of the ExportImportDataOverridable common module:Procedure OnRegisterDataImportHandlers(HandlersTable) Export
DataExchangeEvents.OnRegisterDataImportHandlers(HandlersTable);
EndProcedure
Constant.UsePerformanceMonitoringOfDataSynchronizationCatalog.DataExchangesSessionsIncludeDateInFileName attribute of the ReportMailings catalog is marked as obsolete and renamed to ObsoleteIncludeDateInFileName. Delete the attribute from the code, queries, and reports.The actions listed below are not required for migration, but we recommend that you perform them in the future.
When you migrate from earlier versions to version 3.1.9:
OwnerForm1 property name within the structure returned by the IdleParameters function of the TimeConsumingOperationsClient common module API. The old name should be replaced with OwnerForm in all occurrences.Patch releases of the library differ only in the fourth digit of the full version number, for example: 3.1.9.1, 3.1.9.20, 3.1.9.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 of the new library version, and click Update to corrective 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.
Version 3.1.8 is designed for development on 1C:Enterprise platform 8.3.21 or higher in Version 8.3.21 compatibility mode.
For the entire list of new features, see What’s new in version 3.1.8 below.
Deferred update duration report. This report groups update handlers starting from critical to less critical ones. It also displays the handler execution sequence and TOP-10 longest handlers in each group.ExecuteFunctionInMultipleThreads and ExecuteProcedureinMultipleThreads functions of the TimeConsumingOperations common module. Now working process restart in client/server mode or abnormal termination of a background job does not interrupt a multithreaded long-running operation. To ensure the new feature:
StartThreadsOfLongRunningOperations scheduled job automatically starts a state check every 60 seconds while a multithreaded long-running operation is executed.ShouldCancelWhenOwnerFormClosed parameter is added to the IdleParameters function of the TimeConsumingOperationsClient common module. The default parameter value is True if the OwnerForm1 parameter is specified and this owner form is opened.ShouldBeIsolated parameter is added to the AttachAddInFromTemplate procedure of the Common common module and the ShouldBeIsolated field is added to the AddInAttachmentParameters wizard of the CommonClient common module. For more information on add-in attachment types, see 1C:Enterprise platform documentation.Keys parameter of the ReadDataFromSecureStorage function of the Common common module to get all owner object values. You can just pass the Undefined value in this parameter.WriteDataToSecureStorage procedure of the Common common module, set the Keys parameter to Undefined and pass a structure with keys and new values to the Data parameter.ReadOwnersDataFromSecureStorage function in the Common common module API.DeleteDataFromSecureStorage function of the Common common module and pass an owner object array in the Owner parameter.SubjectAsString and RefsPresentations functions in the Common common module that receive multiple value presentations in one query. These functions supplement the existing SubjectString function.ArePredefinedItems function in the Common common module that determines whether the passed references are predefined items.PrintFromApplicationByFileName procedure in the FileSystemClient common module that allows you to print arbitrary files.MetadataObjectByFullName function in the Common common module that allows you to quickly get a metadata object by a simple full name (for example, Catalog.Companies).PropertiesOfLastJob function in the ScheduledJobsServer common module API that allows you to get the result of the last scheduled job startup. For more information, see the function description.BankManagerOverridable common module API that update service data in data areas when you import the Bank classifier in separated mode:
OnDefineBankClassifiersImportSettings. Starts the OnProcessDataArea procedure.OnProcessDataArea. Performs additional actions in a data area.Interactions common module that allow you to manage subsystem settings:
SetEmailClientUsage, EmailClientUsed.EnableSendingHTMLEmailMessages, IsSendingHTMLEmailMessagesEnabled.SetUsageOfOtherInteraction, AreOtherInteractionsUsed.ShouldBeIsolated field is added to the ConnectionParameters wizard for the ConnectionParameters parameter of the AttachAddInSSL method of the AddInsClient and AddInsServer common modules. For more information on add-in attachment types, see 1C:Enterprise platform documentation.OnDefineEditableObjectAttributes procedure in the BatchEditObjectsOverridable common module API. It allows you to change the list of object attributes edited in bulk without changing the object manager module.AttributeUnlocking common form is opened. It allows you to skip the object usage check before unlocking and view the object occurrence report. You can also change the form appearance: specify a text in the form header, add warning texts for each attribute, and display attributes in groups. To do it, use the NewAttributeToLock function of the ObjectAttributesLock common module. It allows you to set extended descriptions for attributes to lock in the GetObjectAttributesToLock functions of the object manager modules. For the implementation example, see the _DemoProducts catalog and the _DemoMain chart of accounts in the demo configuration.FormulasConstructor.AddAListOfFieldsToTheForm, in the second Parameters parameter, set the UseBackgroundSearch property to True, and add the following procedures to the form module: Attachable_FormulaEditorHandlerServer, Attachable_FormulaEditorHandlerClient, Attachable_ExecuteBackgroundSearchInFieldsList, and Attachable_SearchStringClearing. For more information, see the documentation. For the implementation example, see the SettingsStorages.ReportsVariantsStorage.Forms.SelectReportField form module.FormulaEditorHandler procedure in the FormulasConstructor common module API and new auxiliary SearchStringClearing procedure in the FormulasConstructorClient common module. They allow you to perform the background field search. For more information, see the procedure descriptions.OnDefineSettings procedure of the ContactsManagerOverridable common module, you can display contact information icons to the left of the kind title and override their appearance and contact information command handlers. You can also create and delete standard contact information commands displayed in catalogs and documents. See the example in the OnDefineSettings procedure of the ContactsManagerOverridable common module in the demo configuration.
ContactsManager common module API: DetailsOfCommands, CommandsOfContactInfoType, CommandDetailsByName, and CommandProperties. For more information, see the procedure descriptions.OnCreateAtServer procedure, set the AllowAddingFields property of the AdditionalContactInformationParameters parameter to False. See the example in the OnCreateAtServer procedure of the _DemoSalesOrder document form module in the demo configuration.OnCreateAtServer procedure of the ContactsManager common module, we recommend that you use the ItemsPlacedOnForm property of the AdditionalContactInformationParameters parameter instead of the outdated ExcludedKinds property. The ItemsPlacedOnForm property speeds up form opening when there are a lot of static items. See the example in the OnCreateAtServer procedure of the _DemoCounterparties catalog item form module in the demo configuration.AttributeName parameter in the CreateEmailMessage procedure of the ContactsManagerClient common module. This parameter displays an email address input hint in the field if an email address is not entered before sending.UserReminders common module:
OnCreateAtServerPlacementParametersOnReadAtServerOnWriteAtServerOnChangeReminderSettingsDocumentForm form of the _DemoCustomerProformaInvoice document in the demo configuration.SelectiveRegistrationMode parameter of the OnGetSettings procedure in the exchange plan manager module. The parameter can have one of the following values: Disabled, Modified, and AccordingToXMLRules.
DataExchangeServer common module API:
DefaultExchangePlanSettings.DefaultExchangeSettingOptionDetails.ContextParametersOfSettingOptionDetailsReceipt.GetWSProxy_3_0_2_1.ClassKeyFormatProperties method in the DataExchangeXDTOServer common module API. For more information, see the method description.HandleURLInNodeForm method in the DataExchangeClient common module API. For more information, see the method description.BeforeWriteCommonData method in the DataExchangeSaaS common module API. For more information, see the method description.Upon the deferred update, all application data is processed evenly in parallel update mode. However, some data might be more crucial to start operations. For example, catalogs and registers required to enter new documents are more critical than archival period data. To speed up essential data processing and unlock the main application functions faster, specify the Order property for deferred parallel update handlers. This optimizes data processing. Less important data is updated only after more critical data is processed. Example:
Handler = Handlers.Add();
Handler.Version = "1.2.3.4";
Handler.Id = New UUID("b3be66c5-708d-42c8-a019-818036d09d06");
Handler.Procedure = "Catalog.VATRates.ProcessDataForMigrationToNewVersion";
...
Handler.Procedure = Enums.OrderOfUpdateHandlers.Critical;
UpToDateDataSelectionParameters function in the InfobaseUpdate common module API. For more information, see the function description.Update handlers details tool checks if the Order property is filled correctly. It identifies cases when readable data of a more critical handler contains data updated by less critical ones. See Functions for technician – Data processors – Update handlers details.ConversationsAvailable function in the ConversationsClient common module API. It checks whether the Collaboration system is currently enabled.OpenSettingsForm procedure in the SendSMSMessageClient common module API. It allows you to avoid accessing the settings form upon placing a reference to navigate to the settings in the interface.OnDefinePrintSettings procedure of the PrintManagementOverridable common module. In the print object manager module, define the OnDefinePrintSettings and OnSpecifyingRecipients procedures. See the example in the _DemoCustomerProformaInvoice document manager module in the demo configuration.BeforePrint procedure of the PrintManagementOverridable common module, override the print form data before generating the form. For example, exclude an object from the object array to print. See the example in the BeforePrint procedure of the PrintManagementOverridable common module in the demo configuration.OnReceivePrintCommands procedure of the PrintManagementOverridable common module, set additional print command settings. For example, change visibility conditions. See the example in the OnReceivePrintCommands procedure of the PrintManagementOverridable common module in the demo configuration.PrintData template, which completely overrides the automatic field collection. Now you can create the AdditionalPrintingData template and describe there only additional fields missing from the automatic object field list. For example, these can be object fields that are physically placed in a separate register.Period field to the print data DCS. When other DCS field values are received, they will depend on a period. See the example in the AdditionalPrintingData template in the _DemoStorageLocations catalog. The periodic “Responsible person” field is added to the catalog fields. When the Storage location.Responsible person field is displayed in the document print form, its value depends on the document date.AttachableReportsAndDataProcessors subsystem. For more information, see Attachable commands – How to use the subsystem in development – Attaching reports and data processors to configuration mechanisms in the documentation.OnDefineAttachableCommandsKinds procedure of the AttachableCommandsOverridable common module to change a display option (standard or compact) for command bar groups of the ButtonGroup kind. See the compact display example for the ItemsOrderSetup group commands in the OnDefineAttachableCommandsKinds procedure of the ItemsOrderSetup common module in the demo configuration.AttachableCommandsClient.StartCommandExecution, AttachableCommands.ExecuteCommand, and AttachableCommandsClientServer.UpdateCommands. To eliminate the difficulty, the new CommandsOwner parameter is added to the PlacementParameters parameter collection of the OnCreateAtServer procedure of the AttachableCommands common module. This parameter allows you to link a form table or an object to commands displayed on the form. When you specify the CommandsOwner placement parameter, you do not need to use the Source parameter in the StartCommandExecution procedure of the AttachableCommandsClient common module, in the ExecuteCommand procedure of the AttachableCommands common module, and in the UpdateCommands procedure of the AttachableCommandsClientServer common module. See the example in the WarehouseDocumentsRegistry form of the _DemoWarehouseDocumentsRegister information register.FindSimilarStrings function in the DuplicateObjectsDetection common module API that allows you to search for similar strings. If necessary, you can enable fuzzy search using the ParametersOfSearchForSimilarStrings function of the same module.Individual and Department attributes in the Users catalog if they are not required for accounting or you link users to these catalogs differently. To do it, in the Settings parameter of the OnDefineSettings procedure of the UsersOverridable common module, set the IndividualUsed and IsDepartmentUsed properties to False. To check the attribute usage programmatically, use the IndividualUsed and IsDepartmentUsed functions of the Users common module.Users common module API:
FindByID. Finds a user in the catalog without considering whether an infobase user exists.FindByReference. Returns an infobase user by a reference to a catalog item. It returns Undefined if the infobase user does not exist or their ID is not specified in the catalog item.FindByName function of the Users common module returns a reference to an external user if the infobase user is linked to the external user. Previously, it returned an empty reference to the Users catalog.NewIBUserDetails function of the Users common module returns the following properties: Email, CannotRecoveryPassword, OpenIDAuthentication, AuthenticationWithOpenIDConnect, AuthenticationWithAccessToken, and UnsafeActionProtection. They are taken into account in the CopyIBUserProperties procedure of the Users common module. This ensures that the OpenID-Connect authentication and Access token authentication authentication types function correctly.CreatePassword function API in the Users common module to generate passwords in batch:
PasswordProperties parameter, pass the RNG property of the RandomNumberGenerator type.MinLength, Complicated, and ConsiderSettings parameters are marked as outdated and left for backward compatibility. Use the PasswordProperties parameter instead. We recommend that you check all the occurrences.Filter in the ImportParameters parameter of the DownloadEmailMessages function to selectively import emails and email headers. See the example in the Form form of the _DemoIncomingMessagesCheck data processor.BeforeGetEmailMessagesStatuses and AfterGetEmailMessagesStatuses procedures of the EmailOperationsOverridable common module. For more information, see comments to these procedures.OpenFileListForm procedure in the FilesOperationsClient common module that opens the Files list.PropertyManager common module that allow you to programmatically add new properties and their values:
AddProperty.PropertyAdditionParameters.AddPropertyValue.PropertyValAdditionParameters. For more information, see the method descriptions.OnInitialItemsFilling and OnInitialItemFilling procedures of the MessageTemplatesOverridable common module. See the example in the demo configuration.CreateTemplate function of the MessageTemplates common module API, you can predefine selected print forms, add attachments, and set the flag indicating whether owner files are attached to the email. To ensure it, the TemplateParametersDetails constructor function of the MessageTemplates common module is extended with new properties. For more information, see comments to the function.SendingOption column for the EmailRecipients parameter in the OnFillRecipientsEmailsInMessage procedure of the MessageTemplatesOverridable common module API or in the same-name procedure of the owner manager module. Valid column values: Whom, Copy, HiddenCopy, and ReplyTo.DCSParametersValues property in additional parameters of the GenerateMessage and GenerateMessageAndSend functions. Use the property when message template parameter values are generated based on a DCS query. The property allows you to dynamically pass parameters to the DCS query before you create an email or a text message from a template.MessageTemplates common module: SetUsageOfMessagesTemplates and MessageTemplatesUsed.In this section, you can read about additional migration instructions for each subsystem that you need to perform in Designer after comparison or merging. See Chapter 2.Library integration guide in SSL documentation.
To update the following overridable common modules, copy the new export procedures from the library distribution package, delete the obsolete ones, and make sure that comments, the number of parameters, and the parameter names of each procedure match their library equivalents:
DataExchangeOverridableDataExchangeSaaSOverridableCommonClientOverridableFilesOperationsOverridableContactsManagerOverridablePrintManagementOverridableFor the recommendations on how to use the new features of overridable common modules, see the What’s new for developers section above.
Public area.If you use an API, you need to rewrite the configuration code when updating to new library versions significantly less often. In this section, you can read about the necessary instructions for rare cases when such compatibility is not provided and you need to adapt 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.
CollaborationSystemUsersChoiceFormGetProcessing event handler code and the ApplicationParameters global variable comment.OnAddClientParametersOnStart procedure of the CommonOverridable common module is now called in shared mode similar to the OnAddClientParameters procedure. If the code is not intended for such call, wrap it with the following condition: If Parameters.SeparatedDataUsageAvailable Then.BeforeStartApplication handler of the CommonOverridable common module is no longer called form background job sessions. It is called only from client sessions and scheduled job sessions when the running background job procedure name is specified in one of the scheduled jobs.CheckByFIAS attribute of the ContactInformationKinds catalog is marked as outdated and renamed to DeleteValidateUsingFIAS. Delete it from the code, queries, and reports.InformationRegisters.ArchiveOfExchangeMessagesInformationRegisters.ExchangeMessageArchiveSettingsInformationRegisters.SynchronizationCircuitInformationRegisters.DataExchangeTasksInternalPublicationInformationRegisters.ObjectsUnregisteredDuringLoopOrderOfDataToProcessCommitDataProcessedByHandlersCanSignIn function of the Users common module now requires properties matching these authentication types in the IBUserDetails parameter. Previously, a structure was passed to the IBUserDetails parameter. Now you need to add the new AuthenticationWithOpenIDConnect and AuthenticationWithAccessToken properties to this structure and fill them correctly.The actions listed below are not required for migration but we recommend that you perform them in the future.
AttributeUnlocking application forms and use the standard AttributeUnlocking common form instead. It allows you to skip the object usage check before unlocking and view the object occurrence report. You can also change the form appearance: specify a text in the form header, add warning texts for each attribute, and display attributes in groups.
GetObjectAttributesToLock object manager module functions using the NewAttributeToLock function of the ObjectAttributesLock common module.CheckObjectRefs procedure of the ObjectAttributesLockClient common module is outdated. We recommend that you open the AttributeUnlocking common form instead of the native AttributeUnlocking forms where the outdated procedure is used.AttributeUnlocking common form and the application form opens with the standard LockedAttributes and Ref parameters, open this form using the AllowObjectAttributeEdit procedure of the ObjectAttributesLockClient common module.ItemsPlacedOnForm property of the AdditionalContactInformationParameters parameter instead of the outdated ExcludedKinds property when calling the OnCreateAtServer procedure of the ContactsManager common module in the form module. The ItemsPlacedOnForm property speeds up form opening when there are a lot of static items. See the example in the OnCreateAtServer procedure of the _DemoCounterparties catalog item form module in the demo configuration.Skype, Email, WebPage, Phone, and Fax types:
PropsNameComment – String column to the ContactInformationAdditionalAttributesDetails attribute of the ValueTable type.CommentContactInfoField<ContactInformationKindName> format.GroupCommentContactInfoField<ContactInformationKindName> name. Properties: Representation – None, Group – Horizontal, ShowTitle – False.CommentContactInfoField<ContactInformationKindName> name to the created group with the GroupCommentContactInfoField<ContactInformationKindName> name, disable the title display, and set the “Note” input hint.ContactInformationField<ContactInformationKindName> name to the created group with the GroupContactInfoField<ContactInformationKindName> name. Set the title display to Left or Top depending on the position of the title you pass to the ContactsManager.OnCreateAtServer procedure._DemoCounterparties catalog item form in the demo configuration.If you plan to use the infobase in SaaS mode, we recommend that you add the OnOpen event with calling the OnOpen procedure of the DataExchangeClient common module and the attachable Attachable_EndCheckAvailabilityExchangeAdministrationManage_3_0_1_1 and Attachable_URLProcessing procedures to the exchange plan form:
&AtClient Procedure OnOpen(Cancel)
DataExchangeClient.OnOpen(ThisObject, Cancel);
EndProcedure
&AtClient Procedure Attachable_EndCheckAvailabilityExchangeAdministrationManage_3_0_1_1(Result, AdditionalParameters) Export
DataExchangeClient.EndCheckAvailabilityExchangeAdministrationManage_3_0_1_1(ThisObject);
EndProcedure
&AtClient Procedure Attachable_URLProcessing(Item, URL, StandardProcessing)
DataExchangeClient.HandleURLInNodeForm(ThisObject, Item, URL, StandardProcessing);
EndProcedure
To be able to set up archiving for a node, specify an exchange plan as a parameter type of the ArchiveOfExchangeMessages common command.
To have access to objects that were not registered upon looping, in the parameter type of the ObjectsUnregisteredDuringLoop common command, specify the CRDE exchange plans.
To increase the performance when the configuration contains no exchange plan for standalone SaaS mode (a standalone workstation), delete the following event subscriptions:
StandaloneModeCheckCanWriteCommonDataStandaloneModeCheckCanWriteCommonDataDocumentStandaloneModeCheckCanWriteCommonDataConstantStandaloneModeCheckCanWriteCommonDataRecordSetStandaloneModeCheckCanWriteCommonDataCalculationRecordSetIf the configuration contains such exchange plan, copy the subscriptions to the native subsystem and specify a method that will call the DataExchangeSaaS.BeforeWriteCommonData procedure as a handler (see the example below).
Procedure _DemoStandaloneModeCheckCanWriteCommonData(Source, Cancel) Export
DataExchangeSaaS.BeforeWriteCommonData(Source, Cancel);
EndProcedure
To optimize operations with subscriptions, we recommend that you also exclude all separated objects from subscription sources.
CheckDSL.erf report.The UnloadRegister procedure of the InfobaseObjectConversion data processor object module is deleted. Now you need to call the ExportRegister function.
Requests to sources acting as email accounts are ordered. To ensure it, the DataExchangeEmailAccounts type collection is added. In the type collection, you can list all types of objects that store email parameters. The default value is CatalogRef.EmailAccounts.
OnDefinePrintSettings procedure of the PrintManagementOverridable common module and define the same-name procedure in object manager modules. The OnDefineObjectsWithPrintCommands procedure of the PrintManagementOverridable common module is outdated.
OnDefinePrintSettings procedure of their manager modules, you can specify whether the AddPrintCommands and OnSpecifyingRecipients handlers are defined in them. For more information, see the subsystem documentation.Partners, ContactPersonsForPartners, and so on) to display external user states: update the query and the value picture in the ExternalAccess column, add the OnGetDataAtServer handler and a legend. For more information, see the documentation and the _DemoPartners catalog list form in the demo configuration.SendSMSMessage. Allows you to inform distribution recipients about the password change using text messages.Print. Allows you to print the list of report distribution recipient passwords.DigitalSignature. Allows you to encrypt reports with digital signature certificates.When you migrate from earlier versions to version 3.1.8:
Patch releases of the library differ only in the fourth digit of the full version number, for example: 3.1.8.1, 3.1.8.20, 3.1.8.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 of the new library version, and click Update to corrective 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.
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.
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.
OnAddServerNotifications procedure of the CommonOverridable common module and implement handlers for its sending and receiving. See the demo application for examples.BeforePeriodicClientDataSendToServer procedure of the CommonClientOverridable common module and its processing in the UponPeriodicClientDataReceiptAtServer or AfterPeriodicClientDataReceiptAtServer procedures of the CommonOverridable common module. See the demo application for examples.WaitCompletion procedure of the TimeConsumingOperationsClient common module. Also, replace the UserMessage platform object in long-running operation procedures with the MessageToUser procedure of the Common common module. If conversations (Collaboration system) are enabled in the infobase, progress information and messages from a background job are sent to the client faster.You no longer need to separate user messages from background jobs of long-running operations from the internal progress text using the UserMessages function of the TimeConsumingOperations common module. The ReportProgress procedure of the TimeConsumingOperations common module no longer sends progress messages to a user. It is implemented by means of server notifications.
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.
Public area.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.
The actions below are optional for the migration, but we recommend that you schedule them in the future.
TimeConsumingOperationFormName function of the AdditionalReportsAndDataProcessorsClient common module is marked as obsolete. Instead of this function, use a notification passed to the Handler parameter of the ExecuteCommandInBackground procedure of the same common module.BeforeLoadDataFromSettingsAtServer and OnCreateAtServer procedures of the ToDoListOverridable common module are deleted. If these procedures are used to override the behavior in the objects attached to the to-do list, we recommended that you move them to application modules and change call locations.When migrating from earlier library versions (up to 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.
In version 1.11.5 of the universal Enterprise Data exchange format, the following features are implemented:
StateContactID field in the Contracts catalog properties. Use it to synchronize information on state contracts between applications.TRUCode property is added to the object with the Products catalog format for the Social Security Fund. The format is advanced with the TypesofPaymentSystemCashRegister enumeration.BCC and PotentialAnnualIncome fields are optional now. This advances the catalog conversion from applications where patents are considered in a reduced form.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.
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:
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:
The Access rights analysis report is generated twice as fast now.
BeforeStartApplication procedure of the CommonOverridable common module, you can perform arbitrary actions before starting the application, for example, set up the home page and other interface parameters depending on the operating mode.MetadataCatalogs, MetadataDocuments, and so on (start with Metadata).SelectMetadataObjects, you can now select the following metadata objects: CommonAttributes, HTTPServices, and ExternalDataSources. The By object kinds selection mode now also displays recognizable pictures for all metadata object kinds.HTTPDate and RFC1123Date functions are added to the CommonClientServer common module to convert dates to the RFC-1123 format and back. Use these functions to manage files downloaded from the Internet.ExecuteProcedureinMultipleThreads or ExecuteFunctionInMultipleThreads function from the TimeConsumingOperations common module API by passing the generated data set using the third parameter. For the detailed parameter description, see comments to these functions.AddressClassifierLoading form of the AddressObjects information register.IdleParameters function of the TimeConsumingOperationsClient common module is advanced:
Title property to display an arbitrary title in the window of pending long-running operation.UserNotification structure:
Picture. Defines a picture to display in a notification when a long-running operation is completed.Important. Allows you to mark a notification as important, so it will be displayed in the notification center.OnDefineSettingsFormItemsProperties procedure of the report module, you can specify the following group properties: Title, BackColor, ToolTip, ToolTipRepresentation, Height, Width, VerticalStretch, and HorizontalStretch. See the FormItemsGroupProperties procedure of the ReportsServer common module and an example in the OnDefineSettingsFormItemsProperties procedure of the UniversalReport report module.AtStartValueSelection procedure of the ReportsClientOverridable common module to override the form for selecting values in report filter fields. For example, in the RolesRights report, use the SelectMetadataObjects common form to filter by roles and metadata objects.BeforeFormationReport event. See the DefaultReportSettings function of the ReportsClientServer common module. For example, this can be required to display a warning before generating a report that is too large.AdditionalProperties properties of the NewDCSettings parameter and the Settings object of the Settings Composer (report object) of the BeforeImportSettingsToComposerreport module event is expanded. The VariantKey, PredefinedOptionKey, OptionContext, and FormParametersSelection properties are passed there. Use the properties to better consider the context of the report generation.AfterLoadSettingsInLinkerevent instead of the outdated OnDefineSelectionParameters event (see details in the DefaultReportSettings function of the ReportsClientServer common module). You can use it not only to refine the selection parameters (for example, the choice list), but also to do the same considering the loaded fixed settings. You can also call the new event on non-interactive report generation, for example, on report distribution.DisableStandardContextMenu flag to disable the context menu and report column settings. See the details in the DefaultReportSettings function of the ReportsClientServer common module.OnInitialItemsFilling and OnInitialItemFilling procedures of the ContactsManagerOverridable common module. You can also use it to set creation of folders (ContactInformationKinds catalog groups). See the demo application for examples.OpenIssuesReport procedure of the AccountingAuditClient common module: ExactMap. Use the parameter to set filter by the ChecksKind parameter when you open the report.NativeLanguagesSupportServer common module, use the ChangeRequestFieldUnderCurrentLanguage procedure that changes the description of the multilingual attribute in the query text to the attribute description according to the current user language. For example, for the first additional language, the procedure changes Description to DescriptionLanguage1. For more information, see the procedure comment.UserReminders common module: UsedUserReminders. It allows you to check whether user reminders can be used.· 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.
InfobaseUpdate common module: WriteEventToRegistrationLog, RelaunchDeferredUpdate, RestartExclusiveUpdate, FileIssueWithData, and EnableDisableDeferredUpdate. For more information, see their details.InfobaseUpdateOverridable common module: WhenPrioritizingMetadataTypes. For more information, see its details.Parameters structure that is passed to the input of the deferred update handlers is extended with the SubsystemVersionAtStartUpdates property. The full version number of the subsystem to which it belongs at application update start is passed there. For example, 3.1.5.123. Use it to branch the handler execution logic depending on the version from which the application is being updated.Update handlers details development tool (Functions for a technician - Update handlers details) to filter deferred update handlers that have a non-standard procedure for checking unprocessed data. This feature is required for control since the procedure allows you to check whether an object can be edited during a deferred update and must meet some requirements:
OnInitialItemsFilling procedure of the catalog manager module or the InfobaseUpdateOverridable common module.
OnSetUpInitialItemsFilling procedure of the catalog manager module or the InfobaseUpdateOverridable common module, for the NameOfKeyProps settings property, specify a name of the attribute whose value determines the item UUID.OnInitialItemsFilling procedures of the _DemoInfobaseUpdateSSL and _DemoProperties common modules of the demo application.OnInitialItemsFilling procedure, use the new third PopulationSettings parameter in the FillItemsWithInitialData procedure of the InfobaseUpdate common module API. The Attributes property of this parameter defines a comma-separated list of attributes to be updated. For more information, see its comments.InfobaseUpdate common module API, use the FillObjectInitialData procedure. It fills an object with the data described in the OnInitialItemsFilling procedure without writing the object.OnAddApplicationMigrationHandlers procedure of the common module whose name is specified in the ConfigurationSubsystemsOverridable.SubsystemsOnAdd procedure.Seamless and Exclusive modes are called.OnAddSubsystem procedure of the InfobaseUpdate<ShortForm> common module, specify the FillDataNewSubsystemsWhenSwitchingFromAnotherProgram property.
DoNotExecuteWhenSwitchingFromAnotherProgram property to True for these handlers.New procedures and functions for the Users common module API:
SetLoginSettings to save user authorization settings.NewDescriptionOfLoginSettings to receive a structure with default authorization settings.AddUsedPassword to add a password to the list of the active ones if the DenyReusingRecentPasswords property is filled in the authorization settings.ReportConnectionError procedure in the EmailOperationsClient common module.ExplanationOnError and ExtendedErrorPresentation functions in the EmailOperations common module.OnInitialItemsFilling and OnInitialItemFilling procedures of the PropertyManagerOverridable common module. See the demo application for examples.MarkedObjectsDeletionOverridable common module, use the BeforeDeletingAGroupOfObjects and AfterDeletingAGroupOfObjects procedures. For example, once a group of related objects is deleted, you can now clear the associated data on external resources or perform other operations that are not allowed in a delete transaction.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”).
SignatureType parameter is added to the Sign procedure of the DigitalSignatureClient module. If improved signatures are unavailable in the used 1C:Enterprise platform version, the parameter is ignored and the document is signed with a basic signature CAdES-BES.RefineSignature procedure of the DigitalSignatureClient common module. The RefineSignature and ImproveObjectSignature procedures are added to the DigitalSignature module. To determine whether signatures can be improved depending on the used 1C:Enterprise platform version, use the AvailableAdvancedSignature function.SequenceNumber parameter in the SetSignatures function of the DigitalSignature module.UpdateByOrderNumber parameter in the UpdateSignature procedure of the DigitalSignature module.NewSignatureProperties constructor function of the DigitalSignatureClientServer module as an initial value of the SignatureProperties parameter for the AddSignature and UpdateSignature procedures of the DigitalSignature common module.ServiceAccountDSS constant from distributed infobase exchange plans.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.
Public area.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.
DataForChangingMultilingualAttributes constant in distributed infobase exchange plans and their event subscriptions to record changes.CompaniesOverridable common module, the OnDefineForeignCompanyRegistrationData procedure is renamed to OnDefineForeignCompanyOfficeRegistrationData.PrintFormTemplates catalog in distributed infobase exchange plans and their event subscriptions to record changes.UseExternalUserGroups, UserAuthorizationSettings constants in distributed infobase exchange plans and their subscriptions to events for change registration.DeleteLoginSettingsUsers constant from distributed infobase exchange plans.SettingsAuthorizationInternetServicescatalog in distributed infobase exchange plans and their event subscriptions to record changes.CertificateUsersAlerts, CertificateIssuanceApplications information registers. New TimestampsServersAddresses, AddTimestampsAutomatically, DefaultCryptographySignatureType, ImproveSignaturesAutomatically, ImproveSignaturesStartingFromDate constants. Include in handlers for registering changes in distributed infobase exchange plans.AddEditDigitalSignaturesAndEncryption role with the new AddingChangeElectronicSignatures, EncryptionAndDecryptionData, DataDecryption, AddingChangeCertificatesKeysElectronicSignatureAndEncryption, AddingChangeProgramsElectronicSignatureAndEncryption roles according to the role assignment (in Russian).Information common picture is deprecated and renamed to DeleteInformation. Use the Information standard picture instead._DemoReportAppearanceBeige common template and the BeforeLoadVariantAtServer procedure of the ReportsOverridable common module.When migrating from earlier library versions (up to 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.
In version 1.11.5 of the universal Enterprise Data exchange format, the following features are implemented:
StateContactID field in the Contracts catalog properties. Use it to synchronize information on state contracts between applications.TRUCode property is added to the object with the Products catalog format for the Social Security Fund. The format is advanced with the TypesofPaymentSystemCashRegister enumeration.BCC and PotentialAnnualIncome fields are optional now. This advances the catalog conversion from applications where patents are considered in a reduced form.Enterprise Data exchange format is updated up to version 1.10.6. It is supplemented with the DeductedPersonalIncomeTax document to record information on the Unified tax payment.OnAddSubsystem procedure of the InfobaseUpdate<ShortForm> common module, specify the FillDataNewSubsystemsWhenSwitchingFromAnotherProgram property.DoNotExecuteWhenSwitchingFromAnotherProgram property to True for these handlers.CompaniesOverridable common module, the OnDefineForeignCompanyRegistrationData procedure is renamed to OnDefineForeignCompanyOfficeRegistrationData.TimestampsServersAddresses, AddTimestampsAutomatically, DefaultCryptographySignatureType, ImproveSignaturesAutomatically, ImproveSignaturesStartingFromDate. Include in handlers for registering changes in distributed infobase exchange plans. Transfer the respective changes in the CommonSettings form of the SSLAdministrationPanel data processor to the application.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
Compatibility mode property is set to None.Compatibility mode property is set to Version 8.3.14 or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, Version 8.3.16, or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, Version 8.3.16, or Version 8.3.17.For a complete list of what’s new, see the What’s new in version 3.1.5 section below.
EndUserSessions command-line option:
AdministratorName - a name of the 1C server cluster administrator.
AdministratorPassword - a password of the 1C server cluster administrator.
Message - a text of a message displayed to users as a warning about scheduled connection lock.
KeyCode - an arbitrary string to sign in to the application, despite the enabled lock (for the startup parameter /UC).
WaitMin - time to delay the application lock start, in minutes.
DurationMin - the application lock duration considering the delay, in minutes. Example:
1cv8.exe" ENTERPRISE /F "<Infobase path>" /N "Administrator" /P /C
"EndUserSessions, AdministratorName=Administrator, AdministratorPassword=1, Message=Close the application for unscheduled update, KeyCode=Update, WaitMin=5, DurationMin=30StringToDate function in the API of the CommonClientServer common module.IsNumber function in the API of the CommonClientServer common module.StringFunctions and StringFunctionsClient common modules, use the PeriodPresentationInText function.IntegrationServicesProcessing scheduled job that must be enabled when this feature is enabled. For more information about the product, see Enterprise service bus (in Russian).CalculationCellsIndicators function of the CommonClientServer common module: CalculationParameters. The parameter is of the return value type of the CellsIndicatorsCalculationParameters function of the CommonClientServer common module. In the new parameter, with the CalculateAtServer property, developers can explicitly specify whether to perform the calculation on the server or on the client, instead of automatic detection.In the DefineFormSettings procedure of the report module, change the Settings.PeriodOption property value to Fiscal:
Settings.PeriodOption = Enums.PeriodOption.Fiscal;In the DefineFormSettings procedure of the object module, change the PeriodPresentationOption settings property value to Hyperlink:
Settings.PeriodPresentationOption = Enums.PeriodPresentationOptions.Hyperlink;IBConnectionsClient common module: SetUsersSessionsTerminationMode and SetTerminateAllSessionsExceptCurrentFlag. For more information, see their comments.GetDataImportFromFileParameters procedure of the catalog manager module, you can define a value of the new ObjectPresentation property of the Parameters parameter. For example, data is loaded into the Counterparties catalog, but you need to display Customer instead. See an example in the demo application in the _DemoProducts catalog manager module.ImportDataFromFile common module, use the following constructor functions: DataImportSettings, DetailsOfDataToImportForCatalogs, NewConflictsList, and MappingTable. For more information, see the demo application, the _DemoProducts catalog manager module.To write an exchange node using a long-running operation, add the DataExchangeClient.BeforeWrite procedure call to the BeforeWrite form event handler. Also make sure that subsequent procedures, such as OnWrite, do not have the node data changed. For example, see the _DemoDataSynchronizationUsingUniversalFormat exchange plan in the demo application.
When developing rules for universal data exchange, we recommend that you use the XDTODataExchange.KeyPropertiesClass function to access key properties of an object.
Example:
KeyProperties = DataExchangeXDTOServer.KeyPropertiesClass();
Code = Left(IBData.Description, 4);
If ExportStack.Count() = 1 Then
XDTOData[KeyProperties].Insert("Code", Code);
Else
XDTOData.Insert("Code", Code);
EndIf;OnGenerateListOfSubsystemsToDevelop procedure of the InfobaseUpdateOverridable common module is deprecated. Use the OnGenerateListOfSubsystemsToDevelop procedure of the same module instead.PrintManagementClient common module, use the PrintParametersDetails constructor function. For more information, see the demo application, the DefaultForm form module of the _DemoCompanies catalog.ExternalResourcesOperationsLockOverridable common module: OnProhibitWorkWithExternalResources and ExternalResourcesOperationsLockOverridable. For more information about locking operations with external resources, see the documentation - Chapter 5. User documentation - Section 5.53 Scheduled jobs - Performing scheduled jobs when copying an infobase.AccessGroupProfiles catalog. Just list them in the OnFillSuppliedAccessGroupProfiles procedure of the AccessManagementOverridable common module. You can also use it to define folders (AccessGroupProfiles catalog groups) with built-in access group profiles.
Administrator predefined item of the AccessGroupProfiles catalog and the Administrators predefined item of the AccessGroups catalog, we recommend that you call the ProfileAdministrator and AdministratorsAccessGroup functions of the AccessManagement common module, respectively.OnFillAccessRestriction procedures of metadata object manager modules, for some rare cases when the item list depends on the rights to a certain technological object, you can now use the AccessRight and RoleAvailable functions. For more information, see the documentation.Track states of source documents only by certain print forms of a document. Use this feature if the document has numerous print forms, but only one requires an employee’s signature, and only its state should be tracked. In the API of the SourceDocumentsOriginalsRecordingOverridable common module, use the new procedure to override the list of document print forms being tracked.
FillOriginalsAccountingTableTrack the states of print forms by employees in documents that require signatures of several employees. For this:
SourceDocumentsOriginalsRecordingOverridable common module, use a new procedure that overrides the list of “multi-employee” documents: OnDefineMultipleEmployeeDocuments.SourceDocumentsOriginalsStates information register, use a new parameter for the WriteDocumentOriginalStateByPrintForms procedure: Employee.When you need to track the status of the record of the changed original state, in the API of the SourceDocumentsOriginalsRecordingClient and SourceDocumentsOriginalsRecordingServerCall common modules and the SourceDocumentsOriginalsStates information register manager module, use the Written record flag parameter of the WriteOriginalsStatesAfterPrint and WriteDocumentOriginalsStatesAfterPrintForm procedures.
For more information, see the documentation.
MessagesTemplates common module, use the EmailLink property in the GenerateMessageAndSend function return value.MessagesTemplates common module, use the EmailSendingParametersByTemplate constructor function. For more information, see its comments.Sign and VerifySignature procedures of the DigitalSignatureClient and DigitalSignature common modules, use automatic detection of XMLDSig parameters from the passed XML envelope. For this, leave the XPathSignedInfo and XPathTagToSign properties of the structure returned by the XMLDSigParameters function of the DigitalSignatureClient and DigitalSignature common modules blank.XMLEnvelope function to the DigitalSignatureClient and DigitalSignature common modules. The function description details the XML document capabilities to be considered when using various XML document formats.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:
BusinessProcessesAndTasksClientOverridableAdditionalReportsAndDataProcessorsOverridableObjectsFillingOverridableInfobaseUpdateOverridableReportsOverridableAttachableCommandsOverridableFullTextSearchServerOverridableEmailOperationsOverridableFilesOperationsOverridableGenerationOverridableHierarchyOverridableToDoListOverridablePrintManagementOverridableSourceDocumentsOriginalsRecordingOverridableSee New features for developers above for recommendations on how to take advantage of the new features of the overridable common modules.
Public area.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.
AddMetadataObjectsConnections procedure of the ReportsOverridable common module because it is no longer useful.UnresolvedIssuesCount and IssuesMonitorHyperlinkTitleStructure functions of the DataExchangeServer common module are deprecated because they are no longer useful.UsedAccessKinds and UsedAccessKindsByTables. Include only the UsedAccessKinds information register in the handlers for staging changes to the DIB exchange plans.FillAccessValuesSetsForTabularSections<End> event subscriptions, and move their types to the new OwnerWithRestrictedAccessValueSetsDocument flexible type collection. If there are no documents, in the new flexible type collection, specify the CatalogObject.MetadataObjectIDs type.WriteAccessValuesSets<End> event subscriptions, and move their types to the AccessValuesSetsOwnerObject flexible type collection.WriteDependentAccessValuesSets<End> event subscriptions, and move their types to the ExternalValuesOwnerInAccessValueSetsObject flexible type collection.AccessKeysToRegister, rename the ForExternalUsers dimension to AccessOption and set all its properties (including the type) as in the AccessOption dimension of the AccessKeysForRegisters information register. When you re-update libraries with SSL version earlier than 3.1.5 that provide the AccessKeysToRegister* information registers, retry the operation or do not transfer the AccessOption dimension properties.ForObject and ForRegister standard templates and access restrictions with these templates (improvements implemented). Also update the standard templates ByValues, ByValuesAdvanced, ByValuesAndSetsAdvanced, and ByValuesSets (added the word Right to the names of internal register rights resources for correct translation). To update the templates, we recommend that you use the SSLImplementationCheck.erf report in error correction mode.The actions below are optional for the migration, but we recommend that you schedule them in the future.
ContactInformationKind parameter of the ContactInformationPresentation function of the ContactsManager common module is deprecated and ignored. Delete it in all places where the function is called.Attach configuration extensions property in the DIB exchange plans. For example, see the _DemoDistributedInfobaseExchange exchange plan in the demo application.Attach configuration extensions property for exchange plans in standalone mode in SaaS. For example, see the _DemoStandaloneMode exchange plan in the demo application.Sign and VerifySignature procedures of the DigitalSignatureClient and DigitalSignature common modules, we recommend that you switch to automatic detection of XMLDSig parameters from the passed XML envelope. For this, leave the XPathSignedInfo and XPathTagToSign properties of the structure returned by the XMLDSigParameters function of the DigitalSignatureClient and DigitalSignature common modules blank.When migrating from earlier library versions (up to 3.1.4):
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 |
System enumeration name:
| Previous name | Current name |
|---|---|
| Enum.SMSStatus | Enum.SMSMessagesState |
System enumeration value name:
| Previous name | Current name |
|---|---|
| Enum.ContactInformationTypes.EmailAddress | Enum.ContactInformationTypes.Email |
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.
Now you can migrate to another application in SaaS mode, for example, Basic -> PROF or PROF -> CORP. To enable this feature, analyze the migration handlers specified in the OnAddApplicationMigrationHandlers procedure. If shared data is processed, set the new SharedData property to True.
Example:
Handler = Handlers.Add();
Handler.PreviousConfigurationName = "*";
Handler.SharedData = True;
Handler.Procedure = "<ModuleName>.<SharedDataHandlerProcedureName>";OnGenerateListOfSubsystemsToDevelop procedure of the InfobaseUpdateOverridable common module is deprecated. Use the OnGenerateListOfSubsystemsToDevelop procedure of the same module instead.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:
Compatibility mode property is set to None.Compatibility mode property is set to Version 8.3.14 or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or Version 8.3.16.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.
Public area.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.
BusinessProcessObject flexible collection type. Objects must be the same as links in the BusinessProcess flexible type collection.ForObject, ForRegister and access restrictions for the ForObject template. We recommend that you use the SSLImplementationCheck.erf report in the error correction mode.The actions below are optional for the migration, but we recommend that you schedule them in the future.
UpdatePeriodClosingDatesSections procedure of the PeriodClosingDates common module is moved to the ObsoleteProceduresAndFunctions area. You should delete the procedure calls as the update runs automatically.PrintFormsLanguages catalog in exchange plans of the DIB and standalone workstation (SWP).PasswordRecoveryAccount constant in exchange plans of a DIB and a standalone workstation (SWP).XMLDSigParameters function of common modules DigitalSignatureClient and DigitalSignature, we recommend that you use the values returned by default.When updating earlier library versions (to 3.1.3):
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.
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:
Compatibility mode property is set to None.Compatibility mode property is set to Version 8.3.14 or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or Version 8.3.16.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).
Public area.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.
CalendarNonWorkDaysPeriods information register in the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).UpdateHandlers information register only in the initial image of the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).The actions below are optional for the migration, but we recommend that you schedule them in the future.
OnGenerateDefferedHandlersQueues procedure of the InfobaseUpdateOverridable common module as it is not useful.ProcessGetCollaborationSystemUsersChoiceForm event handler: If CommonClient.SubsystemExists("StandardSubsystems.Conversations") Then
ModuleConversationsInternalClient = CommonClient.CommonModule("ConversationsServiceClient");
ModuleConversationsInternalClient.OnGetCollaborationSystemUsersChoiceForm(ChoiceAssignment, Form, ConversationID, Parameters,
SelectedForm, StandardDataProcessor);
EndIf;
SetDocumentPrintArea procedure of the PrintManagement common module, the Reference parameter type check has been added (only reference types are allowed). When passing a value of an incorrect type, an error will be written to the event log. Check all the locations where the procedure is used.QRCodeData function of the PrintManagement common module, use the QRCodeData or BarcodeImage function of the BarcodeGenerationServerCall common module from the 1C:Peripherals Library library version 2.1.4 and later. Improved performance on Linux OS. The previous function is marked as obsolete for backward compatibility.ChangeFilesStorageCatalog procedure of the StoredFiles common module is marked as obsolete. Instead, use the ConvertFilesToAttachedFiles function of the same common module.AttachableCommands subsystem is embedded in the application, clear the types of the RelatedDocuments common command parameters. The subsystem itself defines the objects in whose Reports submenu the Related documents command will be output.When migrating from earlier library versions (up to 3.1.2):
Migration from previous version sections for every skipped version.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.
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:
Compatibility mode property is set to None.Compatibility mode property is set to Version 8.3.14 or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or None.Compatibility mode property is set to Version 8.3.14, Version 8.3.15, or Version 8.3.16.In this section, you can find additional instructions on migrating for each subsystem. Follow these instructions after comparison or merging.
Public area.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.
AdditionalLanguage1, AdditionalLanguage2, UseAdditionalLanguage1, UseAdditionalLanguage2 and MainLanguage constants in the exchange plans of the distributed infobase (DIB).ChangeHistory common command. Now, by default, the command is placed not in the navigation panel but in the form command bar. Therefore, the command has become available not only in an object form but also in a list form. To enable hiding this command from list forms, add the following code to the OnCreateAtServer procedure of the modules of the versioned object list forms:&AtServer
Procedure OnCreateAtServer(Cancel, StandardProcessing)
// StandardSubsystems.ObjectsVersioning
ObjectsVersioning.OnCreateAtServer(ThisObject);
// End StandardSubsystems.ObjectsVersioning
EndProcedure
ScheduleOwner attribute in the Calendars catalog has been changed to the WorkScheduleOwner flexible type collection. List in the WorkScheduleOwner flexible collection type the types of those catalogs that were used as values of the ScheduleOwner attribute.OnFillObjectsToChangeDependentOnBusinessCalendars method to the CalendarSchedulesOverridable common module. If some objects dependent on business calendars are processed in the OnUpdateDataDependentOnBusinessCalendars handler, list the metadata names of these objects.CalendarNonWorkDaysPeriods information register in the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).ForObject and ForRegister. Get them from the EditAccessGroupMembers role and copy to all roles. For more information, see documentation of the Access management subsystem in the Update access restriction templates in roles subsection.LatestErrorsClassifierUpdateDate and CryptoErrorsClassifier constants from the exchange plans of the DIB.The actions below are optional for the migration, but we recommend that you schedule them in the future.
SetGroupTitleRepresentation procedure of the StandardSubsystemsServer common module is marked as obsolete and left for backward compatibility. We recommend that you delete its calls.LatinString function of the StringFunctionsClientServer common module, use the same name functions of the StringFunctions or StringFunctionsClient modules.FormattedString function of the StringFunctionsClientServer common module, use the same name functions of the StringFunctions or StringFunctionsClient module.ReplaceReferences function of the Common common module for the ReplacementParameters parameter (the Structure type), you can use the RefsReplacementParameters function in the same module. To ensure standardization control, in particular, when new required properties of the structure appear, replace all the manual structure initialization sites with a function call.DefaultLanguageCode function of the Common common module to simplify the development of applications with several interface languages. Now the function returns a code of the main application language explicitly set by the administrator upon the first application startup.OnInitiallyFillPerformersRoles, AtInitialPerformerRoleFilling to fill assignee roles, OnInitialFillingTasksAddressingObjects, OnInitialFillingTaskAddressingObjectItem to fill task addressing objects, have been added to the API of the BusinessProcessesAndTasksOverridable common module. Move the filling item code from initial filling handlers to these procedures.UpdateObjectsVersioningSettings procedure of the ObjectsVersioning common module.StartChange, StartSelection, StartClearing, StartURLProcessing, and StartCommandExecution of the AttachableCommandsClient common module instead of similar OnChange, StartChoice, Cleanup, URLProcessing, ExecuteCommand and look as follows:
Previously:
&AtClient
Procedure Attachable_ContactInformationOnChange(Item)
ContactsManagerClient.OnChange(ThisObject, Item);
EndProcedure
&AtClient
Procedure Attachable_ContactInformationStartChoice(Item, ChoiceData, StandardDataProcessor)
ContactsManagerClient.StartChoice(ThisObject, Item, StandardDataProcessor);
EndProcedure
&AtClient
Procedure Attachable_ContactInformationOnClick(Item, StandardDataProcessor)
ContactsManagerClient.StartChoice(ThisObject, Item, StandardDataProcessor);
EndProcedure
&AtClient
Procedure Attachable_ContactInformationClearing(Item, StandardDataProcessor)
ContactsManagerClient.Cleanup(ThisObject, Item.Name);
EndProcedure
&AtClient
Procedure Attachable_ContactInformationExecuteCommand(Command)
ContactsManagerClient.ExecuteCommand(ThisObject, Command.Name);
EndProcedure
&AtClient
Procedure Attachable_ContactInformationAutoComplete(Item, Text, ChoiceData, DataGetParameters, Wait, StandardDataProcessor)
ContactsManagerClient.AddressAutoComplete(Item, Text, ChoiceData, DataGetParameters, Wait, StandardDataProcessor);
EndProcedure
&AtClient
Procedure Attachable_ContactInformationChoiceProcessing(Item, SelectedValue, StandardDataProcessor)
ContactsManagerClient.ChoiceProcessing(ThisObject, SelectedValue, Item.Name, StandardDataProcessor);
EndProcedure
&AtClient
Procedure Attachable_ContactInformationURLProcessing(Item, FormattedStringURL, StandardDataProcessor)
ContactsManagerClient.URLProcessing(ThisObject, Item, FormattedStringURL, StandardDataProcessor);
EndProcedure
&AtServer
Procedure Attachable_UpdateContactInformation(Result) Export
ContactsManager.UpdateContactInformation(ThisObject, Object, Result);
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);
EndProcedureContactInformationKinds catalog, the EditInDialogOnly attribute (Boolean) is marked as obsolete. Instead, the EditingOption attribute (String) is used. Therefore, according to the rules of conversion with versions SSL 3.1.1 and earlier, you should consider conversion of values from one attribute to another for exchange plans. See an example in the demo application in the templates of the _DemoExchangeWithStandardSubsystemsLibrary225 exchange plan.AfterWriteObject event handler for rechecking the object after writing the form. For this, add the procedure call to the AfterWriteAtServer event handler:AccountingAudit.AfterWriteAtServer(CurrentObject);
FillOrderingAttributeValue procedure of the ItemsOrderSetup common module has been removed from the API. Instead, use the SetOrderingAttributeValue procedure of the same module. Make appropriate replacements in the usage locations.SSLAdministrationPanel data processor) that need to be transferred to the application. If these forms were changed in the application, merge them with the changes in the library.StartCommandExecution procedure instead of ExecuteCommand of the AttachableCommandsClient common module and look as follows:
Previously:
&AtClient
Procedure Attachable_ExecuteCommand(Command)
AttachableCommandsClient.ExecuteCommand(ThisObject, Command, Object);
EndProcedure
&AtServer
Procedure Attachable_ExecuteCommandAtServer(Context, Result) Export
AttachableCommands.ExecuteCommand(ThisObject, Context, Object, Result);
EndProcedure
&AtClient
Procedure Attachable_UpdateCommands()
AttachableCommandsClientServer.UpdateCommands(ThisObject, Object);
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);
EndProcedureSendEmailMessage function is marked as obsolete. Instead, use the SendEmail function when sending one email, and SendEmails if the SendEmailMessage function was called in the loop. To simplify migration to new functions, you can use the PrepareEmail auxiliary function whose parameters duplicate the parameters of the SendEmailMessage function in the way how to prepare an email. Make appropriate replacements.DetermineAttachedFileForm procedure of the StoredFiles common module is marked as obsolete. Instead, use the procedure of the same name of the StoredFilesClientServer common module. Revise usage locations for this procedure.AddFile function of the StoredFiles common module for the FileParameters parameter (type Structure), you can use the FileAddingOptions function of the same module. To ensure standardization control, in particular, when new required properties of the structure appear, replace all the manual structure initialization sites with a function call.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.
CalendarNonWorkDaysPeriods information register in the exchange plans of the distributed infobase (DIB) and standalone workstation (SWP).ForObject and ForRegister. Get them from the EditAccessGroupMembers role and copy to all roles. For more information, see documentation of the Access management subsystem in the Update access restriction templates in roles subsection.TabularSections with the Structure type is added to the initial data filling handlers OnSetUpInitialItemsFilling located in object manager modules. The parameter is required to fill in the object tables. Add the parameter to the initial filling handlers of the same names that have been added earlier.When migrating from earlier library versions (up to 3.1.1):
Migration from previous version sections for every skipped version.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.
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.
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.
In this section, you can find additional instructions on migrating for each subsystem. Follow these instructions after comparison or merging.
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.
AddressClassifier:
ClassifierImported.AddressClassifierClient:
OpenUpdateCheckForm;OpenAddressClassifierImportForm.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.BusinessProcessesAndTasksServerCall common module:
NotifyPerformersOnNewTasks;CheckTasks.ConvertFromCurrencyToCurrency function of the CurrenciesExchangeRatesClientServer common module.ReportsOptions common module:
UsedSections;AddFullUpdateHandlers;GetRef.OpenMailMessageFormSend procedure of the InteractionsClient common module.AdditionalReportsAndDataProcessors:
GetExternalDataProcessorObject;OnCreateAtServer;RunAssignedCommandAtServer.AdditionalReportsAndDataProcessorsServerCall:
GetExternalDataProcessorObject.AdditionalReportsAndDataProcessorsClient:
ShowСommandExecutionResult;RunAssignedCommandAtClient.AdditionalReportsAndDataProcessorsClientServer:
CommandTypeSafeModeScenario.AdditionalReportsAndDataProcessorsInSafeModeInterface;AdditionalReportsAndDataProcessorsScheduledJobs.GetAccessEventUse function of the PersonalDataProtection common module.ContactsManager common module:
ObjectContactInformationValues;ObjectContactInformationTable;FillObjectsContactInformation;FillObjectContactInformation;PreviousContactInformationXMLFormat;PreviousContactInformationXMLStructure;AddressInARCAFormat;AddressesInfo;AddressInfo;ContactInformationAddressState;ContactInformationAddressCity;ValidateAddress;ContactInformationParameters.1C:Enterprise platform updated to version 8.3.13 changed its behavior, in the form modules with integrated contact information, add the Export keyword to the previously placed Attachable_UpdateContactInformation procedures:
Previously:
Procedure Attachable_UpdateContactInformation(Result)Now:
Procedure Attachable_UpdateContactInformation(Result) ExportCalendarSchedules common module:
GetDatesArraysByCalendar;GetDateByCalendar;GetDatesDiffByCalendar;RussianFederationProductionCalendar;GetWorkdaysDates.Cloud Technology Library in the application, delete the previously inserted code of the Calendar schedules subsystem from the OnProcessDataArea procedure of the ClassifiersOperationsSaaSOverridable common module.UserRemindersClientServerOverridable common module with an obsolete API.MessageExchange exchange plan from Cloud Technology Library in the MessagesQueueEndpoint flexible collection type and exclude all other types.OnDisableUpdateHandlers procedure of the InfobaseUpdateOverridable common module.PrintManagement:
GetLocalPrintFilesDirectory;OnCreateAtServer.PrintManagementClient:
RunConnectedPrintCommand;StartCommandUpdate.PrintManagementClientServer:
UpdateCommands.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) ExportUsers common module:
ReadIBUser;WriteIBUser;SystemAdministratorRole.ObjectPrefixationClientServer common module:
GetCustomPrefix;GetNumberToPrint.SafeModeManager common module:
ExecuteConfigurationMethod;ExecuteObjectMethod;ExecuteInSafeMode;CalculateInSafeMode.AttachedFiles;AttachedFilesClient;AttachedFilesClientServer;FileFunctions.OnChangePresentation procedure of the ObjectsPresentationsDeclensionClient common module is no longer supported. In the declension object form modules where it is called:
DeclinePresentation procedure of the ObjectsPresentationsDeclensionClient common module.Attachable_DeclinePresentationForAllCases procedure.IndividualsClientServer common module:
FullName;IndividualInitialsLastName.ForObject and ForRegister in all roles. Use standard templates from the EditAccessGroupMembers role and copy them to all the roles. For bulk update, use the Restriction templates tab in the All access restrictions form (filter by the template name, select all the lines, and click Edit). You can also use the SSLImplementationCheck.erf report in the error correction mode.The actions below are optional for the migration, but we recommend that you schedule them in the future.
IsOSXClient procedures of the Common and CommonClient common modules are obsolete. Use IsMacOSClient of the same common modules instead. Revise call sites for this procedure.OnWriteAtServer procedure of the ObjectPresentationDeclension common module is obsolete. Use OnWriteDeclensionObjectForm of the same common module instead. Revise call sites for this procedure.DeclineFullNameUsingComponent procedure of the ObjectPresentationDeclension common module is obsolete. Use DeclineFullName of the same common module instead. Revise call sites for this procedure.DeclinePresentationForAllCases procedure of the ObjectsPresentationsDeclensionClient common module is obsolete. Use DeclinePresentation of the same common module instead. Revise call sites for this procedure.ProcessDeclensionCommand procedure of the ObjectsPresentationsDeclensionClient common module is obsolete. Use ShowDeclension of the same common module instead. Revise call sites for this procedure.OnCreateAccessValueForm procedure of the AccessManagement common module.
Attribute, Items, ValueType, CreateNewAccessValue parameters are marked as obsolete and left for backward compatibility. Instead, use the AdditionalParameters structure passed by the second parameter. Check all the usage locations.AdditionalParameters parameter has the ParametersOnCreateAccessValueForm function in the AccessManagement common module.MetadataObjectIDs catalog. It ensures that when changing access restrictions in the manager modules, you do not need to add predefined items upon the application customization and using application extensions.SSLImplementationCheck.epf report adds predefined items of all the registers to the MetadataObjectIDs catalog in the correction mode. We recommend that you run the report in the correction mode.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.
ForObject and ForRegister. Get them from the EditAccessGroupMembers role and copy to all roles. For bulk update, use the Restriction templates tab in the All access restrictions form (filter by the template name, select all the lines, and click Edit). Or use the SSLImplementationCheck.erf report in the error correction mode.OnFillListsWithAccessRestriction procedure of the AccessManagementOverridable common module in the AfterWriteAtServer event handler of the object form (all the forms with the main object attribute):// StandardSubsystems.AccessManagement
AccessManagement.AfterWriteAtServer(ThisObject, CurrentObject, WriteParameters);
// End StandardSubsystems.AccessManagement
ForObject and ForRegister in all roles. Use standard templates from the EditAccessGroupMembers role and copy them to all the roles. For bulk update, use the Restriction templates tab in the All access restrictions form (filter by the template name, select all the lines, and click Edit). You can also use the SSLImplementationCheck.erf report in the error correction mode.UsersAndRightsSettings form of the SSLAdministrationPanel data processor if used.ForObject and ForRegister to run on platform version 8.3.15. Get them from the EditAccessGroupMembers role and copy to all roles. For bulk update, use the Restriction templates tab in the All access restrictions form (filter by the template name, select all the lines, and click Edit). Or use the SSLImplementationCheck.erf report in the error correction mode.UsersAndRightsSettings form of the SSLAdministrationPanel data processor if used.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:
1C:Application update portal (https://releases.1c.ru), then on publishing new version 1.2.1, specify in the Minimum version to startup handlers property the version where 2.3.3 SSL is used (here, it is 1.1.1). Then the required startup will occur automatically on updating the application in 1С:Enterprise mode.OnDetermineUpdateAvailability procedure of the InfobaseUpdateClientOverridable common module:Procedure OnDetermineUpdateAvailability(Val DataVersion) Export
AvailableVersion = "1.1.1";
DataVersionWithoutBuildNumber = CommonClientServer.ConfigurationVersionWithoutBuildNumber(DataVersion);
Result = CommonClientServer.CompareVersionsWithoutBuildNumber(DataVersionWithoutBuildNumber, AvailableVersion);
If DataVersion <> "0.0.0.0" And Result < 0 Then
Message = NStr("en = 'Update from version %2 was attempted.
|You can update only from version %1 or later.
|Restore the infobase from a backup
|and try to update again as described in file 1cv8upd.htm'");
Message = StringFunctionsClientServer.SubstituteParametersToString(Message, AvailableVersion, DataVersion);
RaiseException Message;
EndIf;
EndProcedure
When migrating from earlier library versions (up to 3.0.1):
Migration from previous version sections for every skipped version.For example, if you are migrating from version 3.0.1.1 directly to version 3.1.1.123, sequentially follow the instructions of all the sections: