|
Запрос: Все элементы списка есть в ТЧ объекта | ☑ | ||
---|---|---|---|---|
0
ParinovS
23.04.12
✎
16:18
|
Доброго времени суток.
Предисловие: Есть справочник, у него есть ТЧ. Задача: Необходимо выбрать элементы справочника, у которых есть в ТЧ все элементы из списка, размеры которого могут быть разными (1, 2, ... n элементов). Пример. Элемент1 ТЧ Элемента1: 1, 2, 3, 4, 5, 6. Элемент2 ТЧ Элемента2: 1, 2, 3, 4, 5: Список: 2, 5, 6. Вывести необходимо только Элемент1, т.к. в нем есть все элементы из списка. Как организовать запрос? |
|||
1
ParinovS
23.04.12
✎
16:24
|
up
|
|||
2
Domanoff26
23.04.12
✎
16:28
|
список В тчЭлемента?
|
|||
3
ParinovS
23.04.12
✎
16:29
|
да
|
|||
4
Baximilian
23.04.12
✎
16:32
|
ВЫБРАТЬ
ТвойСправочник.Ссылка ИЗ Справочник.ТвойСправочник КАК ТвойСправочник ГДЕ &Список В (ТвойСправочник.ТабличнаяЧасть.РеквизитТЧ) Попробуй, хотя я не могу гарантировать, что оно не ругнется на параметр если туда передать список или массив. |
|||
5
Reset
23.04.12
✎
16:32
|
Выбрать где количество различных из табличной части, соединенной внутренним соединением на временную таблицу со списком, равно количеству элементов в списке.
|
|||
6
Baximilian
23.04.12
✎
16:33
|
(5) это только количество даст, по твоей логике (2,5,4) = (1,2,3) потому что количество =.
|
|||
7
Domanoff26
23.04.12
✎
16:34
|
(3) тут я имелл виду (4)
|
|||
8
Reset
23.04.12
✎
16:34
|
(2)(4)(6) бред
|
|||
9
Domanoff26
23.04.12
✎
16:34
|
(6) там же соединения. в твоем случае строк будет только одна
|
|||
10
ParinovS
23.04.12
✎
17:01
|
Baximilian, запрос по ошибке валится...
|
|||
11
Ненавижу 1С
гуру
23.04.12
✎
17:05
|
выбрать
ТЧ.ссылка из справочник.Твой.ТЧ как ТЧ сгруппировать по ТЧ.ссылка имеющие количество(различные (выбор когда ТЧ.Реквизит в (&ТвойСписок) тогда ТЧ.Реквизит конец))=&РазмерСписка |
|||
12
Reset
23.04.12
✎
17:08
|
(0) пример к (5)
ТаблицаОбязательных=Новый ТаблицаЗначений; ТаблицаОбязательных.Колонки.Добавить("НекоеЗначение",Новый ОписаниеТипов("ТипНекоегоЗначения")); // Заполнить ТаблицаОбязательных обязательными значениями Запрос=Новый Запрос("ВЫБРАТЬ | ВходнойСписок.НекоеЗначение |ПОМЕСТИТЬ Отбор |ИЗ | &ВходнойСписок КАК ВходнойСписок |; |ВЫБРАТЬ | ТабличнаяЧасть.Ссылка |ИЗ | Справочник.ИмяСправочника.ИмяТабличнойЧасти КАК ТабличнаяЧасть | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Отбор КАК Отбор | ПО ТабличнаяЧасть.НекоеЗначение = Отбор.НекоеЗначение | |СГРУППИРОВАТЬ ПО | ТабличнаяЧасть.Ссылка | |ИМЕЮЩИЕ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ТабличнаяЧасть.НекоеЗначение) = &Количество"); Запрос.УстановитьПараметр("ВходнойСписок",ТаблицаОбязательных); Запрос.УстановитьПараметр("Количество",ТаблицаОбязательных.Количество()); // // На выходе - ссылки на элементы справочника, удовлетворяющие условию в (0) |
|||
13
ParinovS
23.04.12
✎
17:21
|
Спасибо:)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |