Имя: Пароль:
1C
1С v8
Запрос и отборы в запросе
,
0 location
 
naïve
28.10.16
10:50
Доброго дня всем. Помогите плз столкнулся с проблемой и не могу ее решить. Подскажите плз.

Есть РС ЗначенияСвойствОбъектов, вот к данному регистру необходимо написать хитрый отбор, т.е. у номенклатуры есть 6 разлиных свойств, такие как цвет, тип, марка и т.д. Так вот необходимо написать отбор, если пользователь выбрал например 2 цвета: желтый и красный, то отобразило всю номенклатуру где есть данный цвет, а если он еще выбрал например тип - шорты, то только чтобы были шорты красного и желтого цвета.

У меня нифига не получилось с этими отборами, я просто добавляв список значений, выводилась вся номенклатура по всем свойствам. делал через объединить где ограничивал запрос по свойству и списку значений, то же вываливается вся номенклатура ( я понимаю что делал не правильно). Подскажите куда копать, как сделать чтобы отборы применялись уже к отобранным результатам. Спасибо.
1 iceman2112
 
28.10.16
11:10
В сторону мат. части. А именно характеристик в запросе
2 location
 
naïve
28.10.16
11:11
(1) подробней плз.
3 mehfk
 
28.10.16
11:14
4 Windyhead
 
28.10.16
11:15
(0) Выложи текст запроса.
5 Лефмихалыч
 
28.10.16
11:22
например:

ВЫБРАТЬ Объект
ИЗ ЗначенияСвойствОбъектов
ГДЕ Значение в (&Желтый, &Красный, &Шорты)
6 azernot
 
28.10.16
11:27
(5) Даст любые шорты, и любую жёлтую или красную номенклатуру

(0) Мне кажется надо соединять к номенклатуре слева 6 подзапросов по каждому свойству, чтобы на выходе была табличка
Номенклатура
ЗначениеСвойстваВида1
ЗначениеСвойстваВида2
ЗначениеСвойстваВида3
...

И далее уже ставить условия
типа
ЗначениеСвойстваВида1 в (&СписокСвойствВида1)
И
ЗначениеСвойстваВида2 в (&СписокСвойствВида2)
7 Лефмихалыч
 
28.10.16
11:32
(6)>Даст любые шорты, и любую жёлтую или красную номенклатуру
так вроде это и надо, не?
8 Лефмихалыч
 
28.10.16
11:32
А! Надо одновременно чтобы. Ща, минуту...
9 Лефмихалыч
 
28.10.16
11:37
ВЫБРАТЬ Объект, Значение
ПОМЕСТИТЬ ВТ
ИЗ ЗначенияСвойствОбъектов
ГДЕ Значение в (&Желтый, &Красный, &Шорты)
;
ВЫБРАТЬ Оъект
ИЗ ВТ
СГРУППИРОВАТЬ ПО ОБъект имеющие Количество(Различные Значение) = 3

http://orig02.deviantart.net/6a55/f/2009/098/f/1/problem_officer__by_siraj_a.jpg
10 azernot
 
28.10.16
11:40
(9) Шорты не могут быть одновременно и жёлтыми и красными..
Разве что шорты сборной Испании по футболу ;)
11 kumena
 
28.10.16
11:45
> Разве что шорты сборной Испании по футболу ;)

ааа, у них тоже клоуны играют!
12 location
 
naïve
28.10.16
11:45
(10) нет не одновременно, например желтый и красный относятся к свойству цвет, вот тут может быть номенклатура где цвет желтый или красный или зеленый или синий или т.д., но когда отбор сделали для другого свойства тип - шорты, то должна отобратся вся номенклатура шорты либо красные либо синие либо ...
13 azernot
 
28.10.16
11:48
(12) Я это понимаю.Моё предложение в (6).
А то, что предлагается в (9) может работать только на жёлто-красных шортах.
14 Лефмихалыч
 
28.10.16
11:50
(12) у тебя других вариантов, кроме (6), нет. По одному соединению на каждое свойство
15 Митяйский
 
28.10.16
12:07
Я обычно как в (6) делаю.
Порезать таблицу РС на подтаблицы по каждому из нужных свойств и прицепить к номенклатуре сбоку.

Это самый простой вариант, но правда будет проблема с дописыванием запроса каждый раз, когда юзеры надумают привязать какое-нибудь новое свойство к номенклатуре, дополнительно к шести уже существующим.
16 catena
 
28.10.16
12:16
(9)имеющие Количество(Различные Значение) = 2
2 же свойства выбрано
17 Лефмихалыч
 
28.10.16
12:19
(16) но значения-то три.
18 catena
 
28.10.16
12:37
(17)Желтый и красный ЦВЕТ на один объект в регистре не запишутся. =3 при данных условиях не выполнится никогда.
19 bootini
 
28.10.16
12:42
Выбор когда &Шорты= Значение("Справочник.Шорты.ПустаяСсылка") тогда
Истина
иначе
ЗначениеСвойстваВида3  = &Шорты
Конец