![]() |
#41 |
Участник
|
|
|
![]() |
#42 |
Administrator
|
))))))))
востановить таблицы? индексы послетали? ну у меня креатив кончился ![]() жду результатов |
|
![]() |
#43 |
Участник
|
Есть возможность настраивать секьюрити фильтры для фирмы.. Может быть фирмы разные в двух базах? ))
|
|
![]() |
#44 |
Участник
|
Цитата:
Если перейти к конкретике, то права настроены для всех фирм и сделано это одинаково в двух базах. |
|
![]() |
#45 |
Участник
|
Тестирую на таблице-справочнике в которой 100 записей. Фильтрую по первичному ключу (одно поле Code). Да и проблема на нескольких разных таблицах выявляется. Кстати ещё выяснил, что вызов функции SETPERMISSIONFILTER не устанавливает никаких фильтров на запись
|
|
![]() |
#46 |
Участник
|
Чтобы не было мысли что я где-то дезинформирую, распишу по шагам свои действия.
Создана новая роль у которой установлены следующие права доступа: Код: Тип Объекта Объект ID Имя Объекта Чтение Вставка Изменение Удаление Запуск Фильтр защиты Данные 14 Склад Да Да Да Да Да Location: Код=ТРАНЗИТ Таблица 0 Да Да Да Да Да Форма 0 Да Да Да Да Да Система 0 Да Да Да Да Да Permissions для таблицы 14 - <Undefined> Permissions для тестовой формы - <Undefined> На форме добавлена кнопка с кодом Код: Name DataType Subtype Length _Loc Record Location _Loc.FINDFIRST; _Loc.SETPERMISSIONFILTER; MESSAGE(_Loc.Code); Если убрать строку _Loc.SETPERMISSIONFILTER, то ничего не меняется. При этом если зайти в Object Designer и глянуть записи для Table 14 Location, то видна только одна запись (смотрю там специально, чтобы вы не предположили что на форме были сохранены фильтры) Причём вот такой код Код: _Perm.SETRANGE(_Perm."Role ID",'ТЕСТ'); _Perm.SETRANGE(_Perm."Object Type",_Perm."Object Type"::"Table Data"); _Perm.FINDFIRST; MESSAGE(FORMAT(_Perm."Object ID")+' '+FORMAT(_Perm."Security Filter")); Цитата:
---------------------------
Microsoft Business Solutions-Navision --------------------------- 14 Location: Код=ТРАНЗИТ --------------------------- ОК --------------------------- |
|
![]() |
#47 |
Участник
|
Немного всё таки дезинформировал из-за спешки
![]() В коде установка фильтров безопасности стояла не в том месте Код: _Loc.FINDFIRST; _Loc.SETPERMISSIONFILTER; MESSAGE(_Loc.Code); Код: _Loc.SETPERMISSIONFILTER; _Loc.FINDFIRST; MESSAGE(_Loc.Code); |
|
![]() |
#48 |
Участник
|
Не должно быть ошибки - код всегда работает с полным набором данных.
Хотите наложить в коде "фильтры доступа" - вызывайте SETPERMISSIONFILTER |
|