OLE exceptions

VIRVIR
отредактировано 19:09 Раздел: FastScript
Создаю объект 1С на скриптовом языке. Работаю с вариантами. При возникновении ошибки в 1С, Delphi получает ошибку EOleException(например объект не инициализирован), скрипт выводит ошибку EOleException -324561, т.е. код. Мне нужна "родная" ошибка с описанием. Как сделать?

Комментарии

  • отредактировано 19:09
    Не совсем понял какая часть именно является источником исключения.
    Чтобы получить подробную информацию об ошибке нужно правильно сгенерить COM исключение.
    Посмотри пожет прикодится кусок кода:

    procedure RaiseOleError(Description, ProgID: string);
    var
    CreateError: ICreateErrorInfo;
    ErrorInfo: IErrorInfo;
    SMessage: string;
    begin
    SMessage := Format('%s'#13'Source: %s', [Description, ProgID]);
    CreateErrorInfo(CreateError);
    CreateError.SetDescription(PWideChar(WideString(SMessage)));
    CreateError.SetSource(PWideChar(WideString(ProgID)));
    if CreateError.QueryInterface(IErrorInfo, ErrorInfo) = S_OK then
    begin
    SetErrorInfo(0, ErrorInfo);
    raise EOleException.Create(Description, S_FALSE, ProgID, '', 0);
    end;
    end;
  • VIRVIR
    отредактировано 19:09
    FastScript возращает такое значение. Проблему я так и не решил, т.к. нет времени перебирать исходники FastScript

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.