|
RLS | ☑ | ||
---|---|---|---|---|
0
qwasqu
16.03.15
✎
14:36
|
Здравствуйте, подскажите как ограничить доступ к записям справочника, имеющим определенный реквизит?
Я делаю так: у справочника запись должна быть видна, если реквизит "Состояние" есть в регистре сведений по текущему пользователю. ТекущаяТаблица из #ТекущаяТаблица как ТекущаяТаблица ГДЕ ТекущаяТаблица.Состояние В (ВЫБРАТЬ РАЗЛИЧНЫЕ НастройкиСостояний.Значение КАК Состояние ИЗ РегистрСведений.НастройкиСостоянийКАК НастройкиСостояний ГДЕ НастройкиСостояний.Пользователь = &ТекущийПользователь И НастройкиСостояний.Настройка = ЗНАЧЕНИЕ(планвидовхарактеристик.НастройкиСостояний.Состояние)) Вообще все записи недоступны. Если вместо операции "В" использовать левое соединение, то эффект то же. Спасибо. |
|||
1
D_E_S_131
16.03.15
✎
14:38
|
Не мог бы описать структуру твоего РС "НастройкиСостояний"?
P.S. Прочитал никнейм ТС и пить захотелось... |
|||
2
vde69
16.03.15
✎
14:42
|
обычно подобные траблы бывают если типы разные
|
|||
3
qwasqu
16.03.15
✎
14:47
|
(1) Структура:
НастройкиСостояний.Настройка - план видов характеристик НастройкиСостояний.Пользователь - пользователи НастройкиСостояний.Значение - справочник.состояния и не только. (2) ограничил тип НастройкиСостояний.Значение ссылка справочник.состояния, не помогло |
|||
4
Лефмихалыч
16.03.15
✎
14:50
|
а запрос этот вложенный у этого текущего пользвоателя возвращает хоть что-нибудь-то?
|
|||
5
qwasqu
16.03.15
✎
14:50
|
(4) Да, возвращает, то, что нужно.
|
|||
6
Лефмихалыч
16.03.15
✎
14:51
|
ну и запрос с вот такой строчкой "РегистрСведений.НастройкиСостоянийКАК НастройкиСостояний"
вообще выполниться не сможет, так что сказочник ты, автор, как тот Римус... |
|||
7
qwasqu
16.03.15
✎
14:52
|
(6)
Да это при перекопировывании так получилось. На самом деле так: "РегистрСведений.НастройкиСостояний КАК НастройкиСостояний" |
|||
8
Лефмихалыч
16.03.15
✎
14:54
|
значит типы не совпадают или кэш прокис
|
|||
9
qwasqu
16.03.15
✎
14:59
|
(8)
Кэш почистил, а типы совпадают, т.к. в консоли проверял, выдает данные. |
|||
10
Лефмихалыч
16.03.15
✎
15:01
|
(9) ну, значит чудо происходит. Приложи к серверу больное что-нибудь, глядишь выздоровеет.
|
|||
11
genosse
16.03.15
✎
15:08
|
Попробуй заменить "ЗНАЧЕНИЕ(планвидовхарактеристик.НастройкиСостояний.Состояние)" на "&ПараметрСеансаСостояние" - заполни при начале работы
|
|||
12
qwasqu
16.03.15
✎
15:27
|
(11)
Я сделал даже еще круче: ТекущаяТаблица ГДЕ ТекущаяТаблица.Состояние = &ТекущееСостояние где текущее состояние нахожу по коду. Все равно не доступны все записи. |
|||
13
vde69
16.03.15
✎
15:27
|
ТекущаяТаблица из #ТекущаяТаблица как ТекущаяТаблица ГДЕ ТекущаяТаблица.Состояние В
(ВЫБРАТЬ РАЗЛИЧНЫЕ ЕстьNULL(НастройкиСостояний.Значение,0) КАК Состояние ИЗ РегистрСведений.НастройкиСостоянийКАК НастройкиСостояний ГДЕ НастройкиСостояний.Пользователь = &ТекущийПользователь И НастройкиСостояний.Настройка = ЗНАЧЕНИЕ(планвидовхарактеристик.НастройкиСостояний.Состояние)) |
|||
14
qwasqu
16.03.15
✎
15:36
|
(13)
null запрос не возвращает, но я попробовал. Хотя после проверки того, что ТекущаяТаблица ГДЕ ТекущаяТаблица.Состояние = &ТекущееСостояние не работает, это было бессмыленно. Что то не пруха какая то. |
|||
15
vde69
16.03.15
✎
15:41
|
можно писать так
ГДЕ Состояние = &ТекущееСостояние |
|||
16
vde69
16.03.15
✎
15:44
|
попробуй так (разумеется код не для работы, просто проверить)
ГДЕ Состояние = &ТекущееСостояние или Состояние.Ссылка есть null |
|||
17
qwasqu
16.03.15
✎
15:51
|
(16)
vde69, Вы Бог 1С! Заработало, только смысла честно говоря не уловил. |
|||
18
vde69
16.03.15
✎
15:58
|
(17) ТекущаяТаблица.Состояние - какой тип ???
проблемма именно в этом! там или составной неопределенный тип или null или тип строка |
|||
19
qwasqu
16.03.15
✎
16:11
|
(18)
100% не составной тип справочник.состояния Единственное, там есть группы. |
|||
20
vde69
16.03.15
✎
16:17
|
все я понял......
делай так ТекущаяТаблица из #ТекущаяТаблица как ТекущаяТаблица ГДЕ ТекущаяТаблица.ЭтоГруппа = Истина ИЛИ ТекущаяТаблица.Состояние В (ВЫБРАТЬ РАЗЛИЧНЫЕ НастройкиСостояний.Значение КАК Состояние ИЗ РегистрСведений.НастройкиСостоянийКАК НастройкиСостояний ГДЕ НастройкиСостояний.Пользователь = &ТекущийПользователь И НастройкиСостояний.Настройка = ЗНАЧЕНИЕ(планвидовхарактеристик.НастройкиСостояний.Состояние)) |
|||
21
qwasqu
16.03.15
✎
16:28
|
(20) Спасибо большое, теперь я понял смысл сего.
|
|||
22
vde69
16.03.15
✎
16:37
|
все просто:
ты создал реквизит "Состояние" и пометил "ТолькоДляЭлементов", для групп он равен null, у тебя список иеархический, он группы не видит и глубже не лезет... если-бы ты снял просмотрт по иерархии - то сразу увидел-бы свой результат... |
|||
23
bolobol
16.03.15
✎
17:18
|
(22) Вот, спасибо! Заодно, так сказать))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |