|
Запрос поиска товара по свойствам | ☑ | ||
---|---|---|---|---|
0
api_vlad
02.08.11
✎
10:41
|
Добрый день. Помогите новичку в запросах составить такой запрос: нужно найти объект в регистре сведений "ЗначенияСвойствОбъектов" (УТ 10.3) по набору значений измерения "Свойство" и ресурса "Значение". Другими словами нам известно несколько пар Свойство-ЗначениеСвойства и надо отобрать те объекты которые соответсвтуют этому набору. Заранее большое спасибо.
|
|||
1
Grusswelle
02.08.11
✎
10:42
|
Хммм... Откуда данные брать (из какой таблицы) знаешь?
|
|||
2
vicof
02.08.11
✎
10:43
|
ВЫБРАТЬ
| ДоговорыКонтрагентов.Владелец КАК Контрагент, | ДоговорыКонтрагентов.Ссылка КАК Договор, | |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов | ПО (ЗначенияСвойствОбъектов.Объект = ДоговорыКонтрагентов.Ссылка) |ГДЕ | ЗначенияСвойствОбъектов.Свойство = &Свойство | И ЗначенияСвойствОбъектов.Значение = &Значение | И ДоговорыКонтрагентов.Организация = &Организация дарю, тока договор на номенклатуру поменяй |
|||
3
Axel2009
02.08.11
✎
10:43
|
т.е. найти все номенклатуры по которым несколько пар сходятся?
|
|||
4
Reset
02.08.11
✎
11:21
|
(0)
Если пар немного, можно несколько раз выполнить (в цикле ;P ) простой запрос типа
Либо вытащить по всем парам одним запросом типа (приведение типов нужно заменить на твои типы свойств и ресурсов)
В &Таб передать таблицу с типизованными колонками и значениями пар |
|||
5
api_vlad
03.08.11
✎
09:01
|
У меня такая ситуация:
Регистр "ЗначенияСвойствОбъектов": Объект /Свойство /ЗначениеСвойства Данные: Товар1 /Цвет /Белый Товар1 /Размер /36 Товар2 /Цвет /Белый Товар2 /Размер /38 Товар3 /Цвет /Серый Параметры фильтра: Цвет:Белый, Размер:36. Найтись должен объект "Товар1" и только. (1) Поправьте если ошибаюсь... Я передам в параметрах только одно значение пары Свойство-ЗначениеСвойства, разве нет? В примере мне нужны две пары... |
|||
6
hhhh
03.08.11
✎
09:15
|
(5) ну передай две пары, чего ты паришься?
|
|||
7
api_vlad
03.08.11
✎
10:10
|
(6) да рад бы... да не знаю как это сделать. в &Свойство и &Значение массивы передавать что ли?
|
|||
8
Reset
03.08.11
✎
10:14
|
(7) Не думал что все так плохо.
Для частного случая в (5):
Это частный случай, а какой общий, я понятия не имею. Ты ж молчишь как партизан. Задача сверсекретная поди и разглашать нельзя. |
|||
9
Reset
03.08.11
✎
10:15
|
ЗначенияСвойств.Свойство2 = &Свойство2
И ЗначенияСвойств.Значение2 = &Значение2 ===> ЗначенияСвойств.Свойство = &Свойство2 И ЗначенияСвойств.Значение = &Значение2 |
|||
10
hhhh
03.08.11
✎
10:16
|
(8) не, не так
ВЫБРАТЬ | ДоговорыКонтрагентов.Владелец КАК Контрагент, | ДоговорыКонтрагентов.Ссылка КАК Договор, | |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов1 | ПО (ЗначенияСвойствОбъектов1.Объект = ДоговорыКонтрагентов.Ссылка) |ГДЕ | ЗначенияСвойствОбъектов1.Свойство = &Свойство1 | И ЗначенияСвойствОбъектов1.Значение = &Значение1 | И ДоговорыКонтрагентов.Организация = &Организация | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов2 | ПО (ЗначенияСвойствОбъектов2.Объект = ДоговорыКонтрагентов.Ссылка) |ГДЕ | ЗначенияСвойствОбъектов2.Свойство = &Свойство2 | И ЗначенияСвойствОбъектов2.Значение = &Значение2 | И ДоговорыКонтрагентов.Организация = &Организация |
|||
11
Axel2009
03.08.11
✎
10:16
|
(8) это или выведет товар1 и товар2
|
|||
12
Axel2009
03.08.11
✎
10:16
|
(10) и счас будет вопрос, а если 3 пары =)
|
|||
13
Reset
03.08.11
✎
10:16
|
(11) Поторопился, виноват
|
|||
14
Axel2009
03.08.11
✎
10:20
|
ВЫБРАТЬ Свойство, Значение
ПОМЕСТИТЬ НаборыПар ИЗ &ТЗ КАК ТЗ ; ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ВНУТРЕННЕЕ СОЕДИНЕНИЕ НаборыПар ПО ЗначенияСвойствОбъектов.Свойство = НаборыПар.Свойство И ЗначенияСвойствОбъектов.Значение = НаборыПар.Значение СГРУППИРОВАТЬ ПО ЗначенияСвойствОбъектов.Объект ИМЕЮЩИЕ КОЛИЧЕСТВО(*) = &КоличествоПар |
|||
15
Reset
03.08.11
✎
10:28
|
(7) (8)
|
|||
16
Reset
03.08.11
✎
10:38
|
(14) &КоличествоПар - Количество различных (одновременно накладываемых на условие)свойств? (цвет и размер в данном случае)
Решение мне нравится) |
|||
17
Axel2009
03.08.11
✎
10:41
|
(16) да, в скуле я бы написал
КОЛИЧЕСТВО(*) = (ВЫБРАТЬ КОЛИЧЕСТВО(*) ИЗ НаборыПар) тут не знаю прокатит али нет |
|||
18
Ненавижу 1С
гуру
03.08.11
✎
10:42
|
как вариант:
ВЫБРАТЬ ТЗ.Свойство, ТЗ.Значение ПОМЕСТИТЬ ТЗ ИЗ &ТЗ КАК ТЗ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЗначенияСвойствОбъектов.Объект ИЗ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ ПО ЗначенияСвойствОбъектов.Свойство = ТЗ.Свойство И ЗначенияСвойствОбъектов.Значение = ТЗ.Значение ГДЕ ЗначенияСвойствОбъектов.Объект ССЫЛКА Справочник.Номенклатура СГРУППИРОВАТЬ ПО ЗначенияСвойствОбъектов.Объект ИМЕЮЩИЕ КОЛИЧЕСТВО(ЗначенияСвойствОбъектов.Объект) = &КоличествоУсловий |
|||
19
api_vlad
03.08.11
✎
10:42
|
(15) Этот запрос мне понятен :-), но в тему к (12) - сколько пар, столько и соединений, так? Иными словами, при заранее неизвестном количестве пар будем строить динамический запрос. (почему бы и нет...)
|
|||
20
Reset
03.08.11
✎
10:44
|
(17) Не, не нужно. В таком виде(14) (с доп параметром) решение позволяет задать несколько условий сразу
ну типа Цвет:Белый, Размер:36 И Цвет:Серый, Размер:38 И Цвет:Малиновый, Размер:45 С результатом Товар1,Товар5,Товар7 |
|||
21
api_vlad
03.08.11
✎
10:44
|
(18)(14)Надо попробовать. Спасибо.
|
|||
22
Reset
03.08.11
✎
10:48
|
(19) Запрос из (15) отвечает на постановку в (5).
Другой постановки Не было, были только обрывки условий. Можно фантазировать сколько угодно, "а что будет, если". Нужно точно описывать, что нужно. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |