Имя: Пароль:
1C
1С v8
Ограничение в RLS
,
0 Aleksei_Pro
 
17.12.12
13:45
Написал ограничение , не пойму почему ругается на строку "Контрагенты.Наименование ПОДОБНО ""Запрет"") "

##Если &ИспользоватьОграниченияПравДоступаНаУровнеЗаписей ##Тогда
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ ВЫБОР
  КОГДА ТекущаяТаблица.#Параметр(1) В
              (ВЫБРАТЬ
         ВложенныйЗапрос.Ссылка
     ИЗ
         (ВЫБРАТЬ
         Контрагенты.Ссылка КАК Ссылка
     ИЗ
             Справочник.Контрагенты КАК Контрагенты
         ГДЕ
             Контрагенты.Наименование ПОДОБНО ""Запрет"") КАК ВложенныйЗапрос
     ГДЕ
     ВложенныйЗапрос.Ссылка В ИЕРАРХИИ(&ТекущаяТаблица.#Параметр(1)))
      ТОГДА ИСТИНА
   ИНАЧЕ ЛОЖЬ
КОНЕЦ
##КонецЕсли
1 Aleksei_Pro
 
17.12.12
13:54
Вот какая ошибка : Ошибка в ограничении доступа к данным.
объект: 'Справочник.Контрагенты', поле: 'Ссылка'; право: 'Чтение'
{(13, 44)}: Ожидается выражение ")"
Контрагенты.Наименование ПОДОБНО ""<<?>>Запрет"") КАК ВложенныйЗапрос
по причине:
{(13, 44)}: Ожидается выражение ")"
Контрагенты.Наименование ПОДОБНО ""<<?>>Запрет"") КАК ВложенныйЗапрос
2 leonidkorolev
 
17.12.12
14:00
(2) Ковычки точно двойные?
3 Aleksei_Pro
 
17.12.12
14:01
(2) да двойные конечно
4 marty0701
 
17.12.12
14:06
ПОДОБНО """"Запрет""""
Пробуй
5 marty0701
 
17.12.12
14:08
Ой не, там получится "Запрет", Тройные кавычки втыкни.
6 Aleksei_Pro
 
17.12.12
14:10
Что то не то , мне надо выбрать элементы, которые входят в "Запрет" , а я как то не так ставлю
7 marty0701
 
17.12.12
14:11
=), %% не забыл?
8 Aleksei_Pro
 
17.12.12
14:14
запрос как то надо по другому писать , мне надо установть на вхождение в папку запрет
9 Aleksei_Pro
 
17.12.12
14:17
А вообще реально написать RLS  на вхождение элемента в папку "Запрет"?
10 Aleksei_Pro
 
17.12.12
15:16
Почему то не работает:
"ВЫБРАТЬ
                   |    Контрагенты.Ссылка
                   |ИЗ
                   |    Справочник.Контрагенты КАК Контрагенты
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   |            Контрагенты.Ссылка КАК Ссылка
                   |        ИЗ
                   |            Справочник.Контрагенты КАК Контрагенты
                   |        ГДЕ
                   |            Контрагенты.Наименование = ""&Запрет&"") КАК ВложенныйЗапрос
                   |        ПО (Контрагенты.Ссылка В (ВложенныйЗапрос.Ссылка))
                   |ГДЕ
                   |    Контрагенты.Ссылка = &Конт";
11 samozvanec
 
17.12.12
15:20
""&Запрет&"" вот эти & зачем?
12 hugo
 
17.12.12
15:22
(11) наверно попутал & с %
13 Aleksei_Pro
 
17.12.12
15:22
(11) согласен , но все равно что то не работает, в объединении наверное
14 Aleksei_Pro
 
17.12.12
15:24
Мне нужно найти вхождение &Конт в папку Запрет
15 hugo
 
17.12.12
15:25
(0) предположу, что rls не может обработать "ПОДОБНО", попробуй через "=" с точным указанием наименования группы
16 Aleksei_Pro
 
17.12.12
15:28
(15) ВЫБРАТЬ
                   |    Контрагенты.Ссылка
                   |ИЗ
                   |    Справочник.Контрагенты КАК Контрагенты
                   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   |            Контрагенты.Ссылка КАК Ссылка
                   |        ИЗ
                   |            Справочник.Контрагенты КАК Контрагенты
                   |        ГДЕ
                   |            Контрагенты.Наименование = ""Запрет"") КАК ВложенныйЗапрос
                   |        ПО (Контрагенты.Ссылка В (ВложенныйЗапрос.Ссылка))
                   |ГДЕ
                   |    Контрагенты.Ссылка = &Конт";


Вот он не работает..
17 Aleksei_Pro
 
17.12.12
15:28
Поидее запрос то фигня а что то не работает.
18 pessok
 
17.12.12
15:36
тоже склоняюсь к (15). сделай лучше предопределенным
19 Lexusss
 
17.12.12
15:39
В иерархии не работает в RLS
20 Aleksei_Pro
 
17.12.12
15:41
(19) т.е никак не поставить RLS  на видимость определенной папки?
21 Aleksei_Pro
 
17.12.12
15:41
(20) и разумеется всех элементов в данной папке
22 pessok
 
17.12.12
15:44
(21) да ерунда, не может такого быть
ВЫБРАТЬ А.А Из Ы КАК А ГДЕ А В (ВЫБРАТЬ З.В Из Ё КАК З) не отработает чтоль?
23 narayanan
 
17.12.12
15:47
Если В ИЕРАРХИИ, то ставь на РОДИТЕЛЬ
24 Lexusss
 
17.12.12
15:50
(20) Следует разделить 4 проблемы:
1. Видимость самой папки
2. Видимость элементов, расположенных непосредственно в определенной папке
3. Видимость папок, расположенных непосредственно в определенной папке
4. Видимость всех подпапок и вложенных элементов на всех уровнях внутри определенной папки.
Что конкретно Вас интересует?
25 Aleksei_Pro
 
17.12.12
15:53
24 мне нкжно чтобы пользователь работал и видел тока 1 папку, остальное ему не видно и нельзя создавать элементы не в своей папке
26 Aleksei_Pro
 
17.12.12
15:56
(22) тож не взлетает
   Запрос = новый Запрос;
   Запрос.УстановитьПараметр("Конт",Контрагент);
   Запрос.Текст =  "ВЫБРАТЬ
                   |    Контрагенты.Ссылка
                   |ИЗ
                   |    Справочник.Контрагенты КАК Контрагенты
                   |ГДЕ
                   |    Контрагенты.Ссылка В
                   |            (ВЫБРАТЬ
                   |                Контрагенты.Ссылка
                   |            ИЗ
                   |                Справочник.Контрагенты КАК Контрагенты
                   |            ГДЕ
                   |                Контрагенты.Наименование = ""Запрет"")
                   |    И Контрагенты.Ссылка = &Конт";
27 Aleksei_Pro
 
17.12.12
16:01
|    И Контрагенты.Ссылка = &Конт"; - без этого условия в выборку попадает "Запрет"
28 pessok
 
17.12.12
16:05
(26) сделай все же предопределенным, для "попробовать"
29 Aleksei_Pro
 
17.12.12
16:10
(28) не выход , запрос вроде как правильно написан что не так то?
30 pessok
 
17.12.12
16:11
ГДЕ
                   |                Контрагенты.Наименование = ""Запрет""

вот тут не нравится

ГДЕ
                   |


Контрагенты.Владелец.Наименование = ""Запрет"", не?
31 narayanan
 
17.12.12
16:13
стоить проверить - проблема именно В ИЕРАРХИИ или ее использовании в сочетании с подзапросом. Хотя в типовых RLS вроде через родителя достают. Т.е. ССылка.Родитель = РезультатПодзапроса.Ссылка ИЛИ Ссылка.Родитель = РезультатПодзапроса.Ссылка.Родитель ИЛИ ... по количеству уровней справочника. При данном условии целесообразнее использовать внутреннее соединение.
32 Aleksei_Pro
 
17.12.12
16:14
(30) не , во первых откуда владелец , во вторых если в "запрет" есть есть 4,5,6 папкок то тогда че?
33 Aleksei_Pro
 
17.12.12
16:17
(31) про внутреенне соединение , сможешь код показать - я делал не работает тоже.
34 pessok
 
17.12.12
16:21
(32) владелец - это родитель есессна. а нельзя в РЛС запихать массив в параметр?
35 pessok
 
17.12.12
16:24
+(34) ну т.е. мы же можем передать туда стандартные параметры а-ля "Организация", "Подразделение". Почему бы не пихнуть массив доступных элементов справочника?
36 pessok
 
17.12.12
16:25
и в запросе у тебя будет  
ГДЕ Контрагенты.Ссылка В #параметр(3)
37 pessok
 
17.12.12
16:25
тока хз, реально ли запихнуть...