![]() |
![]() |
|
v8: Как из Outlook как вытащить календарь? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
19.03.14
✎
10:40
|
Задача - в аутлуке ведется календарь
надо продублировать его в 1С как? |
|||
1
RomaH
naïve
19.03.14
✎
13:54
|
нашел на инфостарте обработку - на первый взгляд все просто
olFolderCalendar = 9; Попытка objOutlook = Новый COMОбъект("Outlook.Application"); Исключение Предупреждение("Не удалось создать объект Outlook.Application"); Возврат; КонецПопытки; objNamespace = objOutlook.GetNamespace("MAPI"); objFolder = objNamespace.GetDefaultFolder(olFolderCalendar); colAppointments = objFolder.Items; Для Каждого objAppointment Из colAppointments Цикл получает список событий, но ! только из календаря "по умолчанию" а у меня календарей несколько как из остальных получить? |
|||
2
RomaH
naïve
19.03.14
✎
13:59
|
т.е. мне надо выцепить общий календарь
|
|||
3
Jaap Vduul
19.03.14
✎
14:09
|
||||
4
Maxus43
19.03.14
✎
14:11
|
>>только из календаря "по умолчанию"
это видимо из-за GetDefaultFolder(olFolderCalendar); в MAPI команду анйти надо, чтоб взять не дефаулт, а нужный.. З.ы. сам не заморачивался, но скоро придётся Ещё и чтоб дублировались в исходящих в аутлуке, отправленные из 1с |
|||
5
dk
19.03.14
✎
14:23
|
надо найти коллекцию календарей и выбрать в ней нужный )
|
|||
6
Kalambur
19.03.14
✎
14:23
|
||||
7
RomaH
naïve
19.03.14
✎
14:28
|
(3)
objNamespace = objOutlook.GetNamespace("MAPI"); objDummy = objOutlook.CreateItem(0); objRecip = objDummy.Recipients.Add("Телеконференции"); objRecip.Resolve(); //myRecipient = objNamespace.CreateRecipient("Телеконференции"); //myRecipient.Resolve(); //П = myRecipient.Resolved; SharedFolder = objNamespace.GetSharedDefaultFolder(objRecip, olFolderCalendar); пишет: {Форма.Форма.Форма(25)}: Ошибка при вызове метода контекста (GetSharedDefaultFolder) SharedFolder = objNamespace.GetSharedDefaultFolder(objRecip, olFolderCalendar); по причине: Произошла исключительная ситуация (Microsoft Outlook): Не распознано одно или несколько имен. т.е. Resolved возвращается Ложь для созхданного объекта |
|||
8
RomaH
naïve
19.03.14
✎
14:34
|
а, блин, надо писать не имя календаря - а имя владельца этого календаря
|
|||
9
RomaH
naïve
19.03.14
✎
14:38
|
GetSharedDefaultFolder - прошел
а что теперь делать с полученым объектом? |
|||
10
RomaH
naïve
19.03.14
✎
14:48
|
olFolderCalendar = 9;
Попытка objOutlook = Новый COMОбъект("Outlook.Application"); Исключение Предупреждение("Не удалось создать объект Outlook.Application"); Возврат; КонецПопытки; objNamespace = objOutlook.GetNamespace("MAPI"); //objDummy = objOutlook.CreateItem(0); //myRecipient = objDummy.Recipients.Add("Телеконференции"); //myRecipient.Resolve(); myRecipient = objNamespace.CreateRecipient("Иванов Антон Геннадьевич"); myRecipient.Resolve(); //П = myRecipient.Resolved; SharedFolder = objNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar); objFolder = objNamespace.GetDefaultFolder(olFolderCalendar); colAppointments = SharedFolder.Items; Для Каждого objAppointment Из colAppointments Цикл КонецЦикла; вот такой воит кол, но цикла по итемам нет - в колекции пусто |
|||
11
Maxus43
19.03.14
✎
14:51
|
чото у тебя везде Create и т.д., тебе ж надо получить существующий, смотри в сторону
Outlook.MAPIFolder oContacts = olNs.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts); Outlook.Items oItems = oContacts.Items; тока на календарь переделай, посомтри какие коллекции есть вобще |
|||
12
RomaH
naïve
19.03.14
✎
14:57
|
(11)
GetSharedDefaultFolder вообще-то гет но у него ДВА параметра |
|||
13
RomaH
naïve
19.03.14
✎
15:00
|
(11) как бы вариантов нет:
http://msdn.microsoft.com/en-us/library/office/ff861868(v=office.15).aspx |
|||
14
Maxus43
19.03.14
✎
15:07
|
(12) у тебя криэйты с ивановым, ты создаёшь, и после этого гет - там поэтому и пусто видимо...
|
|||
15
RomaH
naïve
19.03.14
✎
15:15
|
нормально все
реципеента писал владельца, а надо именно текущего владельца, под которым и работаю в аутлуке |
|||
16
RomaH
naïve
19.03.14
✎
15:16
|
а - нет, не то
|
|||
17
RomaH
naïve
19.03.14
✎
15:17
|
Если в реципеенте пишу себя - то получаю свой же календарь по умолчанию
а если исходного владельца общего календаря - то фигу в итемах |
|||
18
RomaH
naïve
19.03.14
✎
15:19
|
myRecipient = objNamespace.CreateRecipient("Лобанов Роман Александрович");
myRecipient.Resolve(); //П = myRecipient.Resolved; SharedFolder = objNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar); objFolder = objNamespace.GetDefaultFolder(olFolderCalendar); colAppointments = SharedFolder.Items; Для Каждого objAppointment Из colAppointments Цикл КонецЦикла; вот так получаю именно мой календарь и там есть итемы (колекция не пустая) |
|||
19
Maxus43
19.03.14
✎
15:22
|
(18) в итемах есть чего интересного?
|
|||
20
Kalambur
19.03.14
✎
15:23
|
Нормально все у тебя в коде, теперь настрой аутлук, чтобы читать чужой календарь, надо дать доступ к нему.
Или указать ExchangeUser как "Иванов Антон", вроде как-то так |
|||
21
RomaH
naïve
19.03.14
✎
15:43
|
(20) и где это настраивать
в самом аутлуке я этот календарь вижу в том же аутлуке выполняю этот макрос - рисует что доступа нет http://listick.ru/share/wPPbo |
|||
22
Kalambur
19.03.14
✎
15:49
|
"в самом аутлуке я этот календарь вижу
в том же аутлуке выполняю этот макрос - рисует что доступа нет" ну вот это уже странно |
|||
23
RomaH
naïve
19.03.14
✎
15:52
|
(22) ну получается. что я что-то не то все-таки получаю в коде
|
|||
24
RomaH
naïve
19.03.14
✎
15:54
|
у пользователя (отдающего) календарей два
первый показывается если я подключаю календарь (создаю) из адресной книги а второй - мне прислали по почте ссылку (расшарили) смотрел разрешения у юзера - я там имею права редактора (практически полные) |
|||
25
Kalambur
19.03.14
✎
16:10
|
||||
26
Jaap Vduul
19.03.14
✎
18:11
|
Возможно, у тебя получатель резолвится некорректно (т.е. вместо пользователя на сервере берётся из локальных контактов).
Попробуй по smtp адресу вместо имени определять. |
|||
27
RomaH
naïve
20.03.14
✎
07:52
|
(26) одинаково
|
|||
28
RomaH
naïve
20.03.14
✎
07:56
|
(26) на картинке в (21) ведь именно он?
|
|||
29
RomaH
naïve
20.03.14
✎
08:04
|
http://listick.ru/share/wIIak
как бы что-то все-таки получается, но не до конца |
|||
30
RomaH
naïve
20.03.14
✎
08:20
|
(25) менеджер пустой возвращается
http://listick.ru/share/wddcp |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |