|
Проверка на вхождение значения в таблицу | ☑ | ||
---|---|---|---|---|
0
MAPATNK2
naïve
19.02.20
✎
10:21
|
УПП 1.3
Прошу прощения за название, не знал как правильно написать. Суть в чем. Есть справочник пользователей. Внутри есть таблица "Доступные склады". Хочу в подписке на событие проверять входит дли склад документа в список доступных складов для пользователя. Но в чем проблема, у пользователя в таблице "Доступные склады" могут быть как и сами склады, так и папки. А ещё с логикой у меня проблемы. Написал простой запрос. Запрос = новый запрос; Запрос.Текст = "ВЫБРАТЬ | ПользователиДоступныеСклады.Склад |ИЗ | Справочник.Пользователи.ДоступныеСклады КАК ПользователиДоступныеСклады |ГДЕ | ПользователиДоступныеСклады.Склад В ИЕРАРХИИ(&СкладДокумента) | И ПользователиДоступныеСклады.Ссылка = &ПользовСсылка"; Запрос.УстановитьПараметр("СкладДокумента",Источник.Склад); Запрос.УстановитьПараметр("ПользовСсылка",ПользовательСсылка); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); Но суть в том, что мне нужно проверять не вхождение складов пользователя в склад документа, а наоборот. Можете помочь с запросом. Допереть не могу. |
|||
1
MAPATNK2
naïve
19.02.20
✎
10:25
|
Я хотел выгрузить во временную таблицу - таблицу справочника пользователи "Доступные склады", далее проверять склад документа на вхождение... но понял, что столкнулся с такой же проблемой. XD. Т.е. я понимаю, как мне проверить входят ли элементы таблицы "Доступные склады" в "Склад документа", а наоборот - Не понимаю....
|
|||
2
dezss
19.02.20
✎
10:26
|
Так в чем проблема?
&СкладДокумента В ИЕРАРХИИ(ПользователиДоступныеСклады.Склад) |
|||
3
MAPATNK2
naïve
19.02.20
✎
10:28
|
(2) Не понял? Так разве можно? XD. Ну если можно, то проблема решена. Вы пример случайно не могли бы привести?
|
|||
4
vicof
19.02.20
✎
10:28
|
тебе ужепривели
|
|||
5
MAPATNK2
naïve
19.02.20
✎
10:29
|
(2) (4) У меня выдает ошибку
|
|||
6
vicof
19.02.20
✎
10:31
|
(5) исправь
|
|||
7
MAPATNK2
naïve
19.02.20
✎
10:31
|
(6) Неверные параметры "В ИЕРАРХИИ"
&СкладДокумента В ИЕРАРХИИ(ПользователиДоступныеСклады.Склад) |
|||
8
pechkin
19.02.20
✎
10:35
|
сначала нужно развернуть все папки. есть разные способы.
ннапример выгрузить все занчения в массив и сдлать запрос по справочнику В ИЕРАРХИИ массив |
|||
9
MAPATNK2
naïve
19.02.20
✎
10:38
|
(8) Т.е. способ выше не рабочий? Только раскрытием?
|
|||
10
pechkin
19.02.20
✎
10:39
|
ну сам же видишь что не рабочий
|
|||
11
MAPATNK2
naïve
19.02.20
✎
10:40
|
(10) Понял, спасибо, буду пробовать так.
|
|||
12
MAPATNK2
naïve
19.02.20
✎
11:29
|
(10) Спасибо за совет. Сделал так. работает отлично.
ТекушийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); ПользовательСсылка = Справочники.Пользователи.НайтиПоКоду(СокрЛП(ТекушийПользователь)); Таб = новый Массив; Таб = ПользовательСсылка.ДоступныеСклады.Выгрузить(,"Склад"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Склады.Ссылка КАК Склад |ИЗ | Справочник.Склады КАК Склады |ГДЕ | Склады.Ссылка В ИЕРАРХИИ(&ТаблицаСкладов) | И Склады.ЭтоГруппа = ЛОЖЬ | И Склады.Ссылка = &СкладДокумента"; Запрос.УстановитьПараметр("ТаблицаСкладов",Таб); Запрос.УстановитьПараметр("СкладДокумента",Источник.Склад); РезультатЗапроса = Запрос.Выполнить().Выгрузить(); |
|||
13
NeoVision
19.02.20
✎
12:18
|
(0)
а так не проще?: Запрос.Текст = "ВЫБРАТЬ | &Склад |ИЗ | Справочник.Пользователи КАК Пользователи |ГДЕ | Пользователи.ДоступныеСклады.Склад = &Склад | И Пользователи.Ссылка = &Пользователь"; |
|||
14
dezss
19.02.20
✎
12:18
|
Прикольно. Не знал, что так нельзя. Сам не пробовал.
(12) Тогда лучше заменить Склады.Ссылка В ИЕРАРХИИ(&ТаблицаСкладов) На что-то вроде Склады.Ссылка В ИЕРАРХИИ(ВЫБРАТЬ ПользователиДоступныеСклады.Склад ИЗ Справочник.Пользователи.ДоступныеСклады КАК ПользователиДоступныеСклады ГДЕ ПользователиДоступныеСклады.Ссылка = &ПользовСсылка) Что за один запрос к базе все отрабатывало. А то это ж подписка. Лучше б оптимизировать. |
|||
15
dezss
19.02.20
✎
12:18
|
(13) В (0) написано, что там могут быть группы.
|
|||
16
pechkin
19.02.20
✎
12:20
|
(14) ветку не читал, срсзу писал?
|
|||
17
dezss
19.02.20
✎
12:36
|
(16) С чего так решил?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |