Показать сообщение отдельно
Старый 12.02.2016, 13:00   #27  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Damn Посмотреть сообщение
Это началось уже с билда 1600.2967. Диалог начинает некорректно отображать кнопки "Оповещения" и "Повторение" уже в связках "обновленный клиент - необновленный АОС", "необновленный клиент - обновленный АОС".
Ничего нельзя поделать с этим ? Обновление до этого билда теряет смысл. Я думал может хоть в 1600.3090 исправили, а выясняется что и там баг остаётся.
Отчего ж нельзя.
Вот так например.
\Classes\BatchInfo\dialog

X++:
void dialog(Dialog   dialog)
{
    DialogRunBase               dialogRunBase = dialog;
    Object                      curMainGrp;
    DialogGroup                 grp2Col;
    DialogGroup                 buttonGrp;
    DialogGroup                 textGrp;
    // GRD_R93295_newKernelBuildPostRU8_pkoz, Переход на новый билд ядра (5.0.1600.3090) - подготовка., pkoz, 01.12.2015 -->
    FormBuildGroupControl       GRD_FormBuildGroupControl;
    // GRD_R93295_newKernelBuildPostRU8_pkoz, Переход на новый билд ядра (5.0.1600.3090) - подготовка., pkoz, 01.12.2015 <--
    ;

    #define.batchGrp('DialogBatchGrp')

    if (! runClass.canGoBatch() || !runClass.showBatchTab())
        return;

    usesDialogClass = Dialog::isDialogClass(dialog);
    if (! usesDialogClass)
    {
        // When using "old" system, disable batch.
        batchExecute = false;
        return;
    }
    curMainGrp = dialog.mainFormGroup();


    dialogRunBase.batchDialogTabPage(dialog.addTabPage("@SYS14462"));

    grp2Col = dialog.addGroup();
    grp2Col.frameType(FormFrameType::None);
    grp2Col.columns(3);
    grp2Col.widthMode(1);

    // GRD_R93295_newKernelBuildPostRU8_pkoz, Переход на новый билд ядра (5.0.1600.3090) - подготовка., pkoz, 01.12.2015 -->
    if ( !isRunningOnServer() && grp2Col.control() )
    {
        GRD_FormBuildGroupControl = SysDictClass::as(grp2Col.control(), ClassNum(FormBuildGroupControl));

        if (GRD_FormBuildGroupControl)
        {
            /*
            info4([
                GRD_FormBuildGroupControl.widthMode(),
                strFMT("%1", GRD_FormBuildGroupControl.widthMode()),
                GRD_FormBuildGroupControl.widthValue()
                ]);
            */

            // grp2Col.widthMode(-1);

            GRD_FormBuildGroupControl.width( 600, -1 ); // прибили гвоздями размер группы, так как в билде 5.0.1600.3090 он иногда глючит (не учитывал размер кнопок - словно их не было)
            // чтобы совсем красоту навести - надо еще в классе DialogGroup (переменная grp2Col ) реализовать метод width и запомнить widthMode и ширину
        }
        //info4([classid2Name(grp2Col.control().handle())]);
    }
    // GRD_R93295_newKernelBuildPostRU8_pkoz, Переход на новый билд ядра (5.0.1600.3090) - подготовка., pkoz, 01.12.2015 <--

    dialog.addGroup("@SYS2952",grp2Col);

    fieldBatchExecute   = dialog.addFieldValue(typeid(NoYes),batchExecute,"@SYS2312", "@SYS28499");

    dialog.addGroup("@SYS68865",grp2Col);

    dialog.addGroup("@SYS5711",grp2Col);
    if(this.parmRunClass())
        caption = this.parmRunClass().caption();
    fieldCaption        = dialog.addFieldValue(typeid(BatchCaption), caption, '',
                                new DictField(tablenum(Batch), fieldnum(Batch, Caption)).help());
    fieldGroup          = dialog.addFieldValue(typeid(BatchGroupId),groupId, '',
                                new DictField(tablenum(Batch),fieldnum(Batch,GroupId)).help());
    fieldPrivate        = dialog.addFieldValue(typeid(NoYes),privateBatch,fieldpname(Batch,PrivateTask),
                                new DictField(tablenum(Batch),fieldnum(Batch,PrivateTask)).help());

    buttonGrp = dialog.addGroup('',grp2Col);
    buttonGrp.frameType(FormFrameType::None);
    buttonGrp.leftMode(3);

    dialog.addMenuItemButton(MenuItemType::Display,menuitemdisplaystr(SysRecurrenceRun),DialogMenuItemGroup::CurrentGrp);
    dialog.addMenuItemButton(MenuItemType::Display,menuitemdisplaystr(BatchAlerts), DialogMenuItemGroup::CurrentGrp);

    dialog.curFormGroup(dialog.mainFormGroup());
    textGrp = dialog.addGroup();
    textGrp.frameType(FormFrameType::Edged3DLine);
    textGrp.alignChild(false);
    textGrp.widthMode(1);
    fieldText = dialog.addText(SysRecurrenceRun::toText(this.parmBatchHeader().parmRecurrenceData()));

    dialog.mainFormGroup(curMainGrp);
    dialog.curFormGroup(curMainGrp);

}
P.S.
А в MS писать пробовали ?
Чего говорят ?