02.03.2009, 10:43 | #1 |
Участник
|
Здравствуйте, уважаемые форумчане!
вопрос наверное простой, но вот уже сколько бьюсь так и не нашел ответа на него... Ситуация такая: для товаров завели категории. каждый пользователь может видеть только определенную товарную категорию. настроил роли для каждого пользователя под определенную категорию. все работает но только с карточки товара (нажимаю список, вижу только нужное). а если допустим попробовать в произ. плане выбрать товар, то выдает ошибку типа нет разрешения смотреть таблицу товар! подскажите пожалуйста, где я допустил ошибку... |
|
02.03.2009, 11:11 | #2 |
Участник
|
А как реализовали ограничение в списке, через FILTERGROUP()!?
Так же нужно ограничение сделать и через карточку. Только если в списке вероятнее всего используется FILTERGROUP(2), то в карточке придется ограничение делать через FILTERGROUP(4). |
|
02.03.2009, 11:23 | #3 |
Administrator
|
есть еще такое свойство USERECFILTER, вроде через него обходится ошибка
|
|
02.03.2009, 12:23 | #4 |
Участник
|
ограничение делал стандартно: в правах доступа в данных устанавливал фильтр поля по товарной категории. судя по ответам, без программирования не обойтись?
|
|
02.03.2009, 12:46 | #5 |
Участник
|
|
|
02.03.2009, 12:59 | #6 |
Участник
|
|
|
02.03.2009, 13:06 | #7 |
Administrator
|
|
|
02.03.2009, 13:34 | #8 |
Участник
|
|
|
02.03.2009, 13:38 | #9 |
Administrator
|
в обеих
не навредит |
|
02.03.2009, 14:43 | #10 |
Участник
|
всем спасибо за ответы! вопрос пока не закрыт. как сделаю напишу
|
|
02.03.2009, 18:14 | #11 |
Участник
|
|
|
03.03.2009, 16:33 | #12 |
Участник
|
за пользователем закреплена одна роль, в правах доступа которой в данных 27-ой таблицы в поле Фильтр защиты прописано ограничение по полю Код товарной категории. Фильтр срабатывает только если зайти на карточку товара. вызываю список и вижу только то что мне нужно. всё отлично.
а вот если через заказ продажи или произ. планы и т.п. попытаться попасть к списку товаров, то выдает ошибку типа у вас нет разрешения на чтение таблицы товар. на форме товара и списка товаров использовал функцию SetPermissionFilter в OnAfterGetCurrRecord. не помогло. может я неверно воспользовался функцией? написал следующее: Rec.SetPermissionFilter; |
|
03.03.2009, 18:53 | #13 |
MCTS
|
На Product CD есть каталог Doc. В нем файл w1w1adg.pdf.
Посмотрите раздел Supporting Record Level Security (англ.) Там как раз на примерах все показано. |
|
05.03.2009, 15:25 | #14 |
Участник
|
Я тут посмотрел и выследил такую закономерность, что если в свойствe поля tableRelation убрать значения и соответствено прикрепить их на форме в лукапе, то все замечательно работает... а убирать значение в свойстве ни есть гуд...
|
|
06.10.2010, 14:34 | #15 |
Участник
|
Есть 2 таблицы. На обоих установлены фильтры защиты. В первой есть флоуфилд на сумму по второй (но фильтрация осуществляется не по тем полям, для которых установлены фильтры защиты) и абсолютно всегда все записи второй таблицы, которые относятся к первой доступны по фильтру защиты, если доступна запись из первой таблицы. При вычислении флоуфилд всё равно вылетает ошибка. Разруливается только если добавить дополнительный (по сути бессмысленный) фильтр по полю, которое участвует в фильтре защиты. Можно ли решить проблему с флоуфилдами как-то ещё кроме навешивания доп. фильтров или использованяи программирования без использования вычислимых полей?
|
|
06.10.2010, 15:31 | #16 |
Administrator
|
на примере.
менеджер видит только свои заказы продажи (где он менеджер) хочется чтобы и баланс в карточке клиента считался по ЕГО счетам и оплатам? думаю, так не получится |
|
06.10.2010, 15:46 | #17 |
Участник
|
Не совсем так.
Таблица 1: "Операция Но." - Первичный ключ "Код Склада" "Сумма" - вычислимое поле по таблице 2 с фильтрами "Таб1. Операция Но."="Операция Но." Таблица 2: "Операция Но." - Первичный ключ "Таб1. Операция Но." - ссылается на ПК таблицы 1 "Код Склада" "Сумма" "Код Склада" в таблице 2 всегда совпадает с кодом склада соответствующей записи таблицы 1. Установлен одинаковый фильтр защиты по полям обоих таблиц "Код Склада". Флоуфилд таблицы 1 спотыкается на ошибке, хотя для всех доступных записей таблицы 1 всегда доступны соответствующие записи таблицы 2. Если в флоуфилд добавить доп. фильтр по полю "Код Склада", то всё работает, но делать этого не хочется |
|
06.10.2010, 17:37 | #18 |
Участник
|
И ещё один вопрос. На тестовой базе при попадании кодом в закрытый диапазон записей происходит ошибка. На рабочей базе почему-то на форме всё фильтруется как надо, но в коде при выходе за разрешённый диапазон ошибки не возникает. С чем это может быть связано?
|
|
07.10.2010, 14:49 | #19 |
Участник
|
Цитата:
Код: rec.RESET; rec.SETPERMISSIONFILTER(); IF rec.FIND('-') THEN REPEAT // делаем что-нибудь UNIL rec.NEXT = 0; |
|
07.10.2010, 16:26 | #20 |
Участник
|
romeo, это всё и так понятно, только вопрос был не в том как поставить фильтр, а в том почему при выходе за разрешённый диапазон не происходит ошибка на одной базе, тогда как она происходит на другой.
|
|