Имя: Пароль:
LIFE
Как страшно жить
OFF: За такой код надо пальцы пообрывать. Крик души.
🠗 (Волшебник 10.06.2013 11:04)
, , , ,
0 megabax
 
10.06.13
09:14
1. Нормальный код 52% (22)
2. ТС нервный 21% (9)
3. Плохой код 14% (6)
4. кг/ам 7% (3)
5. отрубать пальцы 5% (2)
Всего мнений: 42

Вот никак не пойму, почему многие горе прогеры пишут такой код (даже 1С, млин, этим грешит):
       Если ВидВыгрузки = 2 Тогда
           Запрос.Текст = Запрос.Текст + "
           |    И Ссылка В ИЕРАРХИИ (&Номенклатура)";
           Запрос.УстановитьПараметр("Номенклатура",ТаблицаДляВыгрузки.ВыгрузитьКолонку("Номенклатура"));
       КонецЕсли;    
нельзя что ли писать нормлаьно: сперва сформировать тектс запроса, что бы его удобно было править конструктором, а потом в зависимости от условий править его через СтрЗаменить????
71 Рэйв
 
10.06.13
09:42
Чудак человек.
Насколько я понял там у тебя текст запроса генерится динамически в зависимости от условий.
А если сильно охота проверить его в консоли, то поставь точку останова перед самым остановом, выведи в табло Запрос.Текст, нажми F2 и копируй себе на здоровье в консоль, припарируй.

Нормальный код
79 dmpl
 
10.06.13
09:45
(0) Просто эти гуру не пользуются конструктором - они сразу пишут запрос.

Нормальный код
80 Stella0608
 
10.06.13
09:45
Я в семерке так и пишу, но там конструктора нет, так что пофиг. :)
P.S. конструктор вообще не люблю и использую в основном, чтобы быстро написать запрос или для сложных условий типа ПВХ, в которых я до сих пор плаваю.

Нормальный код
86 gae
 
10.06.13
09:49
ы

Нормальный код
96 Lama12
 
10.06.13
09:53
(0)СтрЗаменить конечно хорошая штука и сам именно ей пользуюсь.
Но что мешает поставить точку останова непосредственно перед "Выполнить" и взять готовый текст запроса в отладчике?

Зарплатные запросы лучше не смотри :)

Нормальный код
119 dachnik
 
10.06.13
10:01
Вполне себе нормальный код, даже не знаю, что посоветовать ТС. Мой вариант 1

Нормальный код
122 Старик Юзергад
 
10.06.13
10:03
(0) валерьяночки попей

Нормальный код
129 ЧеловекДуши
 
10.06.13
10:06
+

Нормальный код
174 Эмбеддер
 
10.06.13
10:22
(165) лучше типовых нет

Нормальный код
193 Lys
 
10.06.13
10:28
(172) +100
Добавлю - если есть выбор между читабельностью запроса и его производительностью, лично я выберу производительность.

Простейший пример - в зависимости от входных условий добавлять или не добавлять объединение запросов к двум различным таблицам-источникам данных, без "сложения" текста запроса в коде тут не обойтись.

А если кто не умеет читать тексты запроса без конструктора, и не умеет "ловить" готовый текст запроса при отладке - это, право, его личные трудности.

Нормальный код
200 nbIx
 
10.06.13
10:31
(0) То что ты не умеешь писать запросы без конструктора, это твои проблемы.

Нормальный код
202 Кремень
 
10.06.13
10:32
по моему СтрЗаменить тоже не панацея, а если запрос большой и однотипные куски в нем, и где то надо Заменить а где то нет. Так что по моему это более универсальный подход

Нормальный код
206 Junior1s
 
10.06.13
10:35
зачем усложнять.

Нормальный код
213 Джинн
 
10.06.13
10:37
Нормальный код. Замена ничуть не лучше в плане чтения текста запроса. Особенно когда замен несколько и они по условию.

Нормальный код
216 rutony
 
10.06.13
10:39
Нормальный код, бывает гораздо хуже. В тех же типовых вставками в середине кода.
Да и в конце концов, кто мешает после формирования текста, сделать точку остановки и копирнуть итоговый запрос...

Я обычно делаю вставки под замену, что то типа Истина = Истина, 1 = 1 и тд...

Нормальный код
221 Иде я?
 
10.06.13
10:42
Автору пальцы отрубать не надо, это не решит проблемы.
ЗА СтрЗаменить надо химическую кастрацию делать.
Ибо порождает кучу ошибок и такой калокод трудно поддерживать.

Нормальный код
224 Exec
 
10.06.13
10:44
так удобней при отладке, особенно, когда запрос меняется в куче мест. стрзаменить - имхо хуже

Нормальный код
237 lucifer
 
10.06.13
10:50
(0) "от условий править его через СтрЗаменить"
А по мне так это не нормально, и за такой код пальцы надо вырывать.

Нормальный код
244 bolder
 
10.06.13
10:53
(0)Вполне нормальный код, если запрос очень длинный со многими вставками- уже конструктор не используется, так что без разницы, правится сразу текст.Преимущество в одном- все условия близко к месту использования.Конечно можно это поместить в &УсловияПоНоменклатуре и потом искать где то на 64 странице текста..

Нормальный код
259 Steini
 
10.06.13
11:04
динамически собирать текст запроса лучше всяких стрзаменить. учитесь читать код

Нормальный код
266 Fedot200
 
10.06.13
11:42
Раньше использовал СтрЗаменить() теперь не пользую. Делаю или как в 0 или как в этом запросе... кстате оцените норм или нет?

УслДог = "";
   Запрос = Новый Запрос;
   Если ЗначениеЗаполнено(ВыбДоговор) Тогда
       УслДог = " И РеализацияТоваровУслуг.ДоговорКонтрагента = &ВыбДоговор";
       Запрос.УстановитьПараметр("ВыбДоговор", ВыбДоговор);
   КонецЕсли;    
   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Сделка
   |ПОМЕСТИТЬ ТЗЗаказов
   |ИЗ
   |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |    РеализацияТоваровУслуг.Проведен = ИСТИНА
   |    И РеализацияТоваровУслуг.Сделка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
   |    И РеализацияТоваровУслуг.Контрагент = &ВыбКонтрагент" + УслДог +"
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ
   |    СтатусЗаказа.Статус,
   |    СтатусЗаказа.Сумма,
   |    СтатусЗаказа.СуммаОплаты,
   |    СтатусЗаказа.ЗаказПокупателя
   |ИЗ
   |    РегистрСведений.СтатусЗаказа КАК СтатусЗаказа
   |ГДЕ
   |    СтатусЗаказа.ЗаказПокупателя В
   |            (ВЫБРАТЬ РАЗЛИЧНЫЕ
   |                ТЗЗаказов.Сделка
   |            ИЗ
   |                ТЗЗаказов)
   |    И СтатусЗаказа.Сумма <> СтатусЗаказа.СуммаОплаты
   |
   |УПОРЯДОЧИТЬ ПО
   |    СтатусЗаказа.ЗаказПокупателя.Дата";

Нормальный код
280 magicSan
 
13.06.13
17:26
нормальный такой код и конструктор из примера должен работать, я сам так условия добавляю причем сам люблю конструктор и им пользуюсь

Нормальный код