Имя: Пароль:
1C
1С v8
не работает условие во вложеном запросе
0 Папай
 
15.01.22
13:46
всем добрый день.не срабатывает условие выделенное слешами.в чем подвох?
    |ГДЕ
    |    И ЗаказПокупателя.Проведен
    |    И НЕ ЗаказПокупателя.ПометкаУдаления
    |    И ЗаказПокупателя.Дата МЕЖДУ &ДатаС И &ДатаПо
    |    И (НЕ ЗаказПокупателя.Ссылка В
    |                (ВЫБРАТЬ                                              
    |                    МаршрутныйЛист.ДокументОснование
    |                ИЗ
    |                    Документ.МаршрутныйЛистКАК МаршрутныйЛист
    |                ГДЕ
    |                    НЕ МаршрутныйЛист.ПометкаУдаления)
///////////////////////////////////////
    |    ИЛИ НЕ ЗаказПокупателя.Ссылка В
    |                (ВЫБРАТЬ                    
    |                    ЛистСклада.ЗаказПокупателя
    |                ИЗ
    |                    Документ.ЛистСклада.Данные КАК ЛистСклада
    |                ГДЕ
    |                    НЕ ЗаказПокупателя.ПометкаУдаления))
////////////////////////////////////////////////
1 Жан Пердежон
 
15.01.22
13:47
подвоха нет, это ты просто хочешь, чтобы оно как-то по-другому работало
2 Жан Пердежон
 
15.01.22
13:48
судя по всему с логикой проблемы
3 Папай
 
15.01.22
13:49
Срабатывает только поиск в маршрутном. Складской лист не ищет
4 Папай
 
15.01.22
13:50
Логика условия правильная?
5 PuhUfa
 
15.01.22
14:00
(0) ты уверен что у тебя условия ГДЕ правильно прописаны во вложенных запросах?
6 Kassern
 
15.01.22
14:01
(0) а как у вас в (0) условие с И начинается?
7 bolder
 
15.01.22
14:02
(0)  НЕ  ЛистСклада.ЗаказПокупателя.ПометкаУдаления))
8 Kassern
 
15.01.22
14:03
(0) попробуйте ваше В (ВЫБРАТЬ...) Переписать через временные таблицы, тогда и код будет читаться лучше и выполняться скорее всего быстрее
9 Жан Пердежон
 
15.01.22
14:03
Вагную тебе надо убрать скобки перед не и заменить ИЛИ на И
но по большому счету - хз что ты этого запроса хочешь
10 Kassern
 
15.01.22
14:03
и условие будет проще написать правильное
11 Папай
 
15.01.22
14:04
Комбинация с И тоже не срабатывает. Даже если первую часть убрать условия с маршрутным листом
12 Папай
 
15.01.22
14:05
(8) мне нужна не скорость и читаемость в данном вопросе. Если он будет на пол секунды выполнятся быстрее никому от этого плохо не станет
13 Папай
 
15.01.22
14:06
Точнее медленнее
14 Kassern
 
15.01.22
14:06
(12) как раз читаемость будет лучше через временные таблицы, через консоль вы всегда сможете посмотреть чем они заполняются и как они соединяются.
15 Kassern
 
15.01.22
14:07
и вы явно укажите соединения этих таблиц с главной
16 bolder
 
15.01.22
14:07
(7) Или перепиши с созданием синонома

ВЫБРАТЬ                    
    |                    ЛистСклада.ЗаказПокупателя Как ЗаказПокупателяЛист
   ИЗ
    |                    Документ.ЛистСклада.Данные КАК ЛистСклада
    |                ГДЕ
    |                    НЕ ЗаказПокупателяЛист.ПометкаУдаления))
17 Папай
 
15.01.22
14:11
(9) даже так не пашет
|ГДЕ
    |    И ЗаказПокупателя.Проведен
    |    И НЕ ЗаказПокупателя.ПометкаУдаления
    |    И ЗаказПокупателя.Дата МЕЖДУ &ДатаС И &ДатаПо
    |    И (НЕ ЗаказПокупателя.Ссылка В
    |                                                    
///////////////////////////////////////
    |  
    |                (ВЫБРАТЬ                    
    |                    ЛистСклада.ЗаказПокупателя
    |                ИЗ
    |                    Документ.ЛистСклада.Данные КАК ЛистСклада
    |                ГДЕ
    |                    НЕ ЗаказПокупателя.ПометкаУдаления))
////////////////////////////////////////////////
18 Папай
 
15.01.22
14:13
Скобки не причем.. Забыл убрать
19 Папай
 
15.01.22
14:18
Проверил через консоль не срабатывает проверка прметки удаления. Все заказы попадают в консоли
20 PuhUfa
 
15.01.22
14:20
(17) ты не читаешь что тебе пишут или просто угараешь?
Найди 8 отличий между твоим
НЕ ЗаказПокупателя.ПометкаУдаления
и
НЕ ЛистСклада.ЗаказПокупателя.ПометкаУдаления
21 Папай
 
15.01.22
14:21
(20) так тоже не срабатывает. Работает только пометка=ложь
22 Ёпрст
 
15.01.22
14:30
|ГДЕ
    |    ЗаказПокупателя.Проведен
    |    И ЗаказПокупателя.Дата МЕЖДУ &ДатаС И &ДатаПо
    |    И НЕ ЗаказПокупателя.Ссылка В
    |                (ВЫБРАТЬ                    
    |                    ЛистСклада.ЗаказПокупателя
    |                ИЗ
    |                    Документ.ЛистСклада.Данные КАК ЛистСклада
    |                ГДЕ
    |                    НЕ ЛистСклада.ПометкаУдаления)
23 Папай
 
15.01.22
14:37
Госпада. На самом деле все тревиально и должно быть простым.
Листсклада.Ссылка.ПометкаУдаления)ибо это тч а не реквизиты т шапки. Всем спасибо. Разобрался
24 Папай
 
15.01.22
14:38
(14) ваши предложения полный треш.
25 Kassern
 
15.01.22
14:48
(24) Вы хоть раз в типовых видели подобную конструкцию, которую вы впихнуть пытаетесь через ИЛИ В (Выбрать...)? Ну раз считаете, что "треш", ваше право, любитесь сами с подобными конструкциями. А вам всего-то 3 таблицы соединить надо...
26 pechkin
 
15.01.22
14:58
(24) тут во вложенных всего 1 селект. От переписывания проще ну никак не станет
27 pechkin
 
15.01.22
15:00
А вот ( не или не ) лучше заменить на не ( и )
28 Курцвейл
 
15.01.22
15:10
Очередная веселая тяжелочитаемая жесть. Особенно с наверняка составным типом ДокументОснование.
Вложенные запросы зло. Надо переписать на соединение с временной таблицей, где Ссылка типизирована.
29 Kassern
 
15.01.22
15:11
(28) вы не понимаете, по мнению ТС, это "полный треш" решение...Я уже молчу, что обращение идет не к регистрам и напрямую к документам
30 Жан Пердежон
 
15.01.22
15:37
имхо, тс неадекват