Примеры запросов с календарем Outlook через EWS

11.09.20

Интеграция - WEB-интеграция

Примеры создания/изменения/получения/удаления событий календаря Outlook пользователя из 1С через EWS.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Примеры запросов с календарем Outlook через EWS:
.epf 13,20Kb
96
96 Скачать (2 SM) Купить за 2 150 руб.

Попалась синхронизировать календарь в базе 1С с календарем Outlook пользователя.

Нет проблем запустить COM объект outlook и далее уже делать все что нужно, тем более, что такое взаимодействие приходилось делать не раз, в том числе и синхронизацию календарей.

Но отличие этого задания было в том, что синхронизацию надо делать не зависимо от пользователя в рег. Задании.

Поиск решений привел к единственному разумному варианту – использование EWS

https://docs.microsoft.com/ru-ru/exchange/client-developer/exchange-web-services/ews-applications-and-the-exchange-architecture

 

В процессе реализации столкнулся с тем, что по теме интеграции с EWS очень мало информации, приходилось буквально собирать по крупицам.

Много полезного можно найти в документации, но приходилось иногда читать именно на английском, потому что автоматический перевод иногда искажал смысл.

 

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

Через EWS, кстати, можно делать очень много: работать с почтой, отправлять сообщения, создавать/читать задачи, работать с контактами, отправлять приглашения.

Все это описано в документации по ссылке выше.

В обработке же реализованы примеры запросов:

В параметрах указываете адрес веб-службы EWS, логин и пароль для  подключения, также указываете адрес почты, в котором будут создаваться события календаря.

По кнопке примеры запросов – в текст запроса будут вставлены соответствующие запросы, с автоподстановкой параметров из обработки

Id и ChangeKey заполняются автоматически из ответа сервера, нужны для некоторых запросов

Текст ответа – ответ сервера после выполнения запроса

Примеры запросов:

Создать запись календаря – пример запроса создания события в календаре в указанном ящике

Получить все свойства записи outlook – получает все свойства события календаря по Id и ChangeKey (ChangeKey – обязательный параметр, но может быть любым, получается последнее состояние записи)

Актуализировать change key записи outlook – получает актуальный ChangeKey записи по ИД, нужен, например, для запроса изменения записи, если ChangeKey не актуальный – изменение не произойдет

Удалить запись outlook – удаляет событие по Id

Изменить запись outlook – изменяет событие по Id и ChangeKey

Изменить категорию записи outlook – изменяет категорию события

Изменить пользовательские поля записи outlook – изменяет пользовательские свойства в событии. Это как доп. Реквизиты в 1с, их можно установить, даже если нет, но выводится они не будут, тут только создавать свою форму события для Outlook и выводить их.

Получить last modified time записи outlook – получает дату последнего изменения записи по  данным outlook

Получить записей outlook за месяц – получает список событий календаря за период. Запись попадает в ответ, если дата начала или дата окончания попадает в интервал

Получить body записи outlook – предыдущий запрос не возвращает некоторые поля, такие как тело события, вот этим запросом можно получить тело события отдельно.

 

Надеюсь, набор примеров запроса упростит жизнь тому, кому придется разбираться с EWS.

Тестировалось на платформе 8.3.13 и выше, но будет работать на любой платформе и в любой конфигурации в управляемом режиме.

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL(ИТИЛ), 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    4332    5    0    

11

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С.

60000 руб.

07.05.2019    35833    71    45    

30

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    3294    3    3    

5

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    1382    9    2    

11

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    19664    24    24    

20

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    5524    5    2    

6

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 1C:Бухгалтерия Управленческий учет Платные (руб)

Решение осуществляет синхронизацию задач Битрикс24 и 1С, что позволяет в одной системе ставить задачи, контролировать выполнение всего пула задач с группировкой по ответственным и проектам, формировать управленческие отчеты по работе сотрудников (загрузка, просроченные задачи), уведомлять сотрудников о ходе выполнения задач посредством чат-бот Telegram

7200 руб.

04.05.2021    21301    14    19    

