Version 3.1.9


Version 3.1.9

Version 3.1.9 is designed for development on 1C:Enterprise platform 8.3.21 or higher in Version 8.3.21 compatibility mode.

For the entire list of new features, see What’s new in version 3.1.9 below.

What’s new in version 3.1.9

Surveys

  • Improved the questionnaire interface: simplified navigation through sections, increased the font of question headings, introduction, and closing statement of questionnaires, implemented the input hint for the field with a comment to a question.
  • You can set maximum and minimum values for numerical questions and enter values using the slider.
  • You can also specify hints for numeric and predefined response options.
  • Basic questions have indicators that show respondents can refuse to answer the question if they are unable to do so.
  • As respondents fill out the questionnaire, required basic questions that have already been answered are highlighted in green.

Report options

  • To ensure optimal viewing experience, reports for smartphones are not displayed on computers and tablets, and reports for computers and tablets are not displayed on mobile devices. However, in the report panel settings, you can set the visibility of reports regardless of devices for which they were initially intended:
    • Reports for Computers and tablets are best viewed on devices with wider screens as they may contain tables with numerous columns.
    • Reports for Smartphones are optimized for devices with narrower screens and have fewer fields.
    • Reports for Any device are equally convenient to view.
  • When migrating to a new version, the report visibility remains the same in all report panels if you use the standard 1C:Enterprise application or web client. In the mobile application, reports used for computers and tablets will be hidden. To make them visible, select Show reports for computers and tablets in the report panel settings.
  • Now you can view reports in the mobile client even in standalone mode when there is no connection to the server. To do this, in the standard application, save the required report snapshots from the report forms in advance (click More actions – Save report snapshot). After that, you can open the snapshots in the main section of the mobile application (click Main – Report snapshots). You can also update previously saved snapshots from the report panel or the report form (click More actions – Report snapshots).

Add-ins

  • Now you can set up and transfer add-ins between databases faster and easier. In the Add-ins catalog, you can import and export add-ins in bulk from files or directories. To do this, go to AdministrationPrint forms, reports, and data processorsAdd-ins.

Bulk edit

  • Accelerated bulk attribute editing in client/server mode (AdministrationSupport and serviceData processing). Now you can go to AdministrationGeneral settingsPerformance and set the maximum number of concurrent threads. Note that this parameter must be based on the technical capabilities of the server. Its value cannot exceed the number of processor cores on the server.

Data integrity

  • Accelerated data integrity checks in client/server mode (AdministrationSupport and serviceData processing). Now you can go to AdministrationGeneral settingsPerformance and set the maximum number of concurrent threads. Note that this parameter must be based on the technical capabilities of the server. Its value cannot exceed the number of processor cores on the server.

Duplicate cleaner

  • Accelerated the duplicate cleanup in client/server mode (AdministrationSupport and serviceData processing). Now you can go to AdministrationGeneral settingsPerformance and set the maximum number of concurrent threads. Note that this parameter must be based on the technical capabilities of the server. Its value cannot exceed the number of processor cores on the server.

Report distribution

  • Improved the usability of the Report distribution rules list (AdministrationPrint forms, reports, and data processors). If you have many personal report distributions, you can group them.
  • In the report distribution card, you can:
    • Insert report content into an email body to quickly view reports sent by email. To do this, on the Delivery tab, select the Insert reports into email body check box.
    • Click Template preview to open the email preview as plain text or HTML depending on the selected email format.
    • Set email importance to draw a recipient’s attention to an important email: High, Normal, or Low.
  • Now when you send reports, the delivery progress is displayed.
  • When you send reports to a large number of recipients, some of them might not receive the email. It might happen due to an increased load on mail servers or their temporary unavailability. In such cases, the application automatically attempts to send undelivered reports once again. You can also resend undelivered reports manually.
  • Accelerated the report distribution in client/server mode. Now you can go to AdministrationGeneral settingsPerformance and set the maximum number of concurrent threads. Note that this parameter must be based on the technical capabilities of the server. Its value cannot exceed the number of processor cores on the server.

File management

  • Now you can scan documents and images on 64-bit Microsoft Windows. To do it, click FilesAddFrom scanner.
  • Improved the usability of the scan settings. Now you can use the slider to adjust the compression ratio for JPG files. Tooltips will help you select the key settings:
    • Resolution
    • Single-page image format
    • How to convert images into TIFF and PDF
  • To scan multipage TIFF and PDF documents, you no longer need to install ImageMagick.
  • If you also use 1C:Document Management, you can add and view attachments to catalogs and documents in the same way as when you store files in the application. To do it, click on the paperclip icon and the hyperlink in the command bar of a catalog or document item form.

Properties

  • Now you can use labels to mark catalogs and documents with multi-colored label icons (AdministrationGeneral settingsProperties). The labels are displayed as pictures or text and can be edited in forms of catalogs and documents. Besides, you can see a label column and its legend in lists and filter the lists by labels.

What’s new for developers in version 3.1.9

Core

  • New AddToList2 procedure in the CommonClientServer common module. You can use the procedure to combine value lists. If the destination list already contains an item with a value to add, the item presentation is changed to the new one from the source list.
  • New optional ExpectedValues parameter in the CommonClientServer.CheckParameter procedure. You can use the parameter to check possible parameter values of procedures and functions. For example, if the Color parameter of the SpecifyColor procedure can have only three possible string values Red, Yellow, and Green, then you can check the parameter value as follows: ~~~ CommonClientServer.CheckParameter(“Colors.SpecifyColor”, “Color”, Color, Type(“String”), “Red,Yellow,Green”); ~~~
  • New StandardSubsystemsServer.IsTrainingPlatform function in the API. The function allows branching code that depends on restrictions of the training platform version.
  • In client code, use theIsBaseConfigurationVersion and IsTrainingPlatform functions of the StandardSubsystemsClient common module and CommonClientServer.COMConnectorName instead of obsolete same-name properties of the structure returned by the ClientRunParameters and ClientParametersOnStart functions of the StandardSubsystemsClient common module.
  • New ValueToJSON and JSONValue functions in the Common module. These functions simplify value conversion into and from the JSON format.
  • New IsDistributedInfobase function in the Common common module. You can use the function to check whether the infobase is distributed.

Report options

  • Now you can develop separate report options that will be optimized by width and content specially for the mobile client. Depending on devices for which a report option is used, you can select Computers and tablets, Smartphones, or Any device.
  • To ensure optimal viewing experience, reports for smartphones are not displayed on computers and tablets, and reports for computers and tablets are not displayed on mobile devices. When developing a report option, you can specify for which devices it is used (the Enum.ReportOptionPurposes type) in the CustomizeReportsOptions procedure in the report manager module or centrally in the ReportsOptionsOverridable common module:
  1. ForComputersAndTablets. A report option must be displayed on report panels only in the thin client, thick client, or web client of 1C:Enterprise. This is a default value.
  2. ForSmartphones. A report option must be displayed on report panels only in the mobile application.
  3. ForAnyDevice. A report option must be displayed in any 1C:Enterprise applications.
  • You can specify devices for which a report option is used in the CustomizeReportOptions procedure in the report manager module or in the CustomizeReportOptions procedure of the ReportsOptionsOverridable common module. For example:
  OptionDetails = ReportsOptions.OptionDetails(Settings, DescriptionOfReport, "IncomeAndExpensesForEnterpriseMobileClient");
  OptionDetails.Description = NStr("en='Company's income and expenses (mobile)'");
  OptionDetails.LongDesc = NStr("en= 'Itemized analysis of income and expenses for the entire company with dimension selection.'");
  OptionDetails.Purpose = Enums.ReportOptionPurposes.ForSmartphones;
  • Besides, you can save report snapshots to view them later in the mobile client in standalone mode. To manage the report snapshots in the application, you can use the following procedures and functions in the manager module of the ReportsSnapshots information register:

    • UserReportsSnapshots
    • SaveUserReportSnapshot
    • UpdateUserReportsSnapshots

    For more information, see the description of the procedures and functions.

  • To view reports in the mobile client in standalone mode when there is no connection to the server, set up data export to an offline configuration:

  1. Configure object registration in the exchange plan when saving the objects above. For example, you can use the OnWrite event subscription. You can find the example in the demo configuration: EventSubscriptions._DemoRegisterChangesForStandaloneMode and EventSubscriptions._DemoRegisterChangesForStandaloneModeRegisters.
  2. Configure the data exchange start in the background with enabling the idle handler at the start of the mobile client session if the main server is available. You can find the example in the demo configuration: the OnStart procedure of the CommonClientOverridable common module.
  3. Extend the offline configuration with all metadata objects (for example, common modules) used in the algorithm of data export and import to the offline configuration. You can find the example in the demo configuration: the _DemoExchangeMobileClientOfflineServerCall common module.
  4. Add a role that grants full rights to the exchange plan to exchange data with the offline configuration. You can find the example in the demo configuration: the _DemoExchangeMobileClient role. Add access rights for metadata objects involved in the exchange to this role. You can find the example in the demo configuration: Constants._DemoExchangePlanNewNodeCode. Add this role and the AddEditReportsSnapshots role to access group profiles of mobile client users.

