Имя: Пароль:
1C
1С v8
Что означает амперсанд в тексте запросов
🠗 (aka AMIGO 02.07.2015 13:36)
0 Artemy55
 
01.07.15
16:46
Для чего сдесь нужен амперсанд?


ГДЕ
СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
И СпрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры
1 ДенисЧ
 
01.07.15
16:47
Это для того, наш маленький друг... Чтобы ты книжки по 1с почитал...
2 Ненавижу 1С
 
гуру
01.07.15
16:48
Так не красиво писать "СпрНоменклатура.ЭтоГруппа = ЛОЖЬ"
лучше "НЕ(СпрНоменклатура.ЭтоГруппа)"

амперсанд это параметр запроса
3 Лефмихалыч
 
01.07.15
16:50
интересно, форумчане sql.ru чувствуют то же, что я сейчас, когда там появляется ветка "зачем нужен SELECT"?..
4 Fish
 
01.07.15
16:50
(2) "лучше "НЕ(СпрНоменклатура.ЭтоГруппа)""  - а ещё лучше без скобок, т.к. они здесь не нужны.
5 Timon1405
 
01.07.15
16:50
(0) сдесть вам не здеть
6 pitbul
 
01.07.15
16:51
(0) тролль, не? полгода на мисте вроде
7 Ненавижу 1С
 
гуру
01.07.15
16:52
(4) со скобками лучше, только НЕ внутри скобок, это я неправильно написал
8 Бубка Гоп
 
01.07.15
16:53
(7) нафейхоа?
9 Fish
 
01.07.15
16:54
(7) Чем лучше? Скобки явно лишние.
10 Ненавижу 1С
 
гуру
01.07.15
16:55
(8)(9) я все время путаюсь приоритетах НЕ И ИЛИ и ставлю скобки явно
да не, шучу, обычно конструктор их злостно убирает ))
11 Лефмихалыч
 
01.07.15
16:55
(9) скобки здесь значительно лучше, чем вилкой в глаз. Очевидно по-моему. А работать будет одинаково
12 Бубка Гоп
 
01.07.15
16:56
(11) тогда уж для верности
"(НЕ (СпрНоменклатура.ЭтоГруппа))"
13 Fish
 
01.07.15
16:59
(12) Правильно! Чем больше скобок, тем лучше! Вот так:
ГДЕ
((НЕ (СпрНоменклатура.ЭтоГруппа))
И (СпрНоменклатура.ВидНоменклатуры = &ВидНоменклатуры))


Это уж наверняка :))
14 ДенисЧ
 
01.07.15
16:59
(13) Это уже не 1с, а лисп какой-то...
15 Лефмихалыч
 
01.07.15
17:01
перестаньте свой брэйнфак тут разводить. Пожалуйста.
16 Пикчер
 
01.07.15
17:39
на тему "все равно" наткнулся на итс

Типичные причины неоптимальной работы запросов и методы оптимизации

Использование логического ИЛИ в секции ГДЕ запроса
Не следует использовать ИЛИ в секции ГДЕ запроса. Это может привести к тому, что СУБД не сможет использовать индексы таблиц и будет выполнять сканирование, что увеличит время работы запроса и вероянтность возникновения блокировок. Вместо этого следует разбить один запрос на несколько и объединить результаты.

упс... Но могу же применить логические преобразования и заменить  А ИЛИ Б на НЕ (НЕ А И НЕ Б). И что тогда запрос будет оптимальный и индекс построится? )
17 Dzenn
 
гуру
01.07.15
17:42
Эээээээээ...... хз
18 Пикчер
 
01.07.15
17:45
(17) еще какой  )
19 Ёпрст
 
01.07.15
17:46
(16)  А ИЛИ Б надо заменить на in(А,Б)
20 Гёдза
 
01.07.15
17:49
(19) Оптимизатор умнее чем ты думаешь
21 Lama12
 
01.07.15
17:49
А где автор?
22 Пикчер
 
01.07.15
17:50
(19) методологи 1С говорят надо заменить на
... ГДЕ А
ОБЪЕДИНИТЬ ВСЕ
.. ГДЕ Б
23 Fram
 
01.07.15
17:50
(16) использование НЕ вроде тоже влечет сканирование
24 rs_trade
 
01.07.15
17:50
(21) Видимо пишет следующий вопрос - что такое параметр?
25 Бубка Гоп
 
01.07.15
17:51
(23) Тогда надо писать
ГДЕ А = ЛОЖЬ :)
Приехали к тому с чего начали
26 Кай066
 
01.07.15
17:53
Амперсанд - графическое изображение человечка, вытирающего попу об ковёр
27 Fram
 