18
Отзывы
1. Anton-i-oni 19.08.21 17:31 Сейчас в теме
Отличная публикация - реально сэкономила время! От себя могу добавить следующее:
перед началом использования EWS необходимо выполнить следующие действия:
1) администратор Exchange должен "включить" возможность работать с EWS (см. описание здесь: https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/controlling-client-application-access-to-ews-in-exchange );
2) администратор Exchange должен настроить права для учетной записи (почтового ящика), от имени которой будут производиться манипуляции с календарями пользователей, ящиками и т.п. В частности, при помощи Exchange Management Shell дать пользователю (почтовому ящику) права доступа к ящикам всех прочих пользователей. Это делается shell-командой:
Get-Mailbox | Add-MailboxPermission –user Admin –AccessRight FullAccess
Замените Admin на учетную запись, которой разрешаете права полного доступа на все ящики. Если этого не сделать. при отправке SOAP-запросов, будете получать сообщение вот с таким содержимым:
<m:ResponseMessages>
<m:CreateItemResponseMessage ResponseClass="Error">
<m:MessageText>Не удается найти указанную папку в хранилище.</m:MessageText>
<m:ResponseCode>ErrorFolderNotFound</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:Items/>
</m:CreateItemResponseMessage>
</m:ResponseMessages>;
3) проверить доступность EWS можно при помощи гиперссылки: https://ваш почтовый сервер/ews/Exchange.asmx
Если админ настроил все корректно, вы должный увидеть страницу, в заголовке которой отображается фраза "Служба создана."
77dream77; +1 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Anton-i-oni 19.08.21 17:31 Сейчас в теме
Отличная публикация - реально сэкономила время! От себя могу добавить следующее:
перед началом использования EWS необходимо выполнить следующие действия:
1) администратор Exchange должен "включить" возможность работать с EWS (см. описание здесь: https://docs.microsoft.com/en-us/exchange/client-developer/exchange-web-services/controlling-client-application-access-to-ews-in-exchange );
2) администратор Exchange должен настроить права для учетной записи (почтового ящика), от имени которой будут производиться манипуляции с календарями пользователей, ящиками и т.п. В частности, при помощи Exchange Management Shell дать пользователю (почтовому ящику) права доступа к ящикам всех прочих пользователей. Это делается shell-командой:
Get-Mailbox | Add-MailboxPermission –user Admin –AccessRight FullAccess
Замените Admin на учетную запись, которой разрешаете права полного доступа на все ящики. Если этого не сделать. при отправке SOAP-запросов, будете получать сообщение вот с таким содержимым:
<m:ResponseMessages>
<m:CreateItemResponseMessage ResponseClass="Error">
<m:MessageText>Не удается найти указанную папку в хранилище.</m:MessageText>
<m:ResponseCode>ErrorFolderNotFound</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
<m:Items/>
</m:CreateItemResponseMessage>
</m:ResponseMessages>;
3) проверить доступность EWS можно при помощи гиперссылки: https://ваш почтовый сервер/ews/Exchange.asmx
Если админ настроил все корректно, вы должный увидеть страницу, в заголовке которой отображается фраза "Служба создана."
77dream77; +1 Ответить
2. erutan 106 11.07.22 10:15 Сейчас в теме
Здравствуйте! У нас происходит следующая ошибка

На строчке oXMLHTTP.send(ТекстЗапроса); (строка 27 в обработке) вываливается ошибка Произошла исключительная ситуация (msxml3.dll): Сбой скачивания указанного ресурса.


"

{ВнешняяОбработка.РаботаСEWSOutlook.Форма.Форма.Форма(27)}: oXMLHTTP.send(ТекстЗапроса);

по причине:
Произошла исключительная ситуация (msxml3.dll): Сбой скачивания указанного ресурса.

"

При этом https://mls01/ews/Exchange.asmx выдает, что Служба создана.

Dll указанную зарегистрировали и вручную, ничего не дало, к сожалению.
3. user1456019 21.05.24 17:02 Сейчас в теме
(2) Решили проблему в итоге?
4. erutan 106 21.05.24 22:01 Сейчас в теме
(3) Здравствуйте! В итоге, кажется, нет. Отложили "в долгий ящик"
Оставьте свое сообщение