|
Странное поведение платформы: запрос в консоли значение возвращает, а в обработке - нет | ☑ | ||
---|---|---|---|---|
0
vdeemer
15.07.21
✎
14:57
|
Добрый день!
Делаю простой запрос к табличной части документа, выборка с итогами по ссылке документа - нужно пройтись по документам и строкам их ТЧ. Казалось бы, что может пойти не так? Однако результат запроса пуст. Выбираю этот же запрос в консоли - не пуст. Перевел базу на серверный вариант, смотрю в профайлере: SELECT T1._Document25_IDRRef, T2._Fld476RRef, T2._Date_Time FROM dbo._Document25_VT3180 T1 WITH(NOLOCK) LEFT OUTER JOIN dbo._Document25 T2 WITH(NOLOCK) ON T1._Document25_IDRRef = T2._IDRRef LEFT OUTER JOIN dbo._Reference2 T3 WITH(NOLOCK) ON T2._Fld476RRef = T3._IDRRef WHERE (1=0) AND (T2._Date_Time >= P1) AND (T3._Code = @P2) AND (T2._Marked = 0x00) ORDER BY (T2._Date_Time) DESC Условие в первых скобках после WHERE всегда ложь, поэтому ни одна запись выбрана не будет. Откуда оно взялось вообще??? |
|||
1
H A D G E H O G s
15.07.21
✎
15:00
|
1С умнее, чем тебе кажется
|
|||
2
H A D G E H O G s
15.07.21
✎
15:00
|
Покажи текст запроса в 1С
|
|||
3
vdeemer
15.07.21
✎
15:08
|
ВЫБРАТЬ
ЗаказТоваровДокументыИздательств.Ссылка КАК Ссылка, ЗаказТоваровДокументыИздательств.Ссылка.Контрагент КАК Контрагент, ЗаказТоваровДокументыИздательств.Ссылка.Дата КАК Дата ИЗ Документ.ЗаказТоваров.ДокументыИздательств КАК ЗаказТоваровДокументыИздательств ГДЕ ЗаказТоваровДокументыИздательств.Издательство = &Издательство И ЗаказТоваровДокументыИздательств.Ссылка.Дата >= &ДатаНачалаПоискаЗаказов И ЗаказТоваровДокументыИздательств.Ссылка.Контрагент.Код = 6791 И НЕ ЗаказТоваровДокументыИздательств.Ссылка.ПометкаУдаления УПОРЯДОЧИТЬ ПО Дата УБЫВ ИТОГИ МАКСИМУМ(Ссылка) ПО Контрагент |
|||
4
vdeemer
15.07.21
✎
15:09
|
(2) похоже, условие
ЗаказТоваровДокументыИздательств.Издательство = &Издательство ведет себя не так, как ожидается |
|||
5
vdeemer
15.07.21
✎
15:10
|
Ну да, так и есть
ВЫБРАТЬ ЗаказТоваровДокументыИздательств.Ссылка КАК Ссылка, ЗаказТоваровДокументыИздательств.Ссылка.Контрагент КАК Контрагент, ЗаказТоваровДокументыИздательств.Ссылка.Дата КАК Дата ИЗ Документ.ЗаказТоваров.ДокументыИздательств КАК ЗаказТоваровДокументыИздательств ГДЕ ЗаказТоваровДокументыИздательств.Издательство = &Издательство УПОРЯДОЧИТЬ ПО Дата УБЫВ ИТОГИ МАКСИМУМ(Ссылка) ПО Контрагент выдает SELECT T1._Document25_IDRRef, T2._Fld476RRef, T2._Date_Time FROM dbo._Document25_VT3180 T1 WITH(NOLOCK) LEFT OUTER JOIN dbo._Document25 T2 WITH(NOLOCK) ON T1._Document25_IDRRef = T2._IDRRef WHERE (1=0) ORDER BY (T2._Date_Time) DESC |
|||
6
acht
15.07.21
✎
15:11
|
Тип значения параметра какой? И какой тип у ЗаказТоваровДокументыИздательств.Издательство?
|
|||
7
H A D G E H O G s
15.07.21
✎
15:11
|
&Издательство
Точно правильный тип параметра? |
|||
8
vdeemer
15.07.21
✎
15:11
|
(6) Воооот, буквально с языка снял - я лось! Там тип другой.
|
|||
9
1Сергей
15.07.21
✎
15:11
|
(4) Конечно не так, если значения не совпадают
|
|||
10
vdeemer
15.07.21
✎
15:12
|
Спасибо, есть такая работа - из болота тащить бегемота))
|
|||
11
H A D G E H O G s
15.07.21
✎
15:40
|
Хороший пример, Насколько заморочились с оптимизацией 1С
|
|||
12
Garykom
гуру
15.07.21
✎
15:52
|
Ступил с типами несовпадающими и зачем то полез в профайлер
Правильно я понял? |
|||
13
Garykom
гуру
15.07.21
✎
15:53
|
(0) В следующий раз ты сразу в отладчик кода C++ платформы 1С иди
|
|||
14
Kassern
15.07.21
✎
15:55
|
(13) а давно ли исходный код платформы открытым стал?) А по теме, всякое бывает, видимо был уверен в параметрах, раз в профайлер полез, а когда увидел 0=1 в условии решил сюда написать
|
|||
15
ДядяМитяй
15.07.21
✎
15:56
|
А как же он в консоли 1с выдавал чего-то с несовпадающими типами? Это уже никого не интересует?
|
|||
16
ДядяМитяй
15.07.21
✎
15:58
|
(15) сам себе отвечу - консоль не давала задать значение неправильного типа.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |