Кастомизация
20
Янв
4

Скрытие объектов из Расширенного поиска

У полей CRM есть такое свойство «Доступно для Расширенного поиска». Но к сожалению такого свойства нет у самих объектов. Вы конечно можете просто отобрать права на чтение в Ролях безопасности и пользователь вовсе перестанет его видеть ( в том числе и в Расширенном поиске). Но иногда необходимо убрать объект только из Расширенного поиска.

Чтобы добиться этого можно воспользоваться неподдерживаемым апдейтом базы данных. У метаданных объектов есть свойство IsValidForAdvancedFind, которое определяет, будет ли он отображаться в Расширенном поиске. Например, чтобы исключить Организацию из Расширенного поиска выполните в отношении базы данных организации CRM два таких запрос:

update
	MetadataSchema.Entity set IsValidForAdvancedFind = 0
where
	Name = 'account'
update
	MetadataSchema.Relationship set IsValidForAdvancedFind = 0
where
	1=1
	and	ReferencingEntityId in (select MetadataSchema.Entity.EntityId from MetadataSchema.Entity where Name = 'account')
	and IsValidForAdvancedFind = 1

Далее выполните iisreset и готово.



Комментарии (4)
  • Николай 20.01.2013

    А как сделать, чтобы не было видно для некоторых ролей. а для остальных видно?

  • slivka_83 20.01.2013

    Настроить в ролях, чтобы не видели эти объекты вовсе 🙂

  • Николай 20.01.2013

    🙂 Смотрите, мне нужно, чтобы можно было работать с этой сущностью, но в расширенном поиске ее использовать нельзя — об этом как раз и пост. Но он закрывает для всех возможность видеть, а нужно, например,
    сотрудник 1 может работать и искать в рас. поиске.
    сотрудник 2 может работать, но не может искать в рас. поиске.

  • slivka_83 20.01.2013

    Тогда боюсь, что решение мне не известно. Могу предположить, что можно как то перехватить списко возвращаемых объектов, но что именно нужно перехватывать с т.з. кода я не знаю…

*

code