Имя: Пароль:
LIFE
Юмор
OFF: Двухпартийная система для 1Сников
🠗 (Волшебник 23.01.2018 18:29)
,
0 Dzenn
 
гуру
23.01.18
16:37
1. Моя партия — \"Сначала текст запроса\" 86% (30)
2. Моя партия — \"Сначала параметры\" 14% (5)
Всего мнений: 35

Привет всем. При написании запроса есть два варианта подхода

1) сначала установить параметры, потом текст запроса, потом вызвать:

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВыручкаОтРеализацииОбороты.Номенклатура КАК Номенклатура,
    |    ВыручкаОтРеализацииОбороты.СуммаОборот КАК СуммаОборот
    |ИЗ
    |    РегистрНакопления.ВыручкаОтРеализации.Обороты(, , , Номенклатура = &Номенклатура) КАК ВыручкаОтРеализацииОбороты";
    
    Результат = Запрос.Выполнить();



2) сначала текст запроса, а перед вызовом установить параметры:

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ВыручкаОтРеализацииОбороты.Номенклатура КАК Номенклатура,
    |    ВыручкаОтРеализацииОбороты.СуммаОборот КАК СуммаОборот
    |ИЗ
    |    РегистрНакопления.ВыручкаОтРеализации.Обороты(, , , Номенклатура = &Номенклатура) КАК ВыручкаОтРеализацииОбороты";
    
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Результат = Запрос.Выполнить();


Какой вариант предпочитаете Вы? Двухпартийность!
1 Fragster
 
гуру
23.01.18
16:37
не пятница же?

Моя партия — \"Сначала текст запроса\"
2 BeerHelpsMeWin
 
23.01.18
16:38
Предлагаешь каждый раз переделывать после конструктора?

Моя партия — \"Сначала текст запроса\"
3 Vadim_37
 
23.01.18
16:38
Отличная партия

Моя партия — \"Сначала текст запроса\"
4 Быдло замкадное
 
23.01.18
16:38
открой конструктор запроса с обработкой результата

Моя партия — \"Сначала текст запроса\"
5 Масянька
 
23.01.18
16:38
А разница?
6 Dzenn
 
гуру
23.01.18
16:39
Мне кажется, красивее сначала параметры

Моя партия — \"Сначала параметры\"
7 Fish
 
23.01.18
16:40
(6) Твоя партия явно в меньшинстве.

Моя партия — \"Сначала текст запроса\"
8 kubik_live
 
23.01.18
16:41
(5) +1
Монопенисуально кажись, хотя я за 2 вариант

Моя партия — \"Сначала текст запроса\"
9 azernot
 
23.01.18
16:41
Параметры устанавливаю перед "Выполнить"

Моя партия — \"Сначала текст запроса\"
10 aka AMIGO
 
23.01.18
16:41
(6) Нелогично. Когда человек читает такой код, вначале с недоумением видит параметры ("к чему они?!") и только потом приходит понимание, куда их можно пристроить.

Моя партия — \"Сначала текст запроса\"
11 Asmody
 
23.01.18
16:43
Я вот так пишу:

Выборка = __.НовыйЗапрос(
  ТекстЗапроса,
  Новый Структура("Параметр1, Параметр2",
    Параметр1,
    Параметр2
  ))
  .Выполнить()
  .Выбрать();
12 Bober
 
23.01.18
16:44
параметры после текста запроса

Моя партия — \"Сначала текст запроса\"
13 Вафель
 
23.01.18
16:44
в типовый чаще используют выриант

Моя партия — \"Сначала параметры\"
14 Dzenn
 
гуру
23.01.18
16:44
(11) а это законно?)
15 Asmody
 
23.01.18
16:45
(14) Это работает
17 Масянька
 
23.01.18
16:45
(6) Понятно... Ты из партии "В глаза смотреть!" :))))))
18 Fragster
 
гуру
23.01.18
16:45
(11) отвратительно
19 Bober
 
23.01.18
16:46
(11) побольше обвеса на такую простую операцию. как к цыгану в машину сел.
20 Fish
 