Import data from spreadsheets

  • Simplified import of additional attributes and properties when importing data from a file using a custom algorithm. Now property values of an owner object are saved automatically. To enable it, call the WriteObjectProperties API procedure of the ImportDataFromFile common module and pass a reference to the property owner object and a string of data to import as parameters.

Contact information

  • Now you can locate the + Phone number, address button to the right or to the left of the group of contact information fields. To do it, use the PositionOfAddButton property in the OnDefineSettings procedure parameter of the ContactsManagerOverridable common module. By default, the button is displayed on the left.
    • Besides, you can use the CommentFieldWidth parameter to specify the exact width of the Comment field for contact information fields with the following types: Phone, Email, Skype, WebPage, and Fax.

Data exchange

  • New GetWSProxy_3_0_2_2 function is added to the DataExchangeServer common module API. For more information, see the function description.
  • New AfterImportObject and OnRegisterDataImportHandlers procedures are added to the DataExchangeEvents common module API. For more information, see the procedure description.

Users

  • Now you can use the new UsersClient.IsFullUser function in the client code instead of the obsolete IsFullUser,IsSystemAdministrator, andHasAccessForUpdatingPlatformVersion properties of the structure returned by the ClientRunParameters and ClientParametersOnStart functions of the StandardSubsystemsClient common module.

File management

  • TheIsFullUser property of the structure returned by the FilesOperations.FilesOperationSettings function is now obsolete. Instead, use the Users.IsFullUser and UsersClient.IsFullUser functions.
  • New procedures and functions in the FilesOperationsClient common module for scanning images:
    • AddFromScanner
    • CombineToMultipageFile
    • ScanCommandAvailable and ScanAvailable
    • Additional procedures and functions:AddingFromScannerParameters, GraphicDocumentConversionParameters, ScanParameters, ConversionResultTypeBinaryData, ConversionResultTypeFileName, and ConversionResultTypeAttachedFile
    For more information, see the description of the procedures and functions.
  • New API procedures and functions for managing the scan settings:
    • NewSaveUserScanSettings procedure andGetUserScanSettings function in the FilesOperations and FilesOperationsClient common modules.
    • New UserScanSettings function in the FilesOperationsClientServer common module.
  • For more information, see the description of the procedures and functions.

Report distribution

  • Sometimes besides the standard parameters of an email subject and text, you might need additional parameters, for example, First name, Last name, and other. To specify such additional parameters, you can use the OnDefineEmailTextParameters and OnReceiveEmailTextParameters procedures of the ReportMailingOverridable common module. For more information, see comments to these procedures.

Properties

  • Now you can use labels to mark catalogs and documents with multi-colored label icons (AdministrationGeneral settingsProperties). The labels are displayed as pictures or text and can be edited in forms of catalogs and documents. Besides, you can see a label column and its legend in lists and filter the lists by labels. New procedures and functions in the PropertyManager module for managing labels in the application:

    • LabelsDisplayParameters
    • OnGetDataAtServer
    • PropertiesByAdditionalAttributesKind
    • SetLabelsLegendVisibility
    • HasLabelsOwners
    • FillObjectLabels For more information, see the description of the procedures and functions.

    New procedures and functions in thePropertyManagerClient module:

    • EditLabels
    • ExecuteCommand
    • ApplyFilterByLabel For more information, see the description of the procedures and functions.
  • Improved the support of property sets created using 1C:Enterprise language based on various configuration catalogs, for example, Product kinds. To delete such property sets automatically when deleting a source catalog item, you can use the new BeforeDeleteObjectKind procedure in the PropertyManager common module. Call this procedure in the BeforeDelete procedure in the object module of the source catalog:

// StandardSubsystems.Properties
PropertyManager.BeforeDeleteObjectKind(ThisObject);
// End StandardSubsystems.Properties

Digital signature

  • If a signature cannot be verified due to external circumstances (for example, an up-to-date revocation list is unavailable), the structure will contain True in the CheckRequired2 property.
  • To get the detailed verification information, pass a structure created by the SignatureVerificationParameters constructor in the DigitalSignatureClient common module to the CheckParameters parameter of the VerifySignature procedure and set the ResultAsStructure flag.
  • New ShouldIgnoreCertificateValidityPeriod parameter is added to the RefineSignature procedure of the DigitalSignatureClient common module. You can use the parameter to add a timestamp to a signature whose certificate expired.
  • New DeleteDigitalSignatures role is added to delete signatures of other signers.
  • For the Sign and Decrypt functions of the DigitalSignatureClient module, OperationContext is now returned even in case of an unsuccessful operation if a password was entered. However, a repeated action with such context might also be unsuccessful.

Migrating from version 3.1.8 to version 3.1.9

Required migration actions

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

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

  • DataExchangeOverridable
  • DataExchangeSaaSOverridable
  • DuplicateObjectsDetectionOverridable
  • ReportMailingOverridable

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

  • Names and parameters of export procedures and functions of common modules, object modules, manager modules, and record sets 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 you can access from the application code or queries.

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

Core
  • If the configuration is designed for the mobile client, replace code snippets in the BeforeStart, OnStart, BeforeExit, and CollaborationSystemUsersChoiceFormGetProcessing handlers in modules of the managed and ordinary applications with the following snippets:
#Region EventsHandlers

Procedure BeforeStart()

#If MobileClient Then
    If IsMainServerAvailable() = False Then
        Return;
    EndIf;
#EndIf

    // StandardSubsystems
#If MobileClient Then
    Execute("StandardSubsystemsClient.BeforeStart()");
#Else
    StandardSubsystemsClient.BeforeStart();
#EndIf
    // End StandardSubsystems

EndProcedure

Procedure OnStart()

    // StandardSubsystems
#If MobileClient Then
    Execute("StandardSubsystemsClient.OnStart()");
#Else
    StandardSubsystemsClient.OnStart();
#EndIf
    // End StandardSubsystems

EndProcedure

Procedure BeforeExit(Cancel, WarningText)

    // StandardSubsystems
#If MobileClient Then
    Execute("StandardSubsystemsClient.BeforeExit(Cancel, WarningText)");
#Else
    StandardSubsystemsClient.BeforeExit(Cancel, WarningText);
#EndIf
    // End StandardSubsystems

EndProcedure

Procedure CollaborationSystemUsersChoiceFormGetProcessing(ChoicePurpose,
            Form, ConversationID, Parameters, SelectedForm, StandardProcessing)

    // StandardSubsystems
#If MobileClient Then
    Execute("StandardSubsystemsClient.CollaborationSystemUsersChoiceFormGetProcessing(ChoicePurpose,
        |Form, ConversationID, Parameters, SelectedForm, StandardProcessing)");
#Else
    StandardSubsystemsClient.CollaborationSystemUsersChoiceFormGetProcessing(ChoicePurpose,
        Form, ConversationID, Parameters, SelectedForm, StandardProcessing);
#EndIf
    // End StandardSubsystems

EndProcedure

#EndRegion
Data exchange
  • If Cloud Technology Library 2.0.10 or later is used in the configuration, add the DataExchangeEvents.OnRegisterDataImportHandlers procedure call to the OnRegisterDataImportHandlers overridable procedure of the ExportImportDataOverridable common module:
Procedure OnRegisterDataImportHandlers(HandlersTable) Export

    DataExchangeEvents.OnRegisterDataImportHandlers(HandlersTable);

EndProcedure
  • Constant.UsePerformanceMonitoringOfDataSynchronization
  • Catalog.DataExchangesSessions
Report distribution
  • The IncludeDateInFileName attribute of the ReportMailings catalog is marked as obsolete and renamed to ObsoleteIncludeDateInFileName. Delete the attribute from the code, queries, and reports.

Optional migration actions

The actions listed below are not required for migration, but we recommend that you perform them in the future.

Contact information
  • Corrected a typo in the PhoneWithExtensionNumber property in the return value of the ContactsManager.ContactInformationParametersDetails function. We recommend that you use the new property name. The previous property name is left for backward compatibility.

Migrating from earlier versions to version 3.1.9

When you migrate from earlier versions to version 3.1.9:

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

Migrating to patch releases 3.1.9

Patch releases of the library differ only in the fourth digit of the full version number, for example: 3.1.9.1, 3.1.9.20, 3.1.9.300, and so on. To update to patch releases, use the UpdateToCorrectiveVersionSSL.epf external data processor from the distribution package. It will significantly save your time during regular (for example, weekly) updates.

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

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

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

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

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