Use the following technique in the OnOpen event handler of your Choice Form and pass the customer in the form parameters:
The code for OnCreateAtServer procedure of the ChoiceForm:
| Code |
|---|
&AtServer
Procedure OnCreateAtServer(Cancel, StandardProcessing)
GroupItem = List.Filter.Items.Add(Type("DataCompositionFilterItemGroup"));
GroupItem.GroupType = DataCompositionFilterItemsGroupType.OrGroup;
GroupItem.Use = True;
// The Customer
Item = GroupItem.Items.Add(Type("DataCompositionFilterItem"));
Item.ComparisonType = DataCompositionComparisonType.Equal;
Item.LeftValue = New DataCompositionField("Customer");
Item.RightValue = Parameters.Customer;
Item.Use = True;
// The System Contractor
Item = GroupItem.Items.Add(Type("DataCompositionFilterItem"));
Item.ComparisonType = DataCompositionComparisonType.Equal;
Item.LeftValue = New DataCompositionField("Customer");
Item.RightValue = GetSystemContractor();
Item.Use = True;
EndProcedure |
The code for StartChoice event handler of the Evidence field:
| Code |
|---|
&AtClient
Procedure EvidenceStartChoice(Item, ChoiceData, StandardProcessing)
StandardProcessing = False;
ChoiceParameters = New Structure("Customer, CurrentRow", Object.Customer, Object.Evidence);
Evidence = OpenFormModal("Document.GoodsExpence.ChoiceForm", ChoiceParameters);
If ValueIsFilled(Evidence) Then
Object.Evidence = Evidence;
EndIf;
EndProcedure |
Remember to add a Customer parameter to the ChoiceForm.