23.01.18
16:46
(16) Накручиваешь? :))
21 Fragster
 
гуру
23.01.18
16:46
отлаживать как?
22 Asmody
 
23.01.18
16:46
(18) Это с непривычки
23 Fragster
 
гуру
23.01.18
16:46
(22) От(ОъектТипаЗапрос)
24 Fragster
 
гуру
23.01.18
16:46
такую штуку не пробовал?
25 Asmody
 
23.01.18
16:47
(21) Чего тут отлаживать?! Для отладки запросов есть другие инструменты.
26 Вафель
 
23.01.18
16:47
(20) после ответа галочка не снимается
27 Fragster
 
гуру
23.01.18
16:47
в толстом клиенте прям консоль запросов открывается в клиенте
28 Bober
 
23.01.18
16:47
(25) угу, сообщить()
29 Fragster
 
гуру
23.01.18
16:48
30 ejikbeznojek
 
23.01.18
16:48
привык -

Моя партия — \"Сначала текст запроса\"
31 Злопчинский
 
23.01.18
16:49
потому что

Моя партия — \"Сначала текст запроса\"
32 Вафель
 
23.01.18
16:49
(27) какие толстые клиенты, ты что
33 Fragster
 
гуру
23.01.18
16:50
(32) в тонком/на сервере - кладет в справочник, включая все параметры. потом можно открыть в толстом и поковырять по временным таблицам.
35 Мандалай
 
23.01.18
16:51
ой блин

Моя партия — \"Сначала текст запроса\"
36 Мандалай
 
23.01.18
16:52
как удалить? (34)
37 Timon1405
 
23.01.18
16:52
+1 к (23)

Моя партия — \"Сначала текст запроса\"
38 se85
 
23.01.18
16:56
Мне так удобней и привычней

Моя партия — \"Сначала текст запроса\"
39 lodger
 
23.01.18
16:56
Nuff said

Моя партия — \"Сначала текст запроса\"
40 Aleksey
 
23.01.18
16:56
Когда выполняешь запрос в цикле, то удобно сначало описать текст запроса, а потом в цикле только подставлять параметры

Моя партия — \"Сначала текст запроса\"
41 Глобальный_
Поиск
 
23.01.18
16:57
Перебор в цикле!
42 NorthWind
 
23.01.18
17:04
Как-то так

Моя партия — \"Сначала текст запроса\"
43 MrCoffin
 
23.01.18
17:04
Уж лучше блокчейн...
44 vis_tmp
 
23.01.18
17:04
.

Моя партия — \"Сначала параметры\"
45 lodger
 
23.01.18
17:15
(40) неужели нет такого запроса, который бы эти мельтешения не выполнил одним пакетом?
46 X Leshiy
 
23.01.18
17:15
Ну логично же.

Моя партия — \"Сначала текст запроса\"
47 SanGvin
 
23.01.18
17:16
так

Моя партия — \"Сначала текст запроса\"
48 Джинн
 
23.01.18
17:16
Без базара

Моя партия — \"Сначала текст запроса\"
49 pavig
 
23.01.18
17:17
(0)
Сначала - конструктор запроса с обработкой результата.
Он сам устанавливает параметры и создаёт код выборки.
Шах и мат, партийцы.

3. Свой вариант.
50 Fragster
 
гуру
23.01.18
17:17
(45) бывает нужно - например обход разных метаданных с разным набором полей, как в http://catalog.mista.ru/public/197614/
51 pavig
 
23.01.18
17:17
(40)
Сжечь его.
52 Мандалай
 
23.01.18
17:21
(51)А мне кажется просто на кол, и табличку прибить за что.
53 X Leshiy
 
23.01.18
17:21
(51) (52) Можно подумать, у вас самих ладошки не волосатые)
54 Fragster
 
гуру
23.01.18
17:23
(51) есть один случай - много запросов остатки и обороты для правильного дополнения периода в коде без извращений
для таблицы остатков и оборотов. Иначе оно конечные остатки по субконто не на каждый период выдает, а только на самый конец.

МассивТекстов = Новый Массив;
МассивТекстов.Добавить(мОбъектЗапроса.Текст);
Для Сч = 2 По 12 Цикл
    мОбъектЗапроса.Параметры.Вставить("Д" + Сч, ДобавитьМесяц(Параметры.Д1, Сч-1));
    МассивТекстов.Добавить(СтрЗаменить(мОбъектЗапроса.Текст, "&Д1", "&Д" + Сч))
КонецЦикла;
мОбъектЗапроса.Текст = СтроковыеФункцииКлиентСервер.ПолучитьСтрокуИзМассиваПодстрок(МассивТекстов, "
|Объединить все
|")
55 pavig
 
23.01.18
17:23
(53)
В этой жизни можно ВСЁ. Главное без палева))
56 Мандалай
 
23.01.18
17:24
(53)В детстве у меня даже пяточки были волосатые, а с тех пор как первичные половые признаки появились, я больше одной "." в строке не пишу. А вне запроса, так и вовсе без точек обхожусь!
57 X Leshiy
 
23.01.18
17:26
(56) 1с-ников послушать, так я тут один запросы в циклах пишу, ага)
58 lubitelxml
 
23.01.18
17:27
обычно так, редко когда наоборот

Моя партия — \"Сначала текст запроса\"
59 kittystark
 
23.01.18
17:46
(11) Выборка = __.НовыйЗапрос( >>

"__"  это имя своего модуля что-ли ?
60 kittystark
 
23.01.18
17:47
ах да, вот так

Моя партия — \"Сначала текст запроса\"
61 DexterMorgan
 
23.01.18
17:47
Лучший ответ в (40)

Моя партия — \"Сначала текст запроса\"
62 Asmody
 
23.01.18
17:55
(59) ага
63 rphosts
 
23.01.18
17:56
я из этих.... подумать и отказаться от написания запроса убедив юзера что им это не надо
64 Локи-13
 
23.01.18
18:03
(40) +100500

Моя партия — \"Сначала текст запроса\"
65 breezee
 
23.01.18
18:07
Сейчас модно 1 вариант, но я ко 2 привык

Моя партия — \"Сначала текст запроса\"
66 Сильф
 
23.01.18
18:08
(6) Но как-то не очень логично же - устанавливаить параметры того, что ещё не объявлено?

Моя партия — \"Сначала текст запроса\"
67 Dzenn
 
гуру
23.01.18
18:10
Я был уверен, что "Сначала параметры" будут в подавляющем большинстве. Странно......
68 dumb851
 
23.01.18
18:17
так делает конструктор запросов в конфигураторе,
так что априори

Моя партия — \"Сначала текст запроса\"
69 Вафель
 
23.01.18
18:28
А вот такой вопрос:
Запрос.УстановитьПараметр
или
Запрос.Параметры.Вставить
70 Волшебник
 
модератор
23.01.18
18:29
До пятницы ещё далеко
71 Sun_Lin
 
23.01.18
20:56
всегда

Моя партия — \"Сначала параметры\"
72 Casey1984
 
23.01.18
23:18
А где мой вариант?

ТекстЗапроса =
"...

Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("...
73 tesseract
 
23.01.18
23:22
А где партия - "Мы умеем пользоваться СКД" ?
74 VladZ
 
24.01.18
05:30
(0) Ага. Встречал в коде вариант вида "сначала параметры, потом запрос". Первая мысль: что за бред?

ИМХО, сначала текст запроса, потом параметры. Потому как параметры запроса зависят от текста запроса.

Моя партия — \"Сначала текст запроса\"
75 Ненавижу 1С
 
гуру
24.01.18
08:16
(72) создаем нашу партию, я тоже так пишу
76 Helldown
 
24.01.18
10:02
Как то привык уже.

Моя партия — \"Сначала текст запроса\"
77 Zolberg
 
24.01.18
13:47
Исповедую обе религии, но предпочитаю первый вариант

Моя партия — \"Сначала параметры\"
78 1Сергей
 
24.01.18
13:50
Если конструктор делает так, значит разработчики 1С подразумевали такой подход

Моя партия — \"Сначала текст запроса\"