то ждем ваше обращение в нашей службе тех поддержки.
Пример изменения работы модуля
Пример модификации модуля для версии 11.5. В более поздних версиях этот функционал работает по другому.
Решим задачу выгрузки контактов из корпоративного портала в Outlook 2003. Напомним, что в стандартной поставке «1С-Битрикс: Корпоративный портал» рассчитан на взаимодействие с Outlook 2007.
За формирование и подготовку данных для Outlook отвечает файл /bitrix/modules/intranet/classes/general/ws_contacts.php.
Есть две стандартные проблемы:
- В Outlook 2003 не выгружаются аватарки - вследствие чего сразу же возникает ошибка.
- Не для всех пользователей выгружается компания, к которой они принадлежат (поле в Outlook - Организация).
Решаем первую проблему с помощью функции __getRow($arRes, $listName, &$last_change)
. Комментируем строки установки атрибута картинки:
/*if ($this->bGetImages && $arRes['PERSONAL_PHOTO'] > 0) { $arImage = CIntranetUtils::InitImage($arRes['PERSONAL_PHOTO'], 100, 100); $obRow->setAttribute('ows_Attachments', ';#'.($APPLICATION->IsHTTPS() ? 'https://' : 'http://') .$_SERVER['HTTP_HOST'].$arImage['CACHE']['src'].';#'.CIntranetUtils::makeGUID(md5($arRes['PERSONAL_PHOTO'])).',1;#'); $obRow->setAttribute('ows_MetaInfo_AttachProps', '<File Photo="-1">'.$arImage['FILE']['FILE_NAME'].'</File>'); } else {*/ $obRow->setAttribute('ows_Attachments', 0); //}
Решаем вторую проблему с помощью функции GetListItemChangesSinceToken($listName, $viewFields = '', $query = '', $rowLimit = 0, $changeToken = '')
. В цикле while ($arUser = $obUsers->NavNext())
комментируем все строки, начинающиеся с $arUser['WORK_COMPANY']
(т.е. где просто меняется значение этого атрибута).
return array('GetListResult' => $data);
сделать вывод массива $data
, то можно ознакомиться со схемой выгрузки.Назад в раздел