Конфигурация УТ 10.3.19.4
Общий модуль "УправлениеВзаиморасчетами"
RLS включено
Имеем фрагмент кода:
ТекущийДолг = РегистрыНакопления.ВзаиморасчетыСКонтрагентами.Остатки(,
СтруктураОтбора,"ДоговорКонтрагента","СуммаВзаиморасчетов").Итог("СуммаВзаиморасчетов");
Проблема : при выполнении метода возникает ошибка
"Недостаточно прав на исполнение операции над базой данных..."
Решил так: заменил на запрос с использованием "РАЗРЕШЕННЫЕ"
Вопросы:
1) это я что-то плохо в RLS настроил или разработчики просмотрели?
2) а можно ли вообще использовать метод "Остатки()" + RLS ?
чисто из любопытства...
второй параметр метода "Остатки()" это СтруктураОтбора
формируется она так:
СтруктураОтбора = Новый Структура(); // для отбора остатков СтруктураОтбора.Вставить("ДоговорКонтрагента", Договор);
СтруктураОтбора.Вставить("Контрагент", Договор.Владелец);
При этом известно, что у пользователя есть права на уровне роли (можно читать справочники контрагентов, договоров и организаций) и есть права на данного контрагента на уровне RLS.
У пользователя нет прав на чтение ДРУГОЙ организации, итоги по которой живут в регистре.
Таким образом отбор ограничивает чтение ДОГОВОРОМ, а чтение спотыкается об другую ОРГАНИЗАЦИЮ. ИМХО-нелогично.