Работа с 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С можно скачать в виде внешней обработки.

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

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Оценка статьи:
УжасноПлохоНеплохоХорошоОтлично (оценок: 5, средняя оценка: 5,00 из 5)
Загрузка...

Понравилась статья? Поделиться с друзьями:
Комментарии: 6
  1. Илья

    Можно узнать, как сделать запись календаря другому пользователю?

    1. Ахмат

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

  2. Мария

    Не знаю так Вам надо или не, но вот вариант (запись идет в свой календарь и в календарь другого пользователя):
    Событие = 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;
    КонецЦикла;

  3. Андрей

    можно место Outlook использовать Thunderbird

  4. Алексей

    •при импорте данных выскочит окно, запрашивающее разрешение на доступ к данным, доступ можно разрешить, но не более чем на 10 минут (т.е. через 10 минут окно появится снова), существуют программы, которые автоматически нажимают нужные кнопки в этом окне;

    Подскажите о каких программах идет речь? как сделать что бы данное сообщение не выскакивало?

  5. Екатерина

    Подскажите, пожалуйста, необходимо сделать, чтобы пользователь мог принять или отклонить высылаемую задачу. Нужно сделать, как поручение.
    Сейчас задача отправляется просто как вложенное письмо.
    Не могу нигде найти CreateItem для создания поручения

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: