Имя: Пароль:
1C
 
Оператор В в запросе
0 kostyn
 
16.09.25
11:14
Нужно получить документы, у которых в табличной части ни один из элементов не входил бы в список (ну либо нужно, чтобы в табчасти были только элементы, которые есть в списке). Первое, что пришло на ум вот такой запрос, насколько он правильно отрабатывает?

ВЫБРАТЬ
    СписокПокупок.Ссылка КАК Ссылка
ИЗ
    Документ.СписокПокупок КАК СписокПокупок
ГДЕ
    НЕ СписокПокупок.Товары.Товар В
                (ВЫБРАТЬ
                    ПокупкиОбороты.Товар КАК Товар
                ИЗ
                    РегистрНакопления.Покупки.Обороты КАК ПокупкиОбороты
                ГДЕ
                    ПокупкиОбороты.КПокупкеОборот > 0)
1 Kongo2019
 
16.09.25
11:16
(0) Вложенные запросы нынче не в моде. Делать вложенный как временную таблицу и потом объединяй.
2 Волшебник
 
16.09.25
11:20
(0) Задача неверная, потому что документ СписокПокупок делает движения по регистру Покупки, то есть в результате будут просто непроведённые документы.
3 Ненавижу 1С
 
гуру
16.09.25
11:46
(0) нет, сейчас показывает документы, у которых есть товар не из вложенного товара (а требуется только ВСЕ такие)
(2) Если товар купили, а потом вернули - обороты будут ноль и в список не попадет, например
4 Волшебник
 
16.09.25
11:47
(0) Регистр Покупки надо переименовать в Продажи
5 Dmitrii
 
гуру
16.09.25
12:24
(0) >> получить документы, у которых в табличной части ни один из элементов не входил бы в список

>> нужно, чтобы в табчасти были только элементы, которые есть в списке

Это две разные задачи, решаемые разными запросами.
В любом из указанных случаев запрос может быть БЕЗ использования оператора В.
Или это задача на тестировании и оператор В - обязательное условие?
6 Rovan
 
гуру
16.09.25
12:51
(3) "а требуется только ВСЕ такие)"
сравнивай количество строк в документе с количеством, которое вернул запрос
7 Ненавижу 1С
 
гуру
16.09.25
13:39
(6) я думаю, это тестовое задание, пусть думает
8 lEvGl
 
гуру
16.09.25
13:30
(0) выбрать ссылки, где есть хоть один из списка, исключить эти ссылки из результирующей выборки
9 Маленький Вопросик
 
16.09.25
16:05
Вложенный запрос - это ужасно! Усложняет как чтение, так и корректировку
10 Маленький Вопросик
 
16.09.25
16:09
Делаешь так:

1. Выбираешь все документы (ссылки) где существует твой список товаров. - собираешь ссылки в таблицу

2. Выбираешь все документы, которые НЕ в этой таблице
11 Маленький Вопросик
 
16.09.25
16:10
Это собеседование на кого? На сеньора?
12 lEvGl
 
гуру
16.09.25
16:22
(11) на сеньора-минёра ;)
13 Маленький Вопросик
 
16.09.25
16:55
(12) на сеньера-помидора
14 Прохожий
 
16.09.25
18:29
"Нужно получить документы, у которых в табличной части ни один из элементов не входил бы в список (ну либо нужно, чтобы в табчасти были только элементы, которые есть в списке). " Сначала ВТ1 список документов, у которых в ТЧ присутствуют товары списка. Далее ВТ2 список документов, у которых в ТЧ отсутствуют товары списка. Если из списка ВТ2 исключить ВТ1 получим первое, если из ВТ1 исключить ВТ2 получим второе. Чтобы исключить делаем левое соединение и ссылка правой таблицы есть NULL.
15 Прохожий
 
16.09.25
17:57
Тупая ветка
2 + 2 = 3.9999999999999999999999999999999...