Показать сообщение отдельно
Старый 25.03.2015, 13:22   #5  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Всем спасибо.
Реализовал у себя такую заглушку, может кому пригодится.

X++:
//AX100765_fixCOMExcel_yada 24.03.2015
static COM getObject(str _className = 'Excel.Application')
{
    COM             excel;

    DialogButton    returnButton;
    ;
    //Пытаемся получить COM объект
    excel = COM::getObject(_className);

    //Если COM объект получили и он заблокирован
    if(excel && excel.toString() == '')
    {
        //Выводим на экран диалоговое окно
        returnButton = box::okCancel('Ошибка при обращении к Excel.\n'                                                                +
                                     'В данный момент происходит редактирование документа Excel и AXAPTA не может получить доступ.\n' +
                                     'Прекратите редактирование документа и нажмите кнопку "ОК".', DialogButton::Cancel, 'Ошибка при обращении к Excel');

        //Если пользователь нажал кнопку "OK"
        if(returnButton == DialogButton::Ok)
        {
            //Снова пытаемся получить доступ к COM объекту
            excel = ComExcel::getObject(_className);
        }
        else
        {
            //Возвращаем COM объект
            throw error('Операция отменена пользователем');
        }
    }

    return excel;
}