|
Правильное изменение кода запроса | ☑ | ||||||
---|---|---|---|---|---|---|---|---|
0
Дебет
19.04.16
✎
11:35
|
как правильно написать код запроса если есть кнопка выбора, от который запрос будет немного различаться?
Писать новый запрос указав на него или оставив старый снабдить его обильными... | Подбор.КоличествоОстатокОрганизации, //***********НАЧАЛО |"+ ?(Использовать, " Подбор.Ко "") + " //************* |
|||||||
1
WebberNSK
19.04.16
✎
11:36
|
(0) использовать схему запроса
|
|||||||
2
butterbean
19.04.16
✎
11:36
|
все зависит от размера "немного"
|
|||||||
3
Fragster
гуру
19.04.16
✎
11:36
|
(0) использовать построитель запроса
|
|||||||
4
birkoFFFF
19.04.16
✎
11:37
|
Зависит от обстоятельств
|
|||||||
5
Дебет
19.04.16
✎
11:37
|
20% всего запроса, запрос на 118 строк
|
|||||||
6
salvator
19.04.16
✎
11:38
|
А что добавляется-то? Секрет?
|
|||||||
7
samozvanec
19.04.16
✎
11:38
|
(0) что важнее - читабельность, производительность, или повторное использование?
|
|||||||
8
Дебет
19.04.16
✎
11:39
|
(7) для меня читабельность, но пред прог писал с комментами
|
|||||||
9
Дебет
19.04.16
✎
11:40
|
не удобно, нельзя сразу через конструктор скопировать текст запроса, приходиться через отладчик Запрос.текст
|
|||||||
10
Dmitrii
гуру
19.04.16
✎
12:07
|
(1) +1.
Рекомендации от самой 1С: Рекомендации к использованию схемы запроса: - для внесения изменений в запрос, созданный через конструктор запроса; - в местах, где запрос «склеивается» через строки; - для динамического формирования запроса, в зависимости от параметров, заданных пользователем Преимущества использования схемы запроса, по сравнению с программным редактированием текста запроса: - удобство сопровождения кода, - удобство отладки кода (из схемы запроса можно в любой момент получить текст запроса), - динамическое формирование запроса во время выполнения в зависимости от параметров, заданных пользователем, - удобно вносить небольшие изменения в большой запрос, - гарантия корректности запроса на выходе. Вывод: очередная бездарная голосовалка, не содержащая правильного ответа. |
|||||||
11
Fragster
гуру
19.04.16
✎
12:09
|
(10) схема запроса не очень хорошо работает с условиями - их все равно надо формировать склейкой строк. В этом плане Построитель (и СКД для сложных условий например с группами по ИЛИ) ИМХО лучше.
|
|||||||
12
Господин ПЖ
19.04.16
✎
12:10
|
>схема запроса не очень хорошо работает с условиями - их все равно надо формировать склейкой строк
вот это вообще вымораживает в ней... |
|||||||
13
Господин ПЖ
19.04.16
✎
12:11
|
сделать казалось бы полезную вещь и не решить базовый вопрос
|
|||||||
14
Карупян
19.04.16
✎
12:14
|
схему запроса удобно юзать для внедрения в типовой код.
А по этой задаче скорее вссего достаточно будт построителя |
|||||||
15
TormozIT
гуру
19.04.16
✎
12:16
|
ПостроительЗапроса будет оптимальным решением.
|
|||||||
16
Diman000
19.04.16
✎
12:19
|
Схема запроса это из 8.3 я так понимаю?
Наверное, прикольная штука... Но лично мне недоступная (( Я обычно использую строчки типа &ДопТекстЗапроса. Чтобы конструктор съедал такие вещи. И через СтрЗаменить. Мне очень не нравятся запросы с динамическим текстом, который не съедается конструктором... |
|||||||
17
Dmitrii
гуру
19.04.16
✎
12:20
|
(11) >> с условиями - их все равно надо формировать склейкой строк.
Почему? А разве так плохо добавлять условия: Если ВидыДвиженийДенежныхСредств Неопределено Тогда Схемазапроса = Новый СхемаЗапроса; СхемаЗапроса.УстановитьТекстЗапроса(ТекстЗапроса); Отбор = "СтатьиДвиженияДенежныхСредств.ВидДвиженияДенежныхСредств В (&ВидыЦвиженийДенежныхСредств)"; СхемаЗапроса.ПакетЗапросов[О].Операторы (О).Отбор.Добавить(Отбор); ТекстЗапроса = СхемаЗапроса.ПолучитьТекстЗапроса(); КонецЕсли; По сути конечно тоже склейка, но ИМХО, тут сложно что-то лучше можно придумать. |
|||||||
18
f_vadim
19.04.16
✎
12:34
|
ВЫБОР КОГДА ТОГДА всегда использовал. редко СтрЗаменить
|
|||||||
19
Fragster
гуру
19.04.16
✎
12:38
|
(18) это может привести к падению производительности
|
|||||||
20
Dmitrii
гуру
19.04.16
✎
12:43
|
(18) Не всегда применимо + см. (19)
И вообще не совсем относится к теме ветки. Автор ветки интересовался не тем какой текст и на что менять в запросе (тут вариантов и случаев может быть миллионы), а тем - как именно эти изменения текста присобачивать - полностью рисуя свой текст или модифицируя существующий. |
|||||||
21
f_vadim
19.04.16
✎
12:50
|
(19) это может если с неприведёнными типами какие-то манипуляции делать, пока не сталкивался.
(20) для этого нужно не ограничивать себя только текстом запроса. например, у меня запрос в одних ситуациях должен использовать данные заранее сформированноой таблицы значений, а в других - нет. можно во втором случае на вход подавать пустую таблицу и добавить ещё один параметр в сам запрос. формирование текста склейкой строк - считаю гвнкодом. стрзаменить тоже рядом где-то, крайний случай. |
|||||||
22
b_ru
19.04.16
✎
12:51
|
Дописывать надо, но не такое вот уродство
|"+ ?(Использовать, " Подбор.Ко "") + " а &МоеКлевоеДополнительноПоле и стрЗаменить потом, чтобы запрос можно было конструктором открывать. Схемы запросов и прочие ORM от лукавого. Дописать имеющийся |
|||||||
23
Fragster
гуру
19.04.16
✎
12:58
|
(22) путаешь орм
|
|||||||
24
Dmitrii
гуру
19.04.16
✎
14:30
|
(21) >> с неприведёнными типами ... не сталкивался.
Открой для себя типовые конфигурации от 1С. Там скорее редкость запрос с приведенными типами. В большинстве же случаев - в запросах куча полей с составными типами. >> у меня запрос.... У меня тоже запрос. Речь не о твоём или моём запросе. Прочитай внимательно вопрос автора ветки в (0). Ситуация, которую он описывает заключается в том, что есть уже готовый чей-то запрос и задача заключается в том, чтобы модифицировать текст этого запроса таким образом, чтобы одновременно максимально достигались цели: - сохранения читабельности запроса; - возможность открывать текст в конструкторе; - внесением минимального количества изменений в исходный код. А написать какой-то свой новый супер-пупер-запрос, который будет мега-универсальным тут любой может. Для этого много ума не надо. Здесь 9 человек из 10 придут, назовут код предыдущего писателя капрокодом и изъявят готовность переписывать всё с нуля. |
|||||||
25
f_vadim
19.04.16
✎
14:44
|
>> В большинстве же случаев - в запросах куча полей с составными типами.
речь об использовании таких полей в условиях и соединениях, а не в наличии вообще. >> Ситуация, которую он описывает заключается в том, что есть уже готовый чей-то запрос богатая фантазия, завидую >> А написать какой-то свой новый супер-пупер-запрос, который будет мега-универсальным тут любой может ага-ага, знаем-знаем. тут от вопросов связанных с запросами не знаешь то ли плакать, то ли смеяться отказ от склейки строк и стрзаменить даёт нам - сохранение читабельности запроса; - возможность открывать текст в конструкторе; ну про это я уже писал. - внесением минимального количества изменений в исходный код. если уж говорить о доработке типовой конфигурации текст запроса можно получать из своего модуля или переопределить процедуру целиком. схемы запросов удобными не считаю. |
|||||||
26
Dmitrii
гуру
19.04.16
✎
15:06
|
(25) Вот ты упёртый однако ))))
Перечитай (0). Да можешь даже не перечитывать. Посмотри тупо пункты голосовалки: "Писать с нуля" и "Дописать имеющийся" - эти варианты ответов разве не подразумевают наличия уже некоего существующего готового запроса? А ты впариваешь про мою фантазию.... >> отказ от склейки строк и стрзаменить ... Я где-то предлагал делать склейку или использовать СтрЗаменить? Я сам против подобных подходов. >> от вопросов связанных с запросами не знаешь то ли плакать, то ли смеяться +100500. особенно от высказываний типа "ВЫБОР КОГДА ТОГДА всегда использовал". Прям сразу живо представляются запросы, состоящие исключительно из конструкций ВЫБОР..., но зато супер универсальные - которым можно скормить любой источник данных. |
|||||||
27
mikecool
19.04.16
✎
15:07
|
(0) все параметры описать сразу в запросе с добавкой ИЛИ Парметр == Неопределено
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |