Речь идет о форме DirPartyQuickCreateForm и его объекте partyTypeComboBox.
В методе init() формы этот объект передается как параметр при создании нового объекта typeComboBox
X++:
// \Forms\DirPartyQuickCreateForm\Methods\init
typeComboBox = DirPartyFormHandler::updateTypeComboBox(element, formControlStr(Dirpartyquickcreateform, partyTypeComboBox));
Далее, смотрим, что объект typeComboBox выбирает свое значение в событии active() источника данных формы DirPartyEntity
X++:
// \Forms\DirPartyQuickCreateForm\Data Sources\DirPartyEntity\Methods\active
typeComboBox.select(dirPartyTable.baseType());
Смотрим определение метода dirPartyTable.baseType()
X++:
//\Data Dictionary\Tables\DirPartyTable\Methods\baseType
//BP deviation documented
[SysClientCacheDataMethodAttribute(true)]
display DirPartyBaseType baseType()
{
DirPartyBaseType baseType;
switch (this.getInstanceRelationType())
{
case tableStr(DirPerson) :
baseType = DirPartyBaseType::Person;
break;
default :
baseType = DirPartyBaseType::Organization;
break;
}
return baseType;
}
Т.е. текущее значение зависит от выбранного источника данных. Поскольку речь идет this.getInstanceRelationType(), то это пронаследованные таблицы от головной таблицы DirPartyTable
Собственно, если посмотреть, а что происходит при изменении выбранного значения, т.е. в методе modified, то видно, что происходит изменение источника данных
X++:
//\Forms\DirPartyQuickCreateForm\Designs\Design\[Group:DialogContent]\[Group:PartyHeaderGroup]\ComboBox:partyTypeComboBox\Methods\modified
public boolean modified()
{
boolean ret;
ret = super();
// if the party type has been modified then clear and recreate the buffer through
// the formhandler class
if (ret && typeComboBox.selection() != lastPartyType)
{
dirpartytable_ds.delete(); // удаляем текущую запись
partyForm.parmPartyType(typeComboBox.selection()); // изменяем источник данных
partyForm.create(); // создаем запись в новом источнике данных
lastPartyType = typeComboBox.selection();
}
return ret;
}