1Ci Support Help Center home page
Submit a request
Sign in
  1. 1Ci Support
  2. 1C:Enterprise Development Standards
  3. Designing user interfaces
  4. Implementation of form

Conditional appearance in forms

  • Implementation of form
    • Opening forms
    • Opening parameterized forms
    • Rules for creating form modules
    • Locking or independent opening of object forms
    • Modal windows use restrictions
    • Preventing editing table fields by condition
    • Specifics of spreadsheet document in a web client
    • Accessing automatically generated form controls from code
    • Accessing user form controls from code
    • Object modification commands
See more

Scope: managed applications.

Best practice

1. To set some properties of controls, use conditional appearance. The conditional appearance has several restrictions.

1.1. Do not use conditional appearance to hide table rows fully. It significantly slows down operations in web client and causes incorrect display of the table data.

1.2. If a task can be fulfilled both using conditional appearance of a dynamic list and conditional appearance of a form, select conditional appearance of a dynamic list. It speeds up the form opening.

2.1. Set up conditional appearance of forms and dynamic lists in the form code. This approach prevails over configuring conditional appearance settings in form properties for the following reasons:

  • Settings of conditional appearances of the same type can be transferred to common modules. For example, there are 80 forms with conditional appearance:
    "if NOT CharacteristicsAreUsed, display <characteristics are not used> in the Characteristic field",
    you can transfer the setting to the common module procedure code.
  • When merging configurations, you can also merge conditional appearances. It is especially relevant for branched configuration development.
  • If metadata is changed (for example, an enumeration value is renamed), the conditional appearance can stop functioning. If conditional appearance is set up in the configuration code, the error is detected upon the syntax module control. Errors in conditional appearance settings are detected using automated checks (like ACC) as an error when attempting to get a form is detected.

2.2. Configure all conditional appearance settings when creating a form and do not change them later. Exceptions are cases when form items are generated programmatically. Set up conditional appearance of such items when generating them and do not change them later.

2.3. Minimize the number of string constants in the conditional appearance code procedure. Use variables, dereferencing, and other instead. Such approach allows to minimize hidden errors in conditional appearance settings. For example:

&AtServer
Procedure SetConditionalAppearance()
 
 ConditionalAppearance.Items.Clear();
 
 Item = ConditionalAppearance.Items.Add();

 ItemField = Item.Fields.Items.Add();
 ItemField.Field = New DataCompositionField(Items.GoodsPackaging.Name);

 FilterGroup1 = Item.Filter.Items.Add(Type("DataCompositionFilterItemsGroup"));
 FilterGroup1.GroupType = DataCompositionFilterItemsGroupType.GroupOr;

 ItemFilter = FilterGroup1.Items.Add(Type("DataCompositionFilterItem"));
 ItemFilter.LeftValue = New DataCompositionField("BinLocationWarehousing");
 ItemFilter.ComparisonType = DataCompositionComparisonType.Equal;
 ItemFilter.RightValue = False;

 ItemFilter = FilterGroup1.Items.Add(Type("DataCompositionFilterItem"));
 ItemFilter.LeftValue = New DataCompositionField("Object.Goods.ProductType");
 ItemFilter.ComparisonType = DataCompositionComparisonType.NotEqual;
 ItemFilter.RightValue = Enumeration.ProductTypes.Goods;

 ItemFilter = FilterGroup1.Items.Add(Type("DataCompositionFilterItem"));
 ItemFilter.LeftValue = New DataCompositionField("Object.Status");
 ItemFilter.ComparisonType = DataCompositionComparisonType.Equal;
 ItemFilter.RightValue = Enums.GoodsReceivedNotesStatuses.ForReceipt;

 Item.Appearance.SetParameterValue("MarkIncomplete", False);

EndProcedure

See also:

  • Date field in lists
  • Creating form modules
© 2020-2022 1C INTERNATIONAL LLC www.1Ci.com Support policy