Доброго времени суток!

Подскажите, пожалуйста, каким будет самый оптимальный способ фильтрации записей раздела, при котором пользователь видит только "свои" записи, за которыми он закреплен, как ответственный, но также может искать нужные записи среди всех записей раздела? 

Т.е. пользователь с ролью "продавец" видит в разделе 100 своих записей, но также имеет возможность искать среди остальных 900 записей из общей тысячи.

Нравится

3 комментария

Если не надо полностью скрывать информацию, то можно сделать с помощью быстрых фильтров, как в Активностях или Обращениях

Владимир Соколов,

что делать в случае необходимости полностью скрывать информацию?

Арнур Келгенбаев,

Да, это нужно, когда доступ надо ограничить, но обеспечить проверку, нет ли таких контрагентов и контактов уже в базе. Довольно много разработки, но мы делали так:

 

Хранимая процедура, которая возвращает набор данных (обычно намного меньше полей, чем в объекте). Страница, на которой можно задать параметры поиска и в детали получить результат. Ещё делали вариант вывода таблицы при изменении, например, названия контрагента, чтобы дубликаты отлавливать уже до ввода всей информации. 

Показать все комментарии

Добрый день!

У меня есть задача по фильтрации записей раздела в зависимости от пользователя. А если быть точнее, то для консультанта нужно отфильтровать раздел "Контакты" так, чтобы отображались только те записи, в которых он является ответственным лицом. Также мне подсказали, что это можно реализовать через БП, который будет вызывать подпроцесс, который в свою очередь будет раздавать каждой записи, соответствующей всем условиям, права для отображения в разделе. 

К сожалению, в версии 7.13.2 я не обнаружил возможности передать коллекцию записей в подпроцесс. Но нашел "обходной" вариант, описанный в данной статье: https://community.terrasoft.ru/questions/perebor-rezultiruyuschey-kollekcii-elementa-chitat-dannye.

Изображение удалено.

Изображение удалено.

Изображение удалено.

Изображение удалено.

Изображение удалено.

Моя реализация, за небольшим исключением, почти полностью повторяет процесс из статьи. В самом конце я хочу передать в элемент "Изменить права доступа" параметр каждой записи и оставить право на просмотр только ответственному консультанту. БП работает без поломок, но ожидаемого результата нет. Подскажите, пожалуйста, в чем ошибка?

Нравится

1 комментарий

Добрый день!

Не совсем понятно, зачем в этом процессе использовать дополнительный код в сценарии C#. Вы можете указать условия фильтрации записей раздела Контакты прямо в элементе "Изменить права доступа". Добавьте там условие "Ответственный = Консультант" вместо фильтрации по Id и это будет работать точно так же для всех необходимых записей.

Показать все комментарии

Доброго времени суток!

Подскажите, пожалуйста, как можно реализовать фильтрацию записей раздела так, чтобы ответственный пользователь при открытии страницы раздела видел только те записи, за которыми он закреплен? 

Допустим, у нас есть раздел "Продажи" и n-ное число записей. Пользователь отмечен ответственным за определенное число этих записей. Как теперь можно средствами БП настроить права доступа к записям, которые уже были созданы? 

Как вариант предложили БП по настройке прав доступа по добавлению новой или редактированию существующей записи. А возможно ли как-нибудь пройтись БП по существующим записям без их редактирования?

Нравится

3 комментария
Лучший ответ

Доброе утро.

 

Да, можно в БП с помощью элемента [Чтение данных] вычитать записи из раздела 'Продажи', после добавить подпроцесс, который для каждой записи перераздаст права доступа в зависимости от ответственного.

Доброе утро.

 

Да, можно в БП с помощью элемента [Чтение данных] вычитать записи из раздела 'Продажи', после добавить подпроцесс, который для каждой записи перераздаст права доступа в зависимости от ответственного.

Благодарю!

Единственное, что там ограничение в 5000 экземпляров подпроцесса. Так что, если продаж больше, то придётся разделять на несколько запусков

Показать все комментарии

Доброго времени суток! Подскажите, пожалуйста, как можно настроить фильтрацию отображаемых для сотрудника записей раздела так, чтобы он видел только те записи, которые касаются только его ? Допустим отображение только тех продаж, за которые несет ответственность определенный сотрудник. 

Нравится

3 комментария

Здравствуйте.

 

Такую функциональность можно разработать с помощью настройки прав доступа на записи в бизнес-процессе.

 

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

Алла Савельева,

возможно ли провести процесс раздачи доступа к уже созданным записям ? Т.е. процесс пробежался бы по всем записям, как запрос "update" и определил доступы.

Арнур Келгенбаев,

Арнур, здравствуйте, можно организовать Вашу задачу в виде бизнес-процесса, который вычитывает коллекцию записей по фильтру, затем  последовательно передаёт записи в подпроцесс, и применяет элемент "Изменить права доступа" на каждый элемент коллекции.

 

Детальнее:

https://academy.terrasoft.ru/docs/user/biznes_processy/nastrojka_proces…

Показать все комментарии

Всем доброго времени суток.

Столкнулся с проблемой фильтрации в разделе активностей в списочном представлении.

Создал ModuleConfig, прописал в нем фильтрацию, название модуля добавил в манифест, но при отработке вываливается ошибка - http://prntscr.com/nns86h

 

Terrasoft.sdk.Module.addFilter("Activity", Ext.create("Terrasoft.Filter", {
	property: "Owner",
	value: Terrasoft.CurrentUserInfo.contactId
}));

так же не работает сортировка - http://prntscr.com/nns8sc

 

Terrasoft.sdk.GridPage.setOrderByColumns("Activity", {
	column: "StartDate",
	orderType: Terrasoft.OrderTypes.DESC
});

В чем может быть проблема?

Нравится

1 комментарий

Судя по тексту сообщения, код пытается сделать вставку (push) элемента в массив, а массив равен null. Где именно и почему это происходит, можно увидеть, открыв скрипты filter.js, sdk-utils.js и module-sdk.js в указанных на экране номерах строк.

Показать все комментарии

Здравствуйте! А как настроить фильтрацию в мобильном приложении с применением обратных связей или такая возможность отсутсвует?

Нравится

1 комментарий

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

Показать все комментарии

Добрый день!

Необходимо отфильтровать из кода, по кастомному полю раздел. Нашел QuickFilterModuleV2, но не могу никак разобраться как его использовать. Во время дебага из браузера удалось при вызове метода showQuickFilter отобразилось поле редактирования фильтра. Но в QuickFilterModuleV2 все методы являются protected или private, и к ним нет доступа.

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

Нравится

2 комментария

Здравствуйте, есть две темы, фильтрация раздела из другого раздела:
http://www.community.terrasoft.ru/forum/topic/12640

Фильтрация текущего раздела из текущего раздела:
http://www.community.terrasoft.ua/forum/topic/15943

"Мотков Илья" написал:

Здравствуйте, есть две темы, фильтрация раздела из другого раздела:

http://www.community.terrasoft.ru/forum/topic/12640

Фильтрация текущего раздела из текущего раздела:

http://www.community.terrasoft.ua/forum/topic/15943


Спасибо, обе темы видел.
Во вторую только сегодня добавили новый ответ, решение подходит, еще раз спасибо!

Показать все комментарии