Имя: Пароль:
1C
1С v8
Как запросом выбрать заказы, у которых в табличной части присутствует тот или иной товар?
0 slafor
 
28.11.22
22:02
УНФ 1.6.

Есть запрос (вернее, в общем это не просто запрос, это временная таблица, потом она принимает участие в итоговом запросе). Берется регистр Задания на работу, нужно поставить условие, по которому из этого регистра будут браться только те записи, у которых в измерении ЗаказПокупателя есть только те заказы, у которых присутствует та или иная номенклатура (в тч Товары).

Скажем, в записи регистра ЗаданияНаРаботу измерение - ЗаказПокупателя1. В нем в тч Товары присутствует Товар1. Эта запись должна попасть в результат.
И есть запись ЗаданиеНаРаботу с измерением ЗаказПокупателя2, в этом Заказе в тч Товары этого товара нет. Эта запись в результат попасть не должна.

Записи берутся из основной таблицы регистра, не из Оборотов. Потом суммируются (там есть еще особенности, не хочу утруждать задачу). То есть взять просто табличную часть не получится.

Как можно это сделать?
1 НафНаф
 
28.11.22
22:10
Почему не получится? Табличная часть такая же таблица в запросах как и все остальные.
Хотите решение через Соединение, хотите через оператор В
2 Asmody
 
28.11.22
22:37
6 лет стажа...
3 PR
 
28.11.22
22:38
(2) Купил, небось
4 Asmody
 
28.11.22
22:39
(3) недавно с удивлением узнал, что ники на мисте покупаются
5 PR
 
28.11.22
22:41
(4) Предложили продать?
6 Asmody
 
28.11.22
22:42
(5) у вас денег не хватит
7 Krendel
 
28.11.22
22:45
(6) Волшебник более демократичен
8 slafor
 
28.11.22
22:47
(2) Стажа больше. И давно бы уже сделал через вложенные запросы, но кто-то говорил, что сейчас так никто не пишет, только через временные таблицы.
9 НафНаф
 
28.11.22
23:06
(8) ну делай через временные таблицы - можно смотреть на них, как на подзапросы, вычисленные заранее. Результат будет тем же, время выполнения возможно разное, но оптимизировать можно после первой готовой модели
10 Остап Ибрагимович
 
28.11.22
23:14
(8): зачем через вложенные???
11 slafor
 
28.11.22
23:33
(9) Спасибо, попробую.
(10) Ну, это что-то вроде такого условия:
<...> ГДЕ ЗаданияНаРаботу.ЗаказПокупателя В(ВЫБРАТЬ РАЗЛИЧНЫЕ Товары.Ссылка КАК Заказ ИЗ Документ.ЗаказПокупателя.Товары КАК Товары ГДЕ Товары.Номенклатура = &Товар1)
12 Остап Ибрагимович
 
28.11.22
23:34
(11): будь проще - и к тебе потянутся. что-то вроде:
"ВЫБРАТЬ РАЗЛИЧНЫЕ ЗаданияНаРаботку.ЗаказПокупателя
|ИЗ РегистрСведений.ЗаданияНаРаботку КАК ЗаданияНаРаботку
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
|    ПО ЗаданияНаРаботку.ЗаказПокупателя = ЗаказПокупателяТовары.Ссылка И (ЗаказПокупателяТовары.Товар = &Товар)";
13 Остап Ибрагимович
 
28.11.22
23:44
... ну или замени И на ГДЕ
... или попробуй и так, и этак - и сравни быстродействие - и нам расскажи.
14 Mihasya
 
29.11.22
00:10
(0)
"ВЫБРАТЬ
|    ЗаказКлиентаТовары.Ссылка КАК Ссылка
|ИЗ
|    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
|ГДЕ
|    ЗаказКлиентаТовары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
|
|СГРУППИРОВАТЬ ПО
|    ЗаказКлиентаТовары.Ссылка"
15 Остап Ибрагимович
 
29.11.22
01:08
(14): это будут ВСЕ документы указанного вида - а топикстартеру нужны только те, которые есть в измерении евонного регистра
(ну и незачем "в иерархии" если там по равенству)
16 Обработка
 
29.11.22
06:57
(0) Обычно в таких вопросах покзывают свой вариант запроса. Нет даже своего варианта?
17 Serg_1960
 
29.11.22
08:31
(16) Есть :) в (11). А (12) - ближе всех к теме, имхо.
18 Said_We
 
29.11.22
12:58
(8) "но кто-то говорил, что сейчас так никто не пишет, только через временные таблицы" - говорят что кур доят.

От того что делают так или так есть причины. Причина какова? Если не известна причина, то всё что говорят для Вас это вилами по воде.
Необходимо узнать причину и проверить. А то может это просто как в моде - на голове ходить принято потому что кто-то что-то сказал, но к удобству и красоте, по факту, это не имеет никакого отношения.
В Европе модная нетрадиционная ориентация. И они об этом оооочень много говорят. И что в связи с этим надо делать? :-)