Version 3.1


What’s new in versions

Version 3.1.7

Version 3.1.6

Version 3.1.5

Version 3.1.4

Version 3.1.3

Version 3.1.2

Version 3.1.1

Version 3.1.7

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

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

What’s new in version 3.1.7

Core

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

Users

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

What’s new for developers in version 3.1.7

Core

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

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

Migration from version 3.1.6 to version 3.1.7

Mandatory migration actions

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

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

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

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

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

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

Core

Optional migration actions

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

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

How to migrate from earlier versions to version 3.1.7

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

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

Migration to corrective releases 3.1.7

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

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

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

From version 3.1.7.79 and earlier

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

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

Version 3.1.6

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

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

What’s new in version 3.1.6

Core

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

Report options

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

Business interactions

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

Data exchange

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

Infobase version update

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

Print

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

Users

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

Email management

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

Report distribution

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

Access management

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

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

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

Digital signature

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

What’s new for developers in version 3.1.6

Core

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

Report options

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

Contact information

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

Data integrity

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

National language support

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

User reminders

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

Data exchange

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

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

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

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

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

Infobase version update

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

Users

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

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

Email management

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

Properties

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

Marked objects deletion

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

Access management

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

Digital signature

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

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

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

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

DSS service digital signature

  • Exclude the ServiceAccountDSS constant from distributed infobase exchange plans.

Migration from version 3.1.5 to version 3.1.6

Mandatory migration actions

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

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

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

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

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

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

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

Optional migration actions

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

Core

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

How to migrate from earlier versions to version 3.1.6

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

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

Core

Migration to corrective releases 3.1.6

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

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

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

From version 3.1.6.257 and earlier

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

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

From version 3.1.6.209 and earlier

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

From version 3.1.6.198 and earlier

Digital signature

From version 3.1.6.180 and earlier

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

From version 3.1.6.159 and earlier

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

From version 3.1.6.118 and earlier

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

Version 3.1.5

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

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

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

What’s new in version 3.1.5

Report options

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

User sessions

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

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

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

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

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

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

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

Data exchange

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

File management

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

Access management

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

Source document originals recording

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

Digital signature

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

New features for developers in version 3.1.5

Core

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

Report options

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

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

      Settings.PeriodPresentationOption = Enums.PeriodPresentationOptions.Hyperlink;

User sessions

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

Import data from spreadsheets

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

Object attribute lock

Data exchange

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

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

    Example:

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

Infobase version update

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

Scheduled jobs

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

Access management

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

Source document originals recording

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

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

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

    For more information, see the documentation.

Message templates

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

Digital signature

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

Migration from version 3.1.4 to version 3.1.5

Required migration actions

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

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

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

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

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

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

Report options

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

File management

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

Optional migration actions

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

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

How to migrate from earlier versions to version 3.1.5

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

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

Common module names:

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

Procedure and function names:

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

Metadata object names:

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

Migration to corrective releases 3.1.5

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

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

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

From version 3.1.5.262 and earlier

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

    Example:

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

From version 3.1.5.208 and earlier

Core

From version 3.1.5.192 and earlier

File management

From version 3.1.5.180 and earlier

File management

From version 3.1.5.163 and earlier

File management

From version 3.1.5.146 and earlier

Core

From version 3.1.5.132 and earlier

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

Version 3.1.4

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

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

Migration from version 3.1.3 to version 3.1.4

Required migration actions

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

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

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

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

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

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

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

Optional migration actions

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

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

File management

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

How to migrate from earlier versions to version 3.1.4

When updating earlier library versions (to 3.1.3):

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

Migration to corrective releases 3.1.4

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

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

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

From version 3.1.4.232 and earlier

Core

Version 3.1.3

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

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

Migration from version 3.1.2 to version 3.1.3

Required migration actions

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

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

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

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

Optional migration actions

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

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

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

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

How to migrate from earlier versions to version 3.1.3

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

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

Migration to corrective releases 3.1.3

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

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

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

From version 3.1.3.303 and earlier

Core

From version 3.1.3.250 and earlier

Core

From version 3.1.3.215 and earlier

Core

From version 3.1.3.187 and earlier

Core

Version 3.1.2

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

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

Migration from version 3.1.1 to version 3.1.2

Required migration actions

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

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

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

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

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

Optional migration actions

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

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

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

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

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

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

Migration to corrective releases 3.1.2

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

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

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

From version 3.1.2.430 and earlier

Core

From version 3.1.2.352 and earlier

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

From version 3.1.2.306 and earlier

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

From version 3.1.2.166 and earlier

Contact information

From version 3.1.2.196 and earlier

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

From version 3.1.2.202 and earlier

From version 3.1.2.229 and earlier

Core

How to migrate from earlier versions to version 3.1.2

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

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

Version 3.1.1

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

Migration from version 3.0.3 to version 3.1.1

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

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

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

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

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

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

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

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

    Next, click Set.

    Warning

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

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

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

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

Required migration actions

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

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

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

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

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

      Procedure Attachable_UpdateContactInformation(Result)
    • Now:

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

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

  • Previously:

    Procedure Attachable_ExecuteCommandAtServer(Context, Result)
  • Now:

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

Optional migration actions

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

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

Migration to corrective releases 3.1.1

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

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

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

From version 3.1.1.99 and earlier

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

From version 3.1.1.120 and earlier

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

From version 3.1.1.136 and earlier

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

From version 3.1.1.151 and earlier

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

How to migrate from earlier versions to version 3.1.1

Limited update for the versions earlier than 2.3.3

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

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

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

    AvailableVersion = "1.1.1";

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

EndProcedure

How to update from versions 2.3.3 – 3.0.1

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

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

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

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