01.07.15
17:55
(25) попробуй и посмотри как это будет переведено на язык движка БД
28 Бубка Гоп
 
01.07.15
17:55
(27) не, лучше я домой пойду
29 Artemy55
 
02.07.15
13:01
А здесь зачем амперсанд ?


КонецПериода(&ДатаОкончания, "День")
30 Artemy55
 
02.07.15
13:03
& - это ссылка на значение какой-то переменной?
31 butterbean
 
02.07.15
13:04
(30) в запрос передаются параметры, в запросе к ним можно обращаться через запись вида &ТвойПараметр
32 aka AMIGO
 
02.07.15
13:10
(29) Примерно так:
у тебя в модуле есть присвоение:
...
ДатаОкончания = '02.07.2015';
...
и в запросе:
...
КонецПериода(&ДатаОкончания, "День")
...

при выполнении кода модуля интерпретатор подставит вместо параметра с амперсантом конкретное значение даты
33 МастерВопросов
 
02.07.15
13:10
(2) а почему в функции "ЕстьNULL"
половина букв православными, а половина католическими?
34 Бубка Гоп
 
02.07.15
13:11
(33) для пущего страху
35 aka AMIGO
 
02.07.15
13:12
(33) каприз разработчика
36 Одинесю
 
02.07.15
13:13
(32) + Этот параметр нужно еще передать Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
37 aka AMIGO
 
02.07.15
13:14
(36) ага :)
38 fisher
 
02.07.15
13:15
(30) Именно. Только не переменной, а параметра запроса (эдакой переменной с областью видимости только в запросе). У объекта "Запрос" есть свойство "Параметры" (структура). Вот там они и задаются перед выполнением.
39 Бледно Золотистый
 
02.07.15
13:15
(33) Хорошо хоть писать ISNULL можно, правда конструктор зараза его на ЕстьNULL потом все равно меняет.
40 marvak
 
02.07.15
13:16
(30)
Может разработка в 1С это не твое?
судя по таким вопросам...
41 bolobol
 
02.07.15
13:16
(39) ИЗНЫЛ??
42 Mikeware
 
02.07.15
13:17
(33) потому, что функция проверяет, а не принял ли объект ислам...
43 aka AMIGO
 
02.07.15
13:18
(40) чел на правильном пути.
Просто не работал с другими языками.
Научится.
44 Mikeware
 
02.07.15
13:18
(40) "если при первом прыжке с парашютом не раскрылся не основной, ни запасной - значит, парашютный спорт не для вас!"©
45 marvak
 
02.07.15
13:20
(43)
Так ему ответили достаточно подробно на его вопрос, а он снова о том же.
Это вызывает подозрения.
46 aka AMIGO
 
02.07.15
13:24
(45) не сразу доходит :)
47 1Сергей
 
02.07.15
13:27
(45) как одинесники любят поважничать. Ужас просто.

ЗЫ Это я про тебя
48 marvak
 
02.07.15
13:29
(47)
Грешен )))
49 depthzer0
 
02.07.15
13:30
(41) ЫЗНАЛ!
50 marvak
 
02.07.15
13:31
(49) ТЫЗНАЛ !?
51 Ненавижу 1С
 
гуру
02.07.15
13:34
ЭТОНИЧТО
52 1Сергей
 
02.07.15
13:39
(51) скорее ЭТОНИЧТО?
ибо в англ сказуемое перед подлежащем означает вопрос. В русском такое не канает
53 Альбатрос
 
02.07.15
13:40
ЭТОТЛЕН?
54 depthzer0
 
02.07.15
13:41
(53) это пять!
55 marvak
 
02.07.15
13:43
Лучше ЕСТЬНИЧТО
56 1Сергей
 
02.07.15
13:43
ЕСТЬЧО?
57 marvak
 
02.07.15
13:44
ЕСТЬНЕЧЕГО
58 depthzer0
 
02.07.15
13:46
ХТОНИЧНО()
59 Ненавижу 1С
 
гуру
02.07.15
13:56
КТОВАМНУЖЕН()
60 anatoly
 
02.07.15
13:59
ЕстьNIL ))
61 bolobol
 
02.07.15
14:07
ЕСЛИНЕТУ(
62 МастерВопросов
 
02.07.15
17:47
(55) НЕТНИЧЕГО()
63 Посмотрим
 
03.07.15
11:00
(56)> ЕСТЬЧО?
АЕСЛИНАЙДУ
64 Igor 2007
 
03.07.15
12:45
(33) Брестская церковная уния (1596)? Надо выяснить кто эту функцию написал и примерно наказать. В 1С униаты пробрались.