Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Спросили меня про возможность запретить синхронизацию контактов CRM и Outlook, оставив в то же время, синхронизацию задач и встреч. Конечно, можно отключить/сделать неактивным правило синхронизации в CRM->Изменение локальных групп. Но если пользователей сотни или тысячи? Что можно сделать в этом случае? Давайте попробуем.
Все фильтры, в том числе и те, которые используются для синхронизации контактов CRM и Outlook, хранятся в специальной таблице UserQueryBase. Соответственно, достаточно просто разобраться в структуре таблице и с помощью неподдерживаемых настроек (прямой доступ к БД является ярчайшим примером неподдерживаемой конфигурации) регулировать синхронизацию контактов для всех пользователей нашей компании.
Итак, какие же поля являются ключевыми для выполнения нашей задачи? Их несколько. Во-первых, ReturnedTypeCode - тип возвращаемого объекта. В нашем случае, этот тип равняется 2 (контакты). Во-вторых, QueryType. После небольшого теста (создание своего фильтра в Outlook), удалось выяснить, что для нашей задачи этот параметр должен равняться 16. И, наконец, StateCode - состояние фильтра (0-активен, 1-неактивен).
Соответственно, задача выглядит достаточно просто - найти все активные фильтры с типом 16 для контактов для всех пользователей и изменить статус фильтра на 1.