Outlook application свойства и методы
Сегодня поговорим о работе с известной программой Microsoft Outlook из 1С. Сначала будет теория, а в конце несколько практических примеров. Я не буду описывать все существующие объекты, свойства и методы, так как во-первых, их очень много, а во-вторых, нет такой необходимости — все подробно описано на сайте MSDN (там правда на английском, но для понимания достаточно самого базового уровня или Google Translate-та).
Любая работа с Outlook из 1С начинается, естественно, с создания COM-объекта.
Все задачи связанные с Outlook-ом разделяются на две категории. Первая — нам нужно что-то создать в Outlook (письмо, задачу, событие и тд.). Вторая — нам нужно что-то из Outlook получить (письма, контакты, события и тд.).
Создание объектов в Outlook из 1С
Какие либо объекты в Outlook создаются при помощи метода «CreateItem», параметром к которому служит тип создаваемого объекта:
Как уже говорилось выше, я не буду описывать свойства, методы и события этих объектов, взамен я приведу ссылки на подробные описания этих объектов (на английском, чтобы увидеть свойства, методы или события выбранного объекта, нужно ткнуть на соответствующий пункт в меню слева):
Ниже будет несколько примеров создания различных объектов Outlook из 1С.
Импорт данных из Outlook в 1С
Импорт данных из Outlook осуществляется достаточно просто и будет в примере ниже, есть несколько вещей которые помогут в реализации любой задачи связанной с импортом из Outlook:
- любой элемент Outlook имеет уникальный EntryID (48 символов);
- любой элемент Outlook имеет поле MessageClass (строка, возможные варианты: «IPM.Note», «IPM.Task»,»IPM.Contact», «IPM.Activity», «IPM.Appointment»);
- любой элемент Outlook имеет коллекции ItemProperties и UserProperties — стандартные и пользовательские свойства (нумерация с нуля и единицы соответственно);
- при импорте данных выскочит окно, запрашивающее разрешение на доступ к данным, доступ можно разрешить, но не более чем на 10 минут (т.е. через 10 минут окно появится снова), существуют программы, которые автоматически нажимают нужные кнопки в этом окне;
- при импорте данных пустая дата выглядит так «45010101», если попытаться записать такую дату в базу — произойдет ошибка, это нужно учитывать и заменять дату на «00010101».
Все возможные методы, свойства и события NameSpace Object (главный элемент иерархии каталогов Outlook, см. пример) подробно описаны на сайте MSDN (на английском).
Создание письма в Outlook из 1С
Плавно переходим к примерам, напомню, что в примерах, я пренебрег необходимыми проверками и обработками ошибок, оставив только суть.
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Свойства
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Возвращает Application объект, представляющий родительское приложение Outlook для объекта. Только для чтения.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Возвращает OlObjectClass константу, указывающую класс объекта. Только для чтения.
Возвращает коллекцию COMAddIns , которая представляет все загруженные в Microsoft Outlook надстройки модели компонентных объектов (com).
Возвращает объект Explorers Collection, который содержит Explorer объекты, представляющие все открытые проводника. Только для чтения.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Возвращает объект Inspectors Collection, который содержит Inspector объекты, представляющие все открытые инспекторы. Только для чтения.
Возвращает родительский объект указанного объекта. Только для чтения.
Возвращает PickerDialog объект, который предоставляет функциональные возможности для выбора людей или данных в диалоговом окне. Только для чтения.
Возвращает Reminders коллекцию, которая представляет все текущие напоминания. Только для чтения.
Возвращает NameSpace объект для текущего сеанса. Только для чтения.
Возвращает TimeZones коллекцию, представляющую набор часовых поясов, поддерживаемых в Outlook. Только для чтения.
Методы
Возвращает самый верхний Explorer объект на рабочем столе.
Возвращает самый верхний Inspector объект на рабочем столе.
Возвращает объект, представляющий самое верхнее окно Microsoft Outlook на рабочем столе: Explorer Inspector объект или объект.
Выполняет поиск, основанный на указанной строке поиска DAV и поиске (DASL).
Копирует файл из указанного места в магазин Microsoft Outlook.
Создает и возвращает новый элемент Microsoft Outlook.
Создает новый элемент Microsoft Outlook из шаблона Outlook (oft) и возвращает новый элемент.
Создает объект автоматизации указанного класса.
Возвращает NameSpace объект указанного типа.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Создает строго или слабую ссылку на объект для указанного объекта Outlook.
Закрывает все открытые в данный момент окна.
Обновляет кэш, получая текущее определение из реестра Windows для одной или всех областей формы, определенных для локального компьютера и текущего пользователя.
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет приложение Outlook целиком.
Комментарии
Это единственный объект в иерархии, который может быть возвращен с помощью CreateObject(String) метода или встроенной функции Visual Basic GetObject .
Объект приложения Outlook имеет несколько целей:
При использовании автоматизации для управления Microsoft Outlook из другого приложения используйте метод CreateObject для создания объекта приложения Outlook.
Свойства
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Возвращает Application объект, представляющий родительское приложение Outlook для объекта. Только для чтения.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Возвращает OlObjectClass константу, указывающую класс объекта. Только для чтения.
Возвращает коллекцию COMAddIns , которая представляет все загруженные в Microsoft Outlook надстройки модели компонентных объектов (com).
Возвращает объект Explorers Collection, который содержит Explorer объекты, представляющие все открытые проводника. Только для чтения.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Возвращает объект Inspectors Collection, который содержит Inspector объекты, представляющие все открытые инспекторы. Только для чтения.
Возвращает родительский объект указанного объекта. Только для чтения.
Возвращает PickerDialog объект, который предоставляет функциональные возможности для выбора людей или данных в диалоговом окне. Только для чтения.
Возвращает Reminders коллекцию, которая представляет все текущие напоминания. Только для чтения.
Возвращает NameSpace объект для текущего сеанса. Только для чтения.
Возвращает TimeZones коллекцию, представляющую набор часовых поясов, поддерживаемых в Outlook. Только для чтения.
Методы
Возвращает самый верхний Explorer объект на рабочем столе.
Возвращает самый верхний Inspector объект на рабочем столе.
Возвращает объект, представляющий самое верхнее окно Microsoft Outlook на рабочем столе: Explorer Inspector объект или объект.
Выполняет поиск, основанный на указанной строке поиска DAV и поиске (DASL).
Копирует файл из указанного места в магазин Microsoft Outlook.
Создает и возвращает новый элемент Microsoft Outlook.
Создает новый элемент Microsoft Outlook из шаблона Outlook (oft) и возвращает новый элемент.
Создает объект автоматизации указанного класса.
Возвращает NameSpace объект указанного типа.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Создает строго или слабую ссылку на объект для указанного объекта Outlook.
Обновляет кэш, получая текущее определение из реестра Windows для одной или всех областей формы, определенных для локального компьютера и текущего пользователя.
События
Возникает при выполнении Stop() метода Search указанного объекта.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Возникает перед отображением диалогового окна совместного использования для Folder выбранного объекта.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Возникает при загрузке элемента Outlook в память.
Возникает после входа пользователя в систему.
Возникает каждый раз, когда пользователь нажимает кнопку "параметры надстройки" на вкладке "надстройки" диалогового окна "Параметры" Outlook.
Происходит, когда Outlook начинает закрываться.
Происходит непосредственно перед отображением напоминания.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Происходит при запуске Microsoft Outlook, но после загрузки всех программ надстроек.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Этот объект, элемент или перечисление устарели и не предназначены для использования в коде.
Объектная модель Microsoft Outlook реализована в виде набора объектов, собранных в библиотеке Outlook.
Объекты приложения Outlook
В табл. 21.3 приведено описание основных объектов из объектной модели Outlook.
Таблица 21.3. Основные объекты Outlook
В табл. 21.4—21.6 представлено описание основных свойств, методов и событий объекта Application.
Рис. 21.1. Объект Inspector (форма элемента)
Свойство | Описание |
Session Class | Возвращает объект Namespace для текущего сеанса. Сеанс (session) — это период времени, в течение которого пользователь работает с Outlook |
Parent | Возвращает константу из перечисления QlObjectClass для указанного объекта. Это целочисленное значение, идентифицирующее класс объекта |
Version | Возвращает родительский объект для указанного объекта Возвращает или задает номер версии |
Таблица 21.4. Основные свойства объекта Application
Метод | Назначение |
ActiveExplorer | Возвращает головной объект Explorer |
Active Inspect or | Возвращает головной объект Inspector |
ActiveWindow | Возвращает объект, представляющий главное окно |
Createltem | Создает новый элемент Outlook и возвращает его приложения |
GetName Space | Возвращает объект NameSpace указанного типа |
Quit | Закрывает приложение |
Таблица 21.5. Основные методы объекта Application
Таблица 21.6. События объекта Application
Объекты MAPIFolderv и Mailltem
Поскольку в примерах этой главы и следующей используются свойства и методы объектов MAPIFolder и Mailltem, мы сочли необходимым привести их краткое описание.
Объект MAPiFoider, как было сказано выше, представляет папку Outlook. Объект MAPiFoider может содержать другие MApiFoider-объекты. В этом случае вы можете управлять доступом к вложенным папкам посредством комбинации Folder (индекс), где индекс возвращает объект MAPiFoider.
В табл. 21.7 приведены основные свойства объекта MAPiFoider, а в табл. 21.8 — его методы.
Таблица 21.7. Свойства объекта MAPiFolder
Метод | Назначение |
СоруТо | Копирует текущую папку (полностью) в указанную папку. Возвращает MAPiFolder объект, представляющий новую копию |
Delete | Удаляет объект из семейства папок |
Display | Отображает новый объект Explorer для папки |
MoveTo | Перемещает папку в указанную папку |
Таблица 21.8. Методы объекта MAPiFolder
Sub openLastMail () Dim oa As Outlook.Application
Dim ns As NameSpace ; Dim fl As MAPiFolder Dim ob As Object Dim it As Mailitem
Dim i As integer
Set oa = CreateObject("OutLook.Application") Set ns = oa.GetNamespace("MAPI") Set fl = ns.GetDefaultFolder(olFolderlnbox) For i = 1 To f1.Items.Count Set ob = fl.Items(i) On Error GoTo nextitem If ob.MessageClass = "IPM.Note" Then Set it = ob If it.ReceivedTime > Date - 1 Then
it.Display (False) End If End If nextitem:
Замечание
Для семейств Outlook нельзя воспользоваться оператором For Each Next, поэтому применяется цикл For . . . Count.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
узнайте, как можно взаимодействовать с объектами, предоставляемыми объектной моделью Outlook, для разработки VSTO надстроек для Microsoft Outlook.
общие сведения об объектной модели Outlook
Этот раздел содержит краткий обзор некоторых основных объектов в объектной модели Outlook. дополнительные сведения о всей модели объектов Outlook см. в статье использование Outlook объектной модели.
доступ к объектам в проекте Outlook
Outlook предоставляет множество различных объектов, с которыми можно взаимодействовать. Для эффективного использования объектной модели вы должны быть знакомы со следующими объектами верхнего уровня:
Объект xref:Microsoft.Office.Interop.Outlook.Application представляет приложение Outlook. Это объект самого верхнего уровня в объектной модели Outlook. Ниже перечислены некоторые наиболее важные члены этого объекта.
Свойство xref:Microsoft.Office.Interop.Outlook._Application.Explorers%2A , которое можно использовать для доступа к окнам с содержимым папки в пользовательском интерфейсе Outlook.
Чтобы получить экземпляр xref:Microsoft.Office.Interop.Outlook.Application объекта, используйте поле приложения ThisAddIn класса в проекте. дополнительные сведения см. в статье надстройки программы VSTO.
[!NOTE] чтобы избежать предупреждений системы безопасности при использовании свойств и методов, блокируемых Outlook системой безопасности объектной модели, получите Outlook объекты из поля приложения ThisAddIn класса. дополнительные сведения см. в статье рекомендации по обеспечению безопасности для Office решений.
Чтобы получить объект xref:Microsoft.Office.Interop.Outlook.Explorer , выполните одно из следующих действий.
Используйте свойство xref:Microsoft.Office.Interop.Outlook._Application.Explorers%2A объекта xref:Microsoft.Office.Interop.Outlook.Application для доступа ко всем объектам xref:Microsoft.Office.Interop.Outlook.Explorer в Outlook.
Используйте метод xref:Microsoft.Office.Interop.Outlook._Application.ActiveExplorer%2A объекта xref:Microsoft.Office.Interop.Outlook.Application , чтобы получить xref:Microsoft.Office.Interop.Outlook.Explorer , который имеет фокус в данный момент.
Используйте метод GetExplorer объекта xref:Microsoft.Office.Interop.Outlook.Folder, чтобы получить xref:Microsoft.Office.Interop.Outlook.Explorer для текущей папки.
Чтобы получить объект xref:Microsoft.Office.Interop.Outlook.Inspector , выполните одно из следующих действий.
Используйте свойство xref:Microsoft.Office.Interop.Outlook._Application.Inspectors%2A объекта xref:Microsoft.Office.Interop.Outlook.Application для доступа ко всем объектам xref:Microsoft.Office.Interop.Outlook.Inspector в Outlook.
Используйте метод xref:Microsoft.Office.Interop.Outlook._Application.ActiveInspector%2A объекта xref:Microsoft.Office.Interop.Outlook.Application , чтобы получить xref:Microsoft.Office.Interop.Outlook.Inspector , который имеет фокус в данный момент.
Используйте метод GetInspector определенного элемента, такого как xref:Microsoft.Office.Interop.Outlook.MailItem или xref:Microsoft.Office.Interop.Outlook.AppointmentItem, для извлечения инспектора, связанного с ним.
Объекты xref:Microsoft.Office.Interop.Outlook.Folder по умолчанию определяются значениями перечисления xref:Microsoft.Office.Interop.Outlook.OlDefaultFolders . Например,
Пример, демонстрирующий доступ к по умолчанию xref:Microsoft.Office.Interop.Outlook.Folder и создание нового xref:Microsoft.Office.Interop.Outlook.Folder , см. в разделе как программно создавать пользовательские элементы папки.
Объект xref:Microsoft.Office.Interop.Outlook.AppointmentItem представляет собрание, однократную или повторяющуюся встречу или собрание в папке Календарь . Объект xref:Microsoft.Office.Interop.Outlook.AppointmentItem содержит методы для выполнения таких действий, как ответ на приглашения на собрание и их пересылка, а также свойства, определяющие сведения о встрече, например время и место проведения.
Пример создания встречи см. в разделе как создать приглашение на собрание программными средствами.
Объект xref:Microsoft.Office.Interop.Outlook.TaskItem представляет задачу, выполняемую в течение заданного промежутка времени. Объектыxref:Microsoft.Office.Interop.Outlook.TaskItem расположены в папке Задачи .
Чтобы создать задачу, используйте метод CreateItem объекта xref:Microsoft.Office.Interop.Outlook.Application и передайте значение xref:Microsoft.Office.Interop.Outlook.OlItemType.olTaskItem для параметра.
Объект xref:Microsoft.Office.Interop.Outlook.ContactItemпредставляет контакт в папке Контакты . Объектыxref:Microsoft.Office.Interop.Outlook.ContactItem содержат различные контактные данные для людей, которые они представляют, например адреса, электронные адреса и номера телефонов.
использование документации по объектной модели Outlook
Полные сведения об объектной модели Outlook см. в справочнике по основной сборке взаимодействия (PIA) Outlook и в справочнике по объектной модели VBA.
Ссылка на основную сборку взаимодействия
В справочных документах по основной сборке взаимодействия Outlook описываются типы основной сборки взаимодействия для Outlook 2010. дополнительные сведения см. в разделе справочник по основной сборке взаимодействия Outlook 2010.
Помимо информации о всех типах в основных сборках взаимодействия, эта документация также содержит дополнительные сведения о структуре основных сборок взаимодействия и примеры кода для общих задач автоматизации Outlook.
Справочник по объектной модели VBA
В справочных документах по объектной модели VBA объектная модель Outlook описана в том виде, в котором она предоставляется коду Visual Basic для приложений. дополнительные сведения см. в разделе справочник по объектной модели Outlook 2010.
Читайте также: