AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.03.2009, 10:43   #1  
dod is offline
dod
Участник
 
51 / 10 (1) +
Регистрация: 02.10.2007
Здравствуйте, уважаемые форумчане!

вопрос наверное простой, но вот уже сколько бьюсь так и не нашел ответа на него... Ситуация такая: для товаров завели категории. каждый пользователь может видеть только определенную товарную категорию. настроил роли для каждого пользователя под определенную категорию. все работает но только с карточки товара (нажимаю список, вижу только нужное). а если допустим попробовать в произ. плане выбрать товар, то выдает ошибку типа нет разрешения смотреть таблицу товар! подскажите пожалуйста, где я допустил ошибку...
Старый 02.03.2009, 11:11   #2  
kgenius is offline
kgenius
Участник
 
98 / 10 (1) +
Регистрация: 27.10.2004
А как реализовали ограничение в списке, через FILTERGROUP()!?
Так же нужно ограничение сделать и через карточку. Только если в списке вероятнее всего используется FILTERGROUP(2), то в карточке придется ограничение делать через FILTERGROUP(4).
Старый 02.03.2009, 11:23   #3  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
есть еще такое свойство USERECFILTER, вроде через него обходится ошибка
Старый 02.03.2009, 12:23   #4  
dod is offline
dod
Участник
 
51 / 10 (1) +
Регистрация: 02.10.2007
Цитата:
Сообщение от kgenius Посмотреть сообщение
А как реализовали ограничение в списке, через FILTERGROUP()!?
Так же нужно ограничение сделать и через карточку. Только если в списке вероятнее всего используется FILTERGROUP(2), то в карточке придется ограничение делать через FILTERGROUP(4).
ограничение делал стандартно: в правах доступа в данных устанавливал фильтр поля по товарной категории. судя по ответам, без программирования не обойтись?
Старый 02.03.2009, 12:46   #5  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от dod Посмотреть сообщение
ограничение делал стандартно: в правах доступа в данных устанавливал фильтр поля по товарной категории.
Только для SQL-версии работает
Цитата:
судя по ответам, без программирования не обойтись?
Иначе только так!
Старый 02.03.2009, 12:59   #6  
dod is offline
dod
Участник
 
51 / 10 (1) +
Регистрация: 02.10.2007
Цитата:
Сообщение от RedFox Посмотреть сообщение
Только для SQL-версии работает
у нас sql. немного не понял ваш комментарий... даже если SQL-версия, то надо программировать? или стандартом можно обойтись?
Старый 02.03.2009, 13:06   #7  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
Цитата:
Сообщение от Sancho Посмотреть сообщение
есть еще такое свойство USERECFILTER, вроде через него обходится ошибка
опс, ошибся.
SETPERMISSIONFILTER помогает
Старый 02.03.2009, 13:34   #8  
dod is offline
dod
Участник
 
51 / 10 (1) +
Регистрация: 02.10.2007
Цитата:
Сообщение от Sancho Посмотреть сообщение
опс, ошибся.
SETPERMISSIONFILTER помогает
опыта в программировании почти никакого не имею. прочитал, что нужно применять setpermissionfilter на OnAfterGetCurrRecord. а на какой форме? в моем примере на карточке товара или на Товар Список?
Старый 02.03.2009, 13:38   #9  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
в обеих
не навредит
Старый 02.03.2009, 14:43   #10  
dod is offline
dod
Участник
 
51 / 10 (1) +
Регистрация: 02.10.2007
всем спасибо за ответы! вопрос пока не закрыт. как сделаю напишу
Старый 02.03.2009, 18:14   #11  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от dod Посмотреть сообщение
у нас sql. немного не понял ваш комментарий... даже если SQL-версия, то надо программировать? или стандартом можно обойтись?
Ну тогда опишите как Вы это делаете. Через Security Filter?
Старый 03.03.2009, 16:33   #12  
dod is offline
dod
Участник
 
51 / 10 (1) +
Регистрация: 02.10.2007
Цитата:
Сообщение от RedFox Посмотреть сообщение
Ну тогда опишите как Вы это делаете. Через Security Filter?
за пользователем закреплена одна роль, в правах доступа которой в данных 27-ой таблицы в поле Фильтр защиты прописано ограничение по полю Код товарной категории. Фильтр срабатывает только если зайти на карточку товара. вызываю список и вижу только то что мне нужно. всё отлично.

а вот если через заказ продажи или произ. планы и т.п. попытаться попасть к списку товаров, то выдает ошибку типа у вас нет разрешения на чтение таблицы товар.

на форме товара и списка товаров использовал функцию SetPermissionFilter в OnAfterGetCurrRecord. не помогло. может я неверно воспользовался функцией? написал следующее: Rec.SetPermissionFilter;
Старый 03.03.2009, 18:53   #13  
apanko is offline
apanko
MCTS
MCBMSS
Лучший по профессии 2009
 
1,164 / 139 (7) +++++
Регистрация: 24.02.2005
На Product CD есть каталог Doc. В нем файл w1w1adg.pdf.
Посмотрите раздел Supporting Record Level Security (англ.)

Там как раз на примерах все показано.
Старый 05.03.2009, 15:25   #14  
by_HT is offline
by_HT
Участник
 
195 / 10 (1) +
Регистрация: 12.10.2007
Я тут посмотрел и выследил такую закономерность, что если в свойствe поля tableRelation убрать значения и соответствено прикрепить их на форме в лукапе, то все замечательно работает... а убирать значение в свойстве ни есть гуд...
Старый 06.10.2010, 14:34   #15  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Есть 2 таблицы. На обоих установлены фильтры защиты. В первой есть флоуфилд на сумму по второй (но фильтрация осуществляется не по тем полям, для которых установлены фильтры защиты) и абсолютно всегда все записи второй таблицы, которые относятся к первой доступны по фильтру защиты, если доступна запись из первой таблицы. При вычислении флоуфилд всё равно вылетает ошибка. Разруливается только если добавить дополнительный (по сути бессмысленный) фильтр по полю, которое участвует в фильтре защиты. Можно ли решить проблему с флоуфилдами как-то ещё кроме навешивания доп. фильтров или использованяи программирования без использования вычислимых полей?
Старый 06.10.2010, 15:31   #16  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
на примере.
менеджер видит только свои заказы продажи (где он менеджер)
хочется чтобы и баланс в карточке клиента считался по ЕГО счетам и оплатам?
думаю, так не получится
Старый 06.10.2010, 15:46   #17  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Не совсем так.

Таблица 1:
"Операция Но." - Первичный ключ
"Код Склада"
"Сумма" - вычислимое поле по таблице 2 с фильтрами "Таб1. Операция Но."="Операция Но."

Таблица 2:
"Операция Но." - Первичный ключ
"Таб1. Операция Но." - ссылается на ПК таблицы 1
"Код Склада"
"Сумма"

"Код Склада" в таблице 2 всегда совпадает с кодом склада соответствующей записи таблицы 1. Установлен одинаковый фильтр защиты по полям обоих таблиц "Код Склада". Флоуфилд таблицы 1 спотыкается на ошибке, хотя для всех доступных записей таблицы 1 всегда доступны соответствующие записи таблицы 2. Если в флоуфилд добавить доп. фильтр по полю "Код Склада", то всё работает, но делать этого не хочется
Старый 06.10.2010, 17:37   #18  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
И ещё один вопрос. На тестовой базе при попадании кодом в закрытый диапазон записей происходит ошибка. На рабочей базе почему-то на форме всё фильтруется как надо, но в коде при выходе за разрешённый диапазон ошибки не возникает. С чем это может быть связано?
Старый 07.10.2010, 14:49   #19  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от grif Посмотреть сообщение
И ещё один вопрос. На тестовой базе при попадании кодом в закрытый диапазон записей происходит ошибка. На рабочей базе почему-то на форме всё фильтруется как надо, но в коде при выходе за разрешённый диапазон ошибки не возникает. С чем это может быть связано?
Security Filter автоматом накладывается на элементы интерфейса (формы). Объявляя переменную в коде и получая доступ к записям этот фильтр не применяется. Для применения нужно явно вызвать команду SETPERMISSIONFILTER().

Код:
rec.RESET;
rec.SETPERMISSIONFILTER();
IF rec.FIND('-') THEN REPEAT
  // делаем что-нибудь
UNIL rec.NEXT = 0;
Старый 07.10.2010, 16:26   #20  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
romeo, это всё и так понятно, только вопрос был не в том как поставить фильтр, а в том почему при выходе за разрешённый диапазон не происходит ошибка на одной базе, тогда как она происходит на другой.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:30.