Имя: Пароль:
1C
 
Правильное изменение кода запроса
,
0 Дебет
 
19.04.16
11:35
1. Дописать имеющийся 100% (1)
2. Писать запрос с нуля 0% (0)
Всего мнений: 1

как правильно написать код запроса если есть кнопка выбора, от который запрос будет немного различаться?
Писать новый запрос указав на него или оставив старый снабдить его обильными...
| Подбор.КоличествоОстатокОрганизации,
//***********НАЧАЛО
|"+ ?(Использовать, "    Подбор.Ко "") + "    
//*************
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) все параметры описать сразу в запросе с добавкой ИЛИ Парметр == Неопределено
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший