Добрый день!
Написал правило ограничения по номенклатуры:
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
СоставГруппы.Ссылка КАК ГруппаПользователей
ИЗ
Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
ГДЕ
СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
ПО (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей)
ГДЕ (&ИспользоватьОграниченияПравДоступаНаУровнеЗаписей = ЛОЖЬ
ИЛИ (НЕ 1 В
(
ВЫБРАТЬ
1 КАК ПолеОтбора
ИЗ
РегистрСведений.м_ПроектыПользователей КАК м_ПроектыПользователей
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.м_ПроектыНоменклатуры КАК м_ПроектыНоменклатуры
ПО м_ПроектыПользователей.Проект = м_ПроектыНоменклатуры.Проект
ГДЕ
м_ПроектыПользователей.Пользователь = &ТекущийПользователь
И м_ПроектыНоменклатуры.Номенклатура В ИЕРАРХИИ (ТекущаяТаблица.Ссылка)
))
И НЕ Пользователи.Пользователь ЕСТЬ NULL)
Вопрос: почему ругается на поле Ссылка при попытке добавить этот шаблон в ограничение для справочника Номенклатура. Но там же есть поле Ссылка, в чем дело?
Конструкции В ИЕРАРХИИ не приемлит в качестве параметра поля запроса, только параметры запроса.
Конструция В ИЕРАРХИИ вообще отсутствует в языке RLS.
Вообще за такую конструкцию я бы дал в глаз. Что такое "Пользователи."?
Я так понимаю, это RLS на сам справочник номенклатуры? За что ты над ним так издеваешься.
Т ИЗ Т КАК Т
ГДЕ НЕ &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей
ИЛИ
Ссылка В (
ВЫБРАТЬ Номенклатура
ИЗ РегистрСведений.м_ПроектыНоменклатуры
ГДЕ Проект В
(
ВЫБРАТЬ Проект
ИЗ
ГДЕ Пользователь = &ТекущийПользователь
)
)
(4) Написал я так, теперь при открытии справочника Номенклатура мне выдается такая ошибка:
Ошибка в ограничении доступа к данным.
объект: 'Справочник.Номенклатура', поле: 'Родитель'; право: 'Чтение'
Ошибка SDBL:
Создание временной таблицы возможно только в рамках транзакции. (pos=24)
по причине:
Ошибка SDBL:
Создание временной таблицы возможно только в рамках транзакции. (pos=24)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший