Работа с Outlook в 1С

 

Сегодня поговорим о работе с известной программой 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С

Плавно переходим к примерам, напомню, что в примерах, я пренебрег необходимыми проверками и обработками ошибок, оставив только суть.

Создание события в Outlook из 1С

Создание задачи в Outlook из 1С

 

Импорт данных из Outlook в 1С

Код импорта данных из Outlook в 1С можно скачать в виде внешней обработки.

На этом все, надеюсь данная статья Вам помогла.

4 комментария к “Работа с Outlook в 1С

    • Сделал, тривиально и просто.
      1. Создал регистр, куда записываю какие записи из календаря созданы в Otlookе пользователя и те которые загрузил.
      2. При загрузке им 1С, происходит автоматическая создания новых событии из календаря пользователя из 1С, загружаются события которых нет.
      Недостатки метода:
      — если пользователь долгое время не заходит в 1С, соответственно проблема.
      — не работает в веб интерфейсе.
      3. Выводятся сообщения о новых событиях в 1С.

  1. Не знаю так Вам надо или не, но вот вариант (запись идет в свой календарь и в календарь другого пользователя):
    Событие = Outlook.CreateItem(1);
    Событие.Subject = «Название события»;
    Событие.Start = «15.08.2016 15:00:00»;
    Событие.End = «15.08.2016 16:00:00»;
    Событие.Body = «Описание события»;
    Событие.Location = «Место события»;
    Событие.Recipients.Add(«почта@mail.ru»); // отправляем событие другому пользователю

    //Если нескольким пользователям, то:
    массив = Новый Массив;
    массив.Добавить(«почта1@mail.ru»);
    массив.Добавить(«почта2@mail.ru»);
    Для каждого Строка Из массив Цикл
    Получатель = Событие.Recipients.Add(Строка);
    Получатель.Type = 1;
    КонецЦикла;

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