|
Странная операция в запросе: 1=1 Ø (Волшебник 15.01.2024 12:37) | ☑ | ||
---|---|---|---|---|
0
Aleks73
12.01.24
✎
11:52
|
РегистрНакопления.ЧтоТоТам.Остатки(&Дата, 1=1.....
вот это 1=1 не пойму отчёт старый, автора нет. Кто знает, зачем это? В запросе регистр один, соединения нет. Запрос работает, конфа не типовая. |
|||
1
Волшебник
12.01.24
✎
11:54
|
замените на ИСТИНА или уберите
|
|||
2
Aleks73
12.01.24
✎
11:54
|
(1) Но зачем это? соединения нет
|
|||
3
Волшебник
12.01.24
✎
11:56
|
(2) Какой-то мусор. Кто-то бросил окурок
|
|||
4
Aleks73
12.01.24
✎
11:57
|
Спасибо, Станислав!
|
|||
5
Ненавижу 1С
гуру
12.01.24
✎
11:59
|
А потом где-то по коду будет:
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "1=1", НашеУсловие); |
|||
6
PR
12.01.24
✎
12:09
|
(5) А вот чтобы такого не было пишут не "1=1", а &ТекстУсловияКоторыйНужноЗаменитьНаЧтоТоВместеСАпмерсандом
|
|||
7
Aleks73
12.01.24
✎
12:17
|
(5) Такое могут сделать, но в данном случае было не оно.
|
|||
8
Ненавижу 1С
гуру
12.01.24
✎
13:34
|
(6) согласен, но случаи встречаются
|
|||
9
rphosts
12.01.24
✎
15:55
|
но всё равно больше похоже на артефакт
|
|||
10
Aleks73
12.01.24
✎
20:49
|
На самом деле было следующее:
конкатенация текста запроса на основании заполнения пользователем в форме полей отбора. все значения отбора добавлялись через "И Измерение = &полеотбора". Автору лень было описывать прибавление "И" к первому условию отдельно, поэтому он вставил в качестве первого условия 1+1 Я проверил - базу 1=1 не грузит, по крайней мере это не заметно, поэтому пока оставил. Если бы не было Остатки(&Дата - я бы убрал. |
|||
11
Волшебник
12.01.24
✎
18:57
|
(10) замените на ИСТИНА хотя бы
|
|||
12
aka MIK
12.01.24
✎
20:05
|
(11) а 2=2 в следующем условии на что заменить?
|
|||
13
Волшебник
12.01.24
✎
20:09
|
(12) тоже на ИСТИНА
|
|||
14
Волшебник
12.01.24
✎
20:10
|
Есть же простое логическое правило: wiki:Закон_тождества
Не надо усложнять, мухлевать и подменять понятия. Вы имели в виду Истину? Ну так напишите её, тем более язык это позволяет. Зачем лишняя операция сравнения? |
|||
15
Aleks73
12.01.24
✎
21:24
|
(11) спасибо, Станислав, заменю.
|
|||
16
Волшебник
12.01.24
✎
21:26
|
(15) И Вам спасибо. Вы что-то поправили во мне.
|
|||
17
aka MIK
13.01.24
✎
01:19
|
(13) гениально. Зачем несколько отборов в запросе если можно сделать один?
|
|||
18
Aleks73
13.01.24
✎
12:48
|
(17) у меня не было 2=2. откуда оно появилось в (12) не знаю.
-И- нужно добавлять в зависимости от условия только один раз. К дальнейшим условиям -И- добавляется всегда: "чтоб не пил (, = И) не курил И цветы всегда дарил...) |
|||
19
Максимка_
Космонавтом 13.01.24
✎
19:10
|
(0) 1=1 и прочие 2=2 часто использовали раньше, чтобы потом:
Если Условие() Тогда СтрЗаменить(Запрос.Текст, "1=1", НаЧтоМеняем) КонецЕсли |
|||
20
PR
13.01.24
✎
19:47
|
(18) А, ну понятно, говнокод детектед
Вместо того, чтобы собрать все необходимые условия в массив и потом соединить в одну строку с соединителем "И" сделано одно заведомо истинное условие, чтобы остальные унифицировано добавлять с "И", не парясь о том, первое это условие или нет |
|||
21
Максимка_
Космонавтом 13.01.24
✎
19:52
|
(20) как правило, в легаси коде это последнее условие :)
|
|||
22
PR
13.01.24
✎
19:57
|
(21) Легаси?
Типа если говнокод назвать красивым иностранным непонятным словом, то это из говнокода сразу станет govnokodom? |
|||
23
Максимка_
Космонавтом 13.01.24
✎
20:03
|
(22) Ну, блин. Такой код наверняка же писали в году так 2008-2012 (позднее я не встречал). Не было тогда best practics :)
Сейчас, конечно, легаси = govnokod, но ровно до тех пор, пока его не коснется, опять же, иностранное слово "рефакторинг" |
|||
24
PR
13.01.24
✎
20:06
|
(23) Даже тогда я, если не было совсем уж лениво, писал проверочное условие, первый это кусок условия или нет, и условие в итоге пустое или нет
Ну или обрезал первое И, опять же с проверкой, пустое условие или нет |
|||
25
Максимка_
Космонавтом 13.01.24
✎
20:07
|
(24) Вы молодец.
|
|||
26
Aleks73
15.01.24
✎
11:14
|
(24) я тоже так делал, поэтому не понял сначала это приёма 1=1
|
|||
27
Андрей_Андреич
naïve
15.01.24
✎
11:30
|
Все открестились. А ведь кто-то из нас это написал ...
|
|||
28
AlexeyKh
15.01.24
✎
12:05
|
кто как дело привычки
я например использую 0 = 0 (в основном) далее 1 = 1 по необходимости что самое приятное, это нормально восприниматеся конструктором запросов чем "ТекстЗапроса" + КусокТекста + "ПродолжениеЗапроса" такое г..но конструктором уже не открыть а с использованием этого "&УсловиеПараметром" затем ОБЯЗАТЕЛЬНО надо задавать или убирать, а 0 = 0 - можно оставить и не трогать если не возникла необходимость в доп.условии, нагрузок на выполнение запроса эта конструкция не несет! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |