Имя: Пароль:
1C
1С v8
Подскажите по RLS - простой отбор
0 Сказочный Баобаб
 
24.09.12
13:34
сильно туплю, хотя задача простая.
Нужно по 2 документам для кладовщика в самописке - складская прога сделать
ограничение на видемость если не разрешенный склад.
Разрешенный склад заносится в константу "Удаленный склад".
т.е. при открытии списка/выбора документа юзер с некой ролью не должен видеть документы не своего склада.
Как написать это в RLS - нет ли примера?
1 Miss1C
 
24.09.12
13:38
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица

       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваДоступаПользователейКОбъектам КАК ПраваДоступаПользователейКОбъектам
       ПО ТекущаяТаблица.Подразделение = ПраваДоступаПользователейКОбъектам.ОбъектДоступа
               И (ПраваДоступаПользователейКОбъектам.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОграниченияПравДоступа.ПодразделенияДанные))
               И (ПраваДоступаПользователейКОбъектам.Пользователь В (&ГруппыТекущегоПользователя)
               И ПраваДоступаПользователейКОбъектам.Чтение = ИСТИНА)

Мой пример делает тоже самое что вам надо только по подразделению.
Вместо Текущая Таблица прописываешь свой объект, например ПоступлениеТоваровИУслуг
2 Miss1C
 
24.09.12
13:39
Ну и вместо Группы пользователей используешь свою контанту
3 Miss1C
 
24.09.12
13:42
ЗаказПокупателя
ИЗ
       ЗаказаПокупателя КАК Заказ
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваДоступаПользователейКОбъектам КАК ПраваДоступаПользователейКОбъектам
       ПО Заказ.Подразделение = ПраваДоступаПользователейКОбъектам.ОбъектДоступа
               И (ПраваДоступаПользователейКОбъектам.Пользователь В (Ваша константа)
           
Как то так)
4 Сказочный Баобаб
 
24.09.12
13:46
(3)спасибо!
Ты красивая )))
5 mih_io
 
24.09.12
13:47
(4) тебя на возбудил её код?

вот как здесь )
Девушка - программист возбуждает своим кодом
6 Сказочный Баобаб
 
24.09.12
14:26
Написал так
ТекущаяТаблица
ИЗ
   #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ ТекущаяТаблица.Склад = Константа.УдаленныйСклад

Так пишет что поле не найдено Константа.УдаленныйСклад
Хотя такая константа есть. Кто в теме?
7 ProgAL
 
24.09.12
14:30
К константе неьлзя обратиться в языке запросов через ЗНАЧЕНИЕ(), если не ошибаюсь. Нужно завести параметр сеанса и при запуске 1с его инициализировать значением константы, а потом к имени параметра сеанса можно обращаться из запросов RLS.
8 Сказочный Баобаб
 
24.09.12
14:32
(7)а к справочнику или РС можно?
9 Miss1C
 
24.09.12
14:34
(6)Константы, а не константа
10 Miss1C
 
24.09.12
14:34
ГДЕ Константы.ВалютаРегламентированногоУчета = &рег
11 ProgAL
 
24.09.12
14:34
Если элемент справочника будет предпределенный, то да Значение(Справочник.ИмяСправочника.ИмяПредопрЗначения).
12 Сказочный Баобаб
 
24.09.12
14:36
(9)да пробовал - Константы.УдаленныйСклад.Значение

не работает - не видит
13 Miss1C
 
24.09.12
14:36
(6)ГДЕ ТекущаяТаблица.Склад = Константы.УдаленныйСклад
14 Miss1C
 
24.09.12
14:37
(12)Без значения видит?
15 Сказочный Баобаб
 
24.09.12
14:38
(14)нет (((
16 Miss1C
 
24.09.12
14:39
(15)Не может этого быть, значит не обновил конфу после добавления константы
17 Miss1C
 
24.09.12
14:43
Посмотри правильно ли имя константы прописано
18 Сказочный Баобаб
 
24.09.12
14:44
Конфа обновлена. Имя верное. В запросах вижу.
Может прав (7) ?
19 Miss1C
 
24.09.12
14:47
(18)У меня все работает, так что смотри можешь и его методом
20 Miss1C
 
24.09.12
14:48
(18)В консоле, через конструктор попробуй вытянуть свою контсанту
21 Сказочный Баобаб
 
24.09.12
14:49
(19) да вот не хотелось бы через параметры сеанса.
Напиши плиз - свой кусок - с константой
22 Miss1C
 
24.09.12
14:55
(21)Смысл, все равно не увидит, перезапусти 1С
23 Шапокляк
 
24.09.12
14:59
(12) Константы.УдаленныйСклад.Получить() тоже не видит?
24 Сказочный Баобаб
 
24.09.12
15:02
(20)скопировал из запроса - увы ((( не видит
25 Сказочный Баобаб
 
24.09.12
15:02
(23)а Получить() тут каким боком
26 Kolls
 
24.09.12
15:07
Делай параметр сеанса - "список доступных складов", заполняй при старте,
и в роли ограничение "где склад в (СДС)"... и все.
27 Сказочный Баобаб
 
24.09.12
15:10
(26)т.е. получается просто прочитать константу нельзя?
А как же у Miss1C - работает же!

Кстати, а как считывать Параметры сеанса - через & или просто указав имя?
28 Miss1C
 
24.09.12
15:10
(26)Смысл если 1С не видит этой константы
29 Miss1C
 
24.09.12
15:10
(27)У меня 8.1
30 Kolls
 
24.09.12
15:11
(27) - прокидался ((, через (&СДС)
(28) - параметр сеанса заполнить при старте
31 Сказочный Баобаб
 
24.09.12
15:14
(29)понятно (((
У меня тонкий клиент 1С82
32 Сказочный Баобаб
 
24.09.12
15:15
Пробовал - что то и типовой не видит
ТекущаяТаблица
ИЗ
   #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ ТекущаяТаблица.Склад = Справочник.ПапкиФайлов.Шаблоны

где Справочник.ПапкиФайлов.Шаблоны - типовой предопределенный
33 Feanorko
 
24.09.12
15:15
(31) дак ты с тонкого клиента читаешь константу? :)
34 Feanorko
 
24.09.12
15:15
(32) ГДЕ ТекущаяТаблица.Склад = ЗНАЧЕНИЕ(Справочник.ПапкиФайлов.Шаблоны)
35 Сказочный Баобаб
 
24.09.12
15:19
(33)да но это не имеет в данном случае значения - так как ошибка выдается в конфигураторе на начальном этапе
36 Сказочный Баобаб
 
24.09.12
15:21
(34)да - так работает
37 Feanorko
 
24.09.12
15:24
(35) на каком начальном этапе? если тонкий клиент, то всё правильно ругается:

КонстантыМенеджер (ConstantsManager)
<Имя константы> (<Constant name>)
Использование:

Только чтение.
Описание:

Тип: КонстантаМенеджер.
Набор свойств содержит константы конфигурации. Доступ к значению осуществляется по имени. Имена свойств совпадают с именами констант, как они заданы в конфигураторе.

Доступность:

Сервер, толстый клиент, внешнее соединение.
38 Сказочный Баобаб
 
24.09.12
15:32
сделал через РС.
И опять засада - не видит его

ТекущаяТаблица
ИЗ
   #ТекущаяТаблица КАК ТекущаяТаблица
ГДЕ ТекущаяТаблица.Склад В (РегистрСведений.Филиал.Склады)

типа РегистрСведений.Филиал.Склады - нету
39 Feanorko
 
24.09.12
15:37
(38) хз какая у тебя структура регистра, попробуй

ГДЕ ТекущаяТаблица.Склад В (ВЫБРАТЬ Склады ИЗ РегистрСведений.Филиал)
40 Сказочный Баобаб
 
24.09.12
16:15
(39)все верно. это я туплю.
Но пилять константы видеть не хочет
41 Feanorko
 
24.09.12
16:24
(40) где не хочет видеть?
42 Сказочный Баобаб
 
24.09.12
16:30
(41)
ТекущаяТаблица
ИЗ
   #ТекущаяТаблица КАК ТекущаяТаблица

ГДЕ ТекущаяТаблица.Склад = Константа.УдаленныйСклад

не работает
43 Feanorko
 
24.09.12
16:35
(42) у меня в запросе тоже так не работает, а вот так работает:

ВЫБРАТЬ
   Константы.ВалютаРегламентированногоУчета
ИЗ
   Константы КАК Константы
44 Сказочный Баобаб
 
24.09.12
16:43
(43)хм...подожди!
45 Feanorko
 
24.09.12
16:47
(44) а если будет необходимо видеть несколько складов? зачем ограничиваться константой?
46 Сказочный Баобаб
 
24.09.12
17:16
(45)я и сам вот в жутких сомнениях. такое возможно. Но должен быть основной склад на чтение всегда.
пока сделал на РС и думаю
47 Feanorko
 
24.09.12
17:43
(46) ну дак и делай сразу нормально, константа для этих целей - бред.