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