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
- 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.
- 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).
- 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 Administration – Print forms, reports, and data processors – Add-ins.
- Accelerated bulk attribute editing in client/server mode (Administration – Support and service – Data processing). Now you can go to Administration – General settings – Performance 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.
- Accelerated data integrity checks in client/server mode (Administration – Support and service – Data processing). Now you can go to Administration – General settings – Performance 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.
- Accelerated the duplicate cleanup in client/server mode (Administration – Support and service – Data processing). Now you can go to Administration – General settings – Performance 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.
- Improved the usability of the Report distribution rules list (Administration – Print 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 Administration – General settings – Performance 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.
- Now you can scan documents and images on 64-bit Microsoft Windows. To do it, click Files – Add – From 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:
- 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.
- Now you can use labels to mark catalogs and documents with multi-colored label icons (Administration – General settings – Properties). The labels are displayed as pictures or text and can be edited in forms of catalogs and documents. Besides, you can see a label column and its legend in lists and filter the lists by labels.
What’s new for developers in version 3.1.9
AddToList2procedure in the
CommonClientServercommon 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
ExpectedValuesparameter in the
CommonClientServer.CheckParameterprocedure. You can use the parameter to check possible parameter values of procedures and functions. For example, if the
Colorparameter of the
SpecifyColorprocedure can have only three possible string values
Green, then you can check the parameter value as follows: ~~~ CommonClientServer.CheckParameter(“Colors.SpecifyColor”, “Color”, Color, Type(“String”), “Red,Yellow,Green”); ~~~
StandardSubsystemsServer.IsTrainingPlatformfunction in the API. The function allows branching code that depends on restrictions of the training platform version.
- In client code, use the
IsTrainingPlatformfunctions of the
StandardSubsystemsClientcommon module and
CommonClientServer.COMConnectorNameinstead of obsolete same-name properties of the structure returned by the
ClientParametersOnStartfunctions of the
JSONValuefunctions in the
Commonmodule. These functions simplify value conversion into and from the JSON format.
IsDistributedInfobasefunction in the
Commoncommon module. You can use the function to check whether the infobase is distributed.
- 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.ReportOptionPurposestype) in the
CustomizeReportsOptionsprocedure in the report manager module or centrally in the
ForComputersAndTablets. A report option must be displayed on report panels only in the thin client, thick client, or web client of 1C:Enterprise. This is a default value.
ForSmartphones. A report option must be displayed on report panels only in the mobile application.
ForAnyDevice. A report option must be displayed in any 1C:Enterprise applications.
- You can specify devices for which a report option is used in the
CustomizeReportOptionsprocedure in the report manager module or in the
CustomizeReportOptionsprocedure of the
ReportsOptionsOverridablecommon 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
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:
- Configure object registration in the exchange plan when saving the objects above. For example, you can use the
OnWriteevent subscription. You can find the example in the demo configuration:
- 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
OnStartprocedure of the
- 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
- 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
_DemoExchangeMobileClientrole. 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
AddEditReportsSnapshotsrole 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
WriteObjectPropertiesAPI procedure of the
ImportDataFromFilecommon module and pass a reference to the property owner object and a string of data to import as parameters.
- 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
PositionOfAddButtonproperty in the
OnDefineSettingsprocedure parameter of the
ContactsManagerOverridablecommon module. By default, the button is displayed on the left.
- Besides, you can use the
CommentFieldWidthparameter to specify the exact width of the Comment field for contact information fields with the following types:
- Besides, you can use the
GetWSProxy_3_0_2_2function is added to the
DataExchangeServercommon module API. For more information, see the function description.
OnRegisterDataImportHandlersprocedures are added to the
DataExchangeEventscommon module API. For more information, see the procedure description.
- Now you can use the new
UsersClient.IsFullUserfunction in the client code instead of the obsolete
HasAccessForUpdatingPlatformVersionproperties of the structure returned by the
ClientParametersOnStartfunctions of the
IsFullUserproperty of the structure returned by the
FilesOperations.FilesOperationSettingsfunction is now obsolete. Instead, use the
- New procedures and functions in the
FilesOperationsClientcommon module for scanning images:
- Additional procedures and functions:
- New API procedures and functions for managing the scan settings:
GetUserScanSettingsfunction in the
UserScanSettingsfunction in the
- For more information, see the description of the procedures and functions.
- 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
OnReceiveEmailTextParametersprocedures of the
ReportMailingOverridablecommon module. For more information, see comments to these procedures.
Now you can use labels to mark catalogs and documents with multi-colored label icons (Administration – General settings – Properties). The labels are displayed as pictures or text and can be edited in forms of catalogs and documents. Besides, you can see a label column and its legend in lists and filter the lists by labels. New procedures and functions in the
PropertyManagermodule for managing labels in the application:
FillObjectLabelsFor more information, see the description of the procedures and functions.
New procedures and functions in the
ApplyFilterByLabelFor 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
BeforeDeleteObjectKindprocedure in the
PropertyManagercommon module. Call this procedure in the
BeforeDeleteprocedure in the object module of the source catalog:
// StandardSubsystems.Properties PropertyManager.BeforeDeleteObjectKind(ThisObject); // End StandardSubsystems.Properties
- If a signature cannot be verified due to external circumstances (for example, an up-to-date revocation list is unavailable), the structure will contain
- To get the detailed verification information, pass a structure created by the
SignatureVerificationParametersconstructor in the
DigitalSignatureClientcommon module to the
CheckParametersparameter of the
VerifySignatureprocedure and set the
ShouldIgnoreCertificateValidityPeriodparameter is added to the
RefineSignatureprocedure of the
DigitalSignatureClientcommon module. You can use the parameter to add a timestamp to a signature whose certificate expired.
DeleteDigitalSignaturesrole is added to delete signatures of other signers.
- For the
Decryptfunctions of the
OperationContextis 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:
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
- 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.
- If the configuration is designed for the mobile client, replace code snippets in the
CollaborationSystemUsersChoiceFormGetProcessinghandlers 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
- If Cloud Technology Library 2.0.10 or later is used in the configuration, add the
DataExchangeEvents.OnRegisterDataImportHandlersprocedure call to the
OnRegisterDataImportHandlersoverridable procedure of the
Procedure OnRegisterDataImportHandlers(HandlersTable) Export DataExchangeEvents.OnRegisterDataImportHandlers(HandlersTable); EndProcedure
IncludeDateInFileNameattribute of the
ReportMailingscatalog 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.
- Corrected a typo in the
PhoneWithExtensionNumberproperty in the return value of the
ContactsManager.ContactInformationParametersDetailsfunction. 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: 220.127.116.11, 18.104.22.168, 22.214.171.1240, 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.