Захотелось тут добавить на грид с адресами в стандартной форме пару контролов. Смотрю, странно как-то грид реализован - не использует табличные группы полей, все контролы явно накиданы на грид. Фиг бы с ним, думаю, отрефакторю: сделал группу полей с нужными мне добавками, вывел на грид - и форма перестала открываться. Оказалось, что класс FormRunListener_Address_RU не поддерживает группы контролов в гриде, более того, он также не поддерживает display/edit-методы и unbound-контролы! Переделал используемый в этом классе м... незатейливый перебор контролов на вызов своего 
итератора (последний пришлось допилить, чтоб поддерживал и FormBuild-контролы), а сам класс FormRunListener_Address_RU модифицировал следующим образом:
X++:
private Set addAddressGroupGrid()
{
    FormBuildDesign          design;
    FormBuildStringControl   formStringControl;
    FormBuildControl         parentControl;
    FormBuildDataSource      formDataSource, tmpFormDataSource;
    Set                      ret = new Set(Types::Container);
    Integer                  zipCodeControlId;
    FormBuildStringControl   zipCodeControl;
    container                groupInfo;
    int                      i, j;
    extendedTypeId           type;
    SysAnyType               zipCodeControlRef; //+gl00m, 14.03.2011
    void addAddressElementControl(fieldId _fieldId)
    {
        ;
        formStringControl = parentControl.addControl(FormControlType::String, #ControlName);
        formStringControl.dataSource(formDataSource.id());
        formStringControl.dataField(_fieldId);
    }
    ;
    design = formRun.form().design();
    for (i = 1; i <= conlen(addressInfoGrid); i ++)
    {
        groupInfo      = conpeek(addressInfoGrid, i);
        parentControl = design.control(conpeek(groupInfo, #1));
        // gl00m, 14.03.2011 -->
        /*
        for (j = 1; j <= parentControl.controlCount(); j ++)
        {
            formStringControl = parentControl.controlNum(j);
            tmpFormDataSource = formRun.form().dataSource(formStringControl.dataSource());
            type = new DictField(tmpFormDataSource.table(), formStringControl.dataField()).typeId();
            if(type == extendedtypenum(AddressCountryRegionId) ||
               type == extendedtypenum(AddressStateId)         ||
               type == extendedtypenum(AddressCountyId))
            {
                formStringControl.name(#ControlName);
            }
            if (type == extendedtypenum(AddressZipCodeId))
            {
                zipCodeControl   = parentControl.controlNum(j);
                zipCodeControlId = zipCodeControl.id();
                zipCodeControl.name(#ZipCodeControlName);
            }
        }
        */
        zipCodeControlRef = new SysAnyType( new Object() );
        DEV_iterateThroughFormControls( parentControl,
                                        this,
                                        methodstr(FormRunListener_Address_RU, processAddressRelatedFormControl),
                                        DEV_FormHelpers::addBuildStringCtrlId2Set(),
                                        true,
                                        0,
                                        zipCodeControlRef
                                       );
        zipCodeControl   = zipCodeControlRef.value();
        zipCodeControlId = zipCodeControl.id();
        // gl00m, 14.03.2011 <--
        formDataSource = formRun.form().dataSource(zipCodeControl.dataSource());
        addAddressElementControl(fieldnum(Address, TownId_RU));
        addAddressElementControl(fieldnum(Address, SettlementId_RU));
        addAddressElementControl(fieldnum(Address, StreetId_RU));
        addAddressElementControl(fieldnum(Address, Estate_RU));
        addAddressElementControl(fieldnum(Address, Building_RU));
        addAddressElementControl(fieldnum(Address, Flat_RU));
        ret.add([formDataSource.name(), conpeek(groupInfo, #1), conpeek(groupInfo, #2), fieldnum(Address, ZipCode), zipCodeControlId]);
    }
    return ret;
}
// gl00m, 14.03.2011
// сюда вынесена часть кода из внутреннего цикла в методе addAddressGroupGrid()
private void processAddressRelatedFormControl(FormBuildStringControl _formStringControl, Object _optParm = null)
{
    FormBuildDataSource     tmpFormDataSource;
    SysAnyType              zipCodeControlRef;
    DictField               dictField;
    extendedTypeId          type;
    ;
    tmpFormDataSource = formRun.form().dataSource(_formStringControl.dataSource());
    if (tmpFormDataSource)
    {
        dictField = new DictField(tmpFormDataSource.table(), _formStringControl.dataField());
    }
    if (dictField)
    {
        type = dictField.typeId();
    }
    if (    type == extendedtypenum(AddressCountryRegionId)
        ||  type == extendedtypenum(AddressStateId)
        ||  type == extendedtypenum(AddressCountyId)
       )
    {
        _formStringControl.name(#ControlName);
    }
    if (type == extendedtypenum(AddressZipCodeId))
    {
        _formStringControl.name(#ZipCodeControlName);
        // возвращаем ссылку на найденный FormControl для почтового индекса
        zipCodeControlRef = SysDictClass::as(_optParm, classnum(SysAnyType));
        if (zipCodeControlRef)
        {
            zipCodeControlRef.value(_formStringControl);
        }
    }
}Приложение AX 2009 SP1 EE RU5