Имя: Пароль:
1C
1С v8
Условие ИЛИ в конструкторе запроса
,
0 Vanilla26
 
22.03.13
15:37
Ставлю условие в конструкторе запроса

(ДатаНачала МЕЖДУ &ДатаНачала И &ДатаОкончания) ИЛИ
(ДатаОкончания МЕЖДУ &ДатаНачала И &ДатаОкончания)

После нажатия на ОК удаляются скобки!!! в следствие чего условие не работет должным образом..Как сделать?
1 butterbean
 
22.03.13
15:39
да тут вобщем-то скобки не обязательны
2 Maxus43
 
22.03.13
15:39
должно работать. а если скобки поставишь руками в запросе - то результат другой будет?
3 Живой Ископаемый
 
22.03.13
15:40
Почему? Условие не изменится
4 John83
 
22.03.13
15:41
когда-то с подобным сталкивался...
PS или меня глючит :)
5 GANR
 
22.03.13
15:41
(0) А со скобками по-другому отрабатывает??? Операция И итак имеет приоритет перед операцией ИЛИ.
6 sapphire
 
22.03.13
15:41
Ответ прост: не пользоваться конструктором, ИМХО.
7 GANR
 
22.03.13
15:42
Ах там МЕЖДУ...
8 Maxus43
 
22.03.13
15:44
(6) да ну, конструктор покрывает 95% функционала, по удобству я к нему привык например. Потом после конструктора если что поправить немного, а так - работает норм
9 GANR
 
22.03.13
15:48
А у меня не удалил

ВЫБРАТЬ
   AC_ОперацияБух.Ссылка
ИЗ
   Документ.AC_ОперацияБух КАК AC_ОперацияБух
ГДЕ
   (AC_ОперацияБух.Дата МЕЖДУ &ДатаНач1 И &ДатаКон1
           ИЛИ AC_ОперацияБух.Дата МЕЖДУ &ДатаНач2 И &ДатаКон2)
10 Maxus43
 
22.03.13
15:49
в SQL тоже есть конструктор запросов кстати, только им не пользуется потому что он страшен как атомная война
11 GANR
 
22.03.13
15:49
(9) ) ИЛИ ( снеслось
12 rs_trade
 
22.03.13
15:50
(10) Может ты просто его не умеешь готовить? Он просто не привычен.
13 Maxus43
 
22.03.13
15:50
(12) возможно, по сравнению с конструктором 1с - это ёперный пистец просто) мне легче в SQL руками написать если чесно, чем тем чудом пользоваться
14 Maxus43
 
22.03.13
15:51
или я не понял его смысла, но в том коснтрукторе почти вс надо так же писать руками
15 Vanilla26
 
22.03.13
15:52
сори со скобками та же беда....условие вообще не правильное:)) мне нужно выбрать все записи в которых пересекаются периоды с параметрами с формы
16 Vanilla26
 
22.03.13
15:54
а хотяяяяяяяяяя.....вроде правильно...че то затупил под конец рабочего дня
17 GANR
 
22.03.13
15:55
(13) того же мнения
(16) так результаты запроса разные или одинаковые???
18 mikecool
 
22.03.13
15:55
(16) помню, что конструктор неправильно оптимизил и удалял скобки, но это было на каком то древнем релизе 8.0
19 mehfk
 
22.03.13
15:59
(8) Только напрашивается вопрос: что курил автор кодогенератора конструкторазапроса, когда придумывал как должен выглядеть код, выдаваемый конструктором запроса.
20 Maxus43
 
22.03.13
16:00
(19) что конкретно не нравится? какие конструкции неадекватны?
21 Vanilla26
 
22.03.13
16:01
(17)одинаковые))все таки не подходит мне это условие)))..помогите как выбрать записи в которых периоды пересекаются
22 GANR
 
22.03.13
16:02
(21) Посмотри на запрос со скобками и без в Profiler - и тогда узнаешь точно.
23 Vanilla26
 
22.03.13
16:04
допустим период выборки с 11.02.2013 по 28.02.2013
документ период с 10.02.2013 по 25.03.2013

как написать чтоб документ попал в период???
24 GANR
 
22.03.13
16:06
(23) ДатаНачала И ДатаОкончания должны попадать в интервал, что ли? В таком случае надо ИЛИ на И заменить в (0).
25 Vanilla26
 
22.03.13
16:08
(24) неее....10.02.2013 не входит в 11.02.2013 по 28.02.2013
26 Vanilla26
 
22.03.13
16:09
но попадать должен..так как периоды пересекаются
27 Sammo
 
22.03.13
16:11
(18) Да и в 8.1 еще бывало. Но не вижу прблемы пробежать глазами и в случае необходимости проставить руками
28 GANR
 
22.03.13
16:19
(ДатаНачала МЕЖДУ &ДатаНачала И &ДатаОкончания) ИЛИ
(ДатаОкончания МЕЖДУ &ДатаНачала И &ДатаОкончания) ИЛИ
ДатаНачала < &ДатаНачала И ДатаОкончания > &ДатаОкончания
29 Vanilla26
 
22.03.13
16:23
(28) Пару минут назад допер и так сделал:))

(ДатаНачала МЕЖДУ &ДатаНачала И &ДатаОкончания)
   ИЛИ
   (ДатаОкончания МЕЖДУ &ДатаНачала И &ДатаОкончания)
   ИЛИ
   (&ДатаНачала МЕЖДУ ДатаНачала И ДатаОкончания)  
   ИЛИ
   (&ДатаОкончания МЕЖДУ ДатаНачала И ДатаОкончания)
30 beer_fan
 
22.03.13
16:24
По-моему в (28) красивее получилось :)
31 GANR
 
22.03.13
16:25
(28)(29), вроде, охватывают все возможные варианты
32 acsent
 
22.03.13
16:27
пересечение интервалов без ИЛИ делается
33 Птица
 
22.03.13
16:27
в (29) одно "между" избыточное. например, четвертое.
34 acsent
 
22.03.13
16:28
&Д1 <= Д2 и &Д2 >= Д1
35 GANR
 
22.03.13
16:30
(34) Вот это ловко!
Раз нет ИЛИ, значит индексы будут использоваться.
36 GANR
 
22.03.13
16:37
Напишем (34) покрасивше и в рамочку

  +------------------------+
  | Д2 >= &Д1 и Д1 <= &Д2  |
  +------------------------+
37 Vanilla26
 
22.03.13
16:43
дааааа))) сиильно))
38 mehfk
 
22.03.13
16:52
(20) Где в (19) про конструкции? Я про стиль оформления кода.