Добрый день. Подскажите как можно отфильтровать справочник контактов по группе? Смысл в том что при выборе из справочника в списке должны быть сотрудники только определенной группы (у нас тебе группа "телефермеры")
Нравится
Александр Тыра,
1. Можно сделать эту группу не функциональной, а организационной ролью.
2. Можно попробовать написать свое представление и для фильтрации нужных контактов завязаться на это представление.
Доброе утро.
Ваша группа 'Телефермеры' - это группа администрирования или какая-то другая?
Телефермеры — это как телепузики?
Если это группа администрировования, см. тут. Если группа контактов, то условие фильтра будет даже проще, только по полю FolderId в таблице ContactInFolder.
Александр Тыра,
Посмотрите решение по ссылке выше, которое привел Александр Зверев.
Алла Савельева,
"Организационные роли" работают, а вот "Функциональные роли" нет
Зверев Александр,
Спасибо, решение отличное, но только работают так только
"Организационные роли", а вот "Функциональные роли" нет
Для функциональной должно быть похоже, только другой набор полей с квадратными скобками. В таблице SysAdminUnitInRole хранятся и те, и те роли.
Зверев Александр,
я видел что и те и те, но только при фильтре "Функциональные роли" фильтруются, я так понял, не люди а группы, а люди входят в "Организационные роли", потому такой способ и не работает
Если есть доступ к базе, напишите SQL-запрос, обращающийся к Contact, SysAdminUnit, SysUserInRole и SysAdminUnitInRole и получающий нужную Вам выборку контактов, а затем адаптируйте его под синтаксис с квадратными скобками.
Зверев Александр,
Select * from "Contact" INNER JOIN "SysAdminUnit" ON "Contact"."Id" = "SysAdminUnit"."ContactId" where "SysAdminUnit"."Id" IN (Select "SysAdminUnitId" from "SysAdminUnitInRole" where "SysAdminUnitRoleId" = '{C7C2A8E0-C54A-485B-A7A7-6FE3590E769B}')
так работает, только теперь не могу перевести в код, не срабатывает у меня
filterGroup.add("IsGroupAccess", Terrasoft.createColumnFilterWithParameter( Terrasoft.ComparisonType.EQUAL, "[SysAdminUnit:Contact].[SysAdminUnitInRole:SysAdminUnit].SysAdminUnitRole.Id", "{C7C2A8E0-C54A-485B-A7A7-6FE3590E769B}"));
так пробую - не работает
Алла Савельева,
тут как раз пишут что к таблице этой не добраться такими запросами
https://community.terrasoft.ua/questions/esq-sintaksis-zaprosa-pri-cepo…
Александр Тыра,
1. Можно сделать эту группу не функциональной, а организационной ролью.
2. Можно попробовать написать свое представление и для фильтрации нужных контактов завязаться на это представление.