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

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

What’s new in version 3.1.11

Core

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

Contact information

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

Data exchange

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

Conversations

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

Print tools

  • For better usability, the print form template editor now features buttons for aligning text within cells: auto-align and wrap. Also, by clicking More actions > Text alignment, you can access further text alignment commands. Text formatting buttons are now disabled when an image is selected in the editor.
  • Improved usability of the print form template list, which can now be sorted by UI sections or objects such as catalogs and documents. (see Administration – Print forms, reports, and data processors – Print form templates).

Scheduled jobs

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

Access management

  • The functionality for analyzing user access rights to application documents and catalogs has been enhanced to account for record-level security (RLS) restrictions. To support this, two contextual reports are now available in the document lists, document cards, and catalog items (More actions > Reports):
    • The User rights to object contextual report allows you to view the rights associated with a specific document, catalog item, or any other object, taking into account RLS restrictions. To access the report, click Rights to document or Rights to catalog item in More actions > Reports.
    • The User rights by allowed value contextual report can be opened in the cards of companies, warehouses, cash accounts, and other objects (access kinds) that define access restrictions. This report shows which users have access to data related to the selected company (warehouse, cash account, etc.). For example, it may show that three users have the rights to view orders and enter invoices for the company Orion LLC. To access the report, click Rights by allowed value in More actions > Reports.
  • For added convenience, the Access rights analysis report can now open the Role rights report directly from a table drill-down. The drill-down options for a specific field are now accessible through the right-click context menu.

Message templates

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

Digital signature

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

What’s new for developers in version 3.1.11

  • GetFilesFromInternetLocalization
  • FilesOperationsLocalization

Core

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

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

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

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

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

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

Report options

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

Add-ins

  • The procedure AttachAddInFromTemplate and the function AttachAddInFromTemplateAsync in the CommonClient common module now return the symbolic name and location from which the add-in was attached: either the template name or a URL to the newer version of the add-in from the catalog. Using the symbolic name and location, you can check the add-in attachment using the platform method CheckAddInAttachment. Set this property only when additional information about the add-in installation is redundant (for example, if the user has already been informed).

Contact information

  • For details on field composition and other specifics, see comments to these functions.

Data integrity

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

National language support

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

Data exchange

  • Standard transport data processors:
    • ExchangeMessageTransportCOM: direct connection to the peer infobase via a COM connection (with the COM ID). See the TransportID parameter in the data processor’s manager module.
    • ExchangeMessageTransportEMAIL: exchange via email (EMAIL ID).
    • ExchangeMessageTransportFILE: exchange via a local or network directory (FILE ID).
    • ExchangeMessageTransportFTP: exchange via an FTP server (FTP ID).
    • ExchangeMessageTransportGoogleDrive: exchange via Google Drive cloud storage (GoogleDrive ID).
    • ExchangeMessageTransportHTTP: exchange over the Internet via an HTTP service (HTTP ID).
    • ExchangeMessageTransportSM: for exchange between areas in SaaS applications (SM ID).
    • ExchangeMessageTransportSM: exchange over the Internet using a web service (WS ID).
    • ExchangeMessageTransportESB1C: exchange via 1C:Bus (ESB1C ID).
  • The DataExchangeServer common module’s API is augmented with the PerformExchangeAction procedure. For more information, see the procedure description.
  • The DataExchangeClient common module’s API is augmented with the procedures OpenInfobasePrefixChangeForm and OpenFormForDeletingSyncAlerts. For more information, see the procedure descriptions.
  • The following outdated procedures and functions have been marked as deprecated:
    • Common module DataExchangeClient:
      • OpenDataExchangeSetupWizard
    • Common module DataExchangeServer:
      • AllConfigurationExchangeMessagesTransports
      • FTPDirectoryExists
      • ExecuteExchangeActionForInfobaseNode
    • Common module DataExchangeCached:
      • IsStandaloneWorkplace
      • FindExchangePlanNodeByCode
    Remove all references to them from your code, or replace them with the procedures and functions specified in the comments.

Infobase version update

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

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

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

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

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

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

Print tools

  • To facilitate the development of default print commands in PrintManagement.CreatePrintCommandsCollection, two new properties have been added:
    • DefaultPrintForm (Boolean)
    • PrintFormDescription (String)
  • The key attributes Organization and Recipient must be populated from the document data for each document type in the OnDefineKeyAttributesOfDefaultPrintForms procedure of the PrintManagementOverridable common module. See the example in the demo configuration.
  • To retrieve the stored names of default print forms, you can use functions DescriptionOfGeneratedDefaultPrintForm and DescriptionsOfGeneratedDefaultPrintForms in the PrintManagement common module. These functions can be used, for example, when generating reconciliation statements.

Network download

Licensed update verification

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

File management

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

Properties

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

Access management

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

Source document tracking

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

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

    For more information, see the procedure description.

  • New procedures in the SourceDocumentsOriginalsRecordingOverridable common module API:

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

    For more information, see the procedure descriptions.

  • New functions in the SourceDocumentsOriginalsRecording common module API:

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

    For more information, see the procedure descriptions.

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

Digital signature

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

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

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

Migrating from version 3.1.10 to version 3.1.11

Mandatory steps

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

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

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

Modified localizable common modules:

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

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

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

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

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

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

    Now:

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

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

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

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

  • Exclude the ExchangeMessageTransportSettings catalog from the DIB exchange plans.

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

Optional steps

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

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

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

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

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

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

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

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

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

Business processes and tasks
  • Instead of using obsolete procedures and functions from the BusinessProcessesAndTasksServerCall common module, call their counterparts from the BusinessProcessesAndTasksServer common module.
Add-ins
  • The AddInServerCall.AddInInformation function is deprecated. Instead, call AddInsServer.AddInInformation.
Period-end closing dates
  • To be able to write information and accumulation registers in the Update, Merge, and Delete modes on 1C:Enterprise v.8.3.25 and later, you need to adjust the implementation of overridable procedures BeforeCheckPeriodClosing, BeforeCheckOldDataVersion, and BeforeCheckNewDataVersion of the PeriodClosingDatesOverridable common module. The Replace property, which is passed to these procedures as part of the AdditionalProperties structure of a record set, can now have not only a Boolean type but also a ReplacementMode type (for more details, see the comments to these procedures).
Additional reports and data processors
  • Instead of using obsolete functions of the AdditionalReportsAndDataProcessorsServerCall common module, call their counterparts from the AdditionalReportsAndDataProcessors common module: AttachExternalDataProcessor and ExternalDataProcessorObject.
Contact information
  • To improve code readability and maintainability, we recommend using the AddressParameters, EmailAddressParameters, and PhoneParameters constructor functions (depending on the contact information type) instead of the ContactInformationKindParameters function of the ContactsManager common module.
Print tools
  • Instead of the obsolete function PrintManagementServerCall.TemplatesAndObjectsDataToPrint, call PrintManagement.TemplatesAndObjectsDataToPrint and use the server mechanism to generate print forms based on Office document templates.
File management
  • The FilesOperationsOverridable.OnPrintFileWithStamp procedure is deprecated. Instead, use DigitalSignatureOverridable.OnGetDigitalSignatureStamp.
Source document tracking
  • The ambiguity in setting the state of an original document has been resolved in cases where a user could create two items with the same state name in the catalog, which previously resulted in a random state being assigned. Instead of the obsolete procedures WriteCommonDocumentOriginalState and WriteDocumentOriginalStateByPrintForms of the InformationRegisters.SourceDocumentsOriginalsStates manager module, call the same procedures from the SourceDocumentsOriginalsRecording module. The new procedures take a reference to a state catalog item as the 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.

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

Migrating from earlier versions to version 3.1.11

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

Migrating to patch releases 3.1.11

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

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

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

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

Be the first to know tips & tricks on business application development!

A confirmation e-mail has been sent to the e-mail address you provided .

Click the link in the e-mail to confirm and activate the subscription.