Имя: Пароль:
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 Тогда
           Запрос.Текст = Запрос.Текст + "
           |    И Ссылка В ИЕРАРХИИ (&Номенклатура)";
           Запрос.УстановитьПараметр("Номенклатура",ТаблицаДляВыгрузки.ВыгрузитьКолонку("Номенклатура"));
       КонецЕсли;    
нельзя что ли писать нормлаьно: сперва сформировать тектс запроса, что бы его удобно было править конструктором, а потом в зависимости от условий править его через СтрЗаменить????
1 ptiz
 
10.06.13
09:15
(0) Пустырнику выпей.
Понедельник еще только.
2 LehhaK
 
10.06.13
09:16
ДАже типовой так пишут. Ниче страшного, имхо. Хотя через заменить мне тоже больше нравится
3 Godofsin
 
10.06.13
09:16
нормальный код
4 shamannk
 
10.06.13
09:16
Удобно у всех разное. Привыкай.
5 Schwonder
 
10.06.13
09:16
(0) Можно.. но быдло уже не унять.:(
6 vyaz
 
10.06.13
09:17
(0) тогда уж и все условия в запрос, нефиг стрЗаменять
7 Живой Ископаемый
 
10.06.13
09:17
Кому это интересно вообще? Нашел лажу - причини пользу, нанеси добро, подвергни ласкам, исправь чтобы было правильно и хорошо
8 SeraFim
 
10.06.13
09:18
Видел бы ты запросы в ЗУПе)))
9 Mitriy
 
10.06.13
09:19
(7) угу... ты забыл добавить - сними с поддержки...
10 megabax
 
10.06.13
09:20
(6) ну кстати да, иногда даже без СтрЗаменить можно обойтись, просто в зависимости от условий устанавливать булевые параметры
11 Fish
 
10.06.13
09:20
(0) А что, без конструктора не осилить текст запроса?
12 Godofsin
 
10.06.13
09:20
(11)
+1
14 Aleksey
 
10.06.13
09:21
(0) Ну так приведи свой вариант решения, чтобы мы и в тебя могли какашками покидать
15 Турист
 
10.06.13
09:21
Что же вы такие умные, в 1с не идете работать
16 Rovan
 
гуру
10.06.13
09:21
(0) "Понять и простить"
17 Sammo
 
10.06.13
09:21
См, например, "Особенность применения конструкции "В ИЕРАРХИИ" в языке запросов" на диске ИТС.
18 megabax
 
10.06.13
09:21
(11) если текст запроса 187 строк, ты сам осилишь без конструктора? Сколько времени будешь любиться с таким запросом, особенно, если тебе поставили задачу внести изменения в чужой код?
19 Mitriy
 
10.06.13
09:22
(11) разговор не про осилить, а про увидеть... когда до фига (0), да еще разнесено по разным функциям-процедурам, то в уме такой запрос не соберешь, только отладчиком...
20 Asmody
 
10.06.13
09:22
(11) запросы руками правят только неосилившие конструктор неудачники
21 Guk
 
10.06.13
09:23
код как код. автору надо нервы подлечить, уж больно неадекватно реагирует...
22 ДенисЧ
 
10.06.13
09:23
вполне нормальный код. Мне нравится
23 _Demos_
 
10.06.13
09:23
(0) ой хосподи
это всё ещё только цветочки
ты наверное не видел самописки на предприятиях ))
24 ДенисЧ
 
10.06.13
09:23
(20) а конструктором пользуются только ламеры
25 ХомаБрут
 
10.06.13
09:23
Присоединяюсь к ТС.
Если попросить тело, которое пишет подобные запросы отладить свой же запрос, оно будет долго пердеть с умным видом.
Такие запросы - знак неуважения. Я всегда стараюсь писать код с рассчетом, что его будет кто-то изменять.
26 Defender aka LINN
 
10.06.13
09:24
(0) А я вот никак не пойму, почему многие горе прогеры юзают СтрЗаменить для условий вместо специально обученного объекта "Построитель запроса" или СКД.
27 ЧеловекДуши
 
10.06.13
09:24
(0) Нормальный код, все бы вам лишние условия вставлять почем зря :)
28 Fish
 
10.06.13
09:24
(18) Да хоть сколько. Какая разница? Читаешь и вносишь нужные изменения. Конструктор создан для удобства и только. Но лично мне это не мешает читать/писать и править запросы без помощи конструктора.
29 Sammo
 
10.06.13
09:24
(21) Может топикстартер исправил запрос в конструкторе таким образом, что он перестал работать при ВидВыгрузки = 2, сдал заказчику, а тот был несколько недоволен...
30 megabax
 
10.06.13
09:24
(14) если в зависимости от условий надо менять текс запроса, то я всегда измают его через СтрЗаменить. А если потом потребуется переделать прогу, то я пользуюсь конструктором, так как текст запроса сформирован нормально.
31 ЧеловекДуши
 
10.06.13
09:25
+(0) СтрЗаменить - ну ты даешь!!! О_о... и чем это лучше?
32 Ненавижу 1С
 
гуру
10.06.13
09:25
33 Strogg
 
10.06.13
09:26
(0) - себе поотрывай. Есть типовой отчет задолдженность по срокам долга. Интервальные группировки выбираются пользователем. Ну и как ты без динамического текста запилишь это условие в запрос?
----
Для открытия конструктором - запрос сначала приводится в читабельный_конструктором_вид, правится,  а потом возвращается обратно. Делов-то...
34 Feunoir
 
10.06.13
09:26
(0) Ну да, ну да. Сначала написал текст запроса, а потом в коде сделал замену вида:


СтрЗаменить(ТекстЗапроса, "ГДЕ Ссылка В ИЕРАРХИИ (&Номенклатура)", "");


А ты потом ищи, почему у тебя запрос ошибку выдает при выполнении.
35 Fish
 
10.06.13
09:26
(30) Вот за СтрЗаменить для изменения текста запроса точно надо пальцы обрывать :)
36 megabax
 
10.06.13
09:26
(31) тем что запрос можно править конструктором
37 Aleksey
 
10.06.13
09:26
т.е. так более понятно?

ТекстЗапроса =
  "ВЫБРАТЬ
  |    Док.Дата КАК Дата
  |ИЗ
  |    Документ.АвансовыйОтчет КАК Док
  |ГДЕ
  |    Док.Ссылка = &Ссылка";
  Запрос.Текст = СтрЗаменить(ТекстЗапроса, "Документ.АвансовыйОтчет", "Документ." + Источник.Метаданные().Имя);
38 Эмбеддер
 
10.06.13
09:27
Где голосовалка? Я за плохой вариант и против СтрЗаменить
39 ilpar
 
10.06.13
09:27
(18) именно и без конструктора такие запросы быстрее анализируются.
(20) твое ИМХО. мое другое :) Есть запросы, которые без конструктора изменить быстрее.
40 megabax
 
10.06.13
09:27
(34) дык в этом случае ошибку быстрее найдешь, чем если код такой как в 0
41 Масянька
 
10.06.13
09:28
(0) А че кричать-то? Перепиши красиво.
42 megabax
 
10.06.13
09:28
(37) конечно, это вообще замечательный код.
43 megabax
 
10.06.13
09:29
(38) почему это ты против СтрЗаменить?
44 DEVIce
 
10.06.13
09:29
Я так пишу. Лично я так считаю, что СтрЗаменить нефига не делает код более читабельным.
45 Mitriy
 
10.06.13
09:29
пошел за пивом...
46 Бледно Золотистый
 
10.06.13
09:29
(0) в ЗУП не пускать, а то впадет в депрессию.
47 megabax
 
10.06.13
09:30
(44) как раз и делает, потому что можно конструктором запроса пользоваться.
48 Aleksey
 
10.06.13
09:30
(43) Потому что это занимает время, смысл делать искусственные тормоза на ровном месте?
49 Asmody
 
10.06.13
09:31
Я бы и за то, и за другое пальцы поотрубал
50 Starhan
 
10.06.13
09:31
(47)Ой да какая разница. Если запрос-порятянка. Один фиг в отладичке получаешь полный запрос и переносишь в кансоль запросов, а там уже ладишь.
51 VladZ
 
10.06.13
09:32
Я против "СтрЗаменить". Код становится нечитабельным.
52 Fish
 
10.06.13
09:33
(47) Ты не умеешь писать запросы без конструктора? Бедняга.
53 Defender aka LINN
 
10.06.13
09:33
(47) Угу. Текст запроса в одном месте, замена в другом и потом попробуй пойми, что за НЕХ происходит.
Ты лучше скажи - почему ты против специально обученных объектов?
54 Feunoir
 
10.06.13
09:33
(40) Да ладно, а если ты сначала к запросу припишешь что-нибудь типа

И Ссылка.Услуга = Ложь
55 Necessitudo
 
10.06.13
09:34
(0) Видел бы ты запросы типовые в ЗУПе. Там порой весь запрос собирается динамически.
56 IШаман
 
10.06.13
09:35
(0) Меня к примеру бесят эти СтрЗаменить()
А вообще никак не пойму почему 1с-ки так всегда болезненно реагируют на чужой код, первым делом при приеме на работу каждый считает делом чести обгадить предыдущего прога.
57 Эмбеддер
 
10.06.13
09:35
(43) использование goto считается дурным тоном в том числе из-за того, что нельзя понять как работает программа просматривая сверху вниз, надо постоянно возвращаться по тексту. это же касается СтрЗаменить, особенно если текст запроса большой и не входит на один экран
58 megabax
 
10.06.13
09:36
(53) да я не против специально обученных объектов. Я против кода как в 0.
(52) Я умею писать запросы без конструктора. Просто с конструктором это делается гораздо быстрее. Твое утверждение из серии: "Ты ездишь на автомобиле потому что не умеешь ходить пешком...бедненький".
59 megabax
 
10.06.13
09:37
(56) Потому что очень многие пишут копрокод как в 0, прогеры из фирмы 1с в типовых конфах.
60 Fish
 
10.06.13
09:37
(58) Быстрее? А то, что при изменении запроса конструктором, тебе зачастую придётся ещё и менять тексты во всех твоих СтрЗаменить, ты не подумал? Гораздо проще сразу поменять так, как нужно.
61 megabax
 
10.06.13
09:37
(57) СтрЗАменить и гото это совершенно разные вещи, не надо путать их между собой.
62 Галахад
 
гуру
10.06.13
09:37
Ну если тут друг другу пальцы обрывают, подскажите
зачем могло понадобиться писать самописку на УФ,
для локальной работы одного оператора.

В чем сакральный смысл?
63 megabax
 
10.06.13
09:38
(60) Можно сделать так, что бы не менять тексты в стрЗаменить
64 Fish
 
10.06.13
09:39
(63) Объясни как? Если у тебя СтрЗаменить сработает только на определённый текст, и ты этот текст меняешь конструктором :))
65 Эмбеддер
 
10.06.13
09:39
(61) мне кажется, что я достаточно аргументированно объяснил чем это плохо
66 stix2010
 
10.06.13
09:40
(0) и чо? развивайте в себе толерантность

ТС нервный
67 IШаман
 
10.06.13
09:40
(59) Понятие профессиональной этики вам незнакомо? Кстати а вы сами всегда пишите иделаьный код который укладывается в определенные стандарты?
68 IШаман
 
10.06.13
09:40
(64) Я например использую Выбор в запросе.
69 ХомаБрут
 
10.06.13
09:41
(62) Вариант : изучить УФ , да еще и получить за это деньги =)
70 Aleksey
 
10.06.13
09:41
(67) Нет ниодного кода который не нарушил бы какие нибудь реальные или выдуманные стандарты. А посему идеального кода не существует
71 Рэйв
 
10.06.13
09:42
Чудак человек.
Насколько я понял там у тебя текст запроса генерится динамически в зависимости от условий.
А если сильно охота проверить его в консоли, то поставь точку останова перед самым остановом, выведи в табло Запрос.Текст, нажми F2 и копируй себе на здоровье в консоль, припарируй.

Нормальный код
72 Рэйв
 
10.06.13
09:42
перед самым остановом
=
перед самым выполнением
73 sda553
 
10.06.13
09:42
У меня в 1Сной юности где то был модуль, ставишь  там вместо Результат = Запрос.Выполнить()
Результат = ОтладкаЗапроса(Запрос) и он в случае исполнения на клиенте открывал конструктор запроса с текстом и параметрами. Поиграешься, закрываешь конструктор и программа дальше выполняется
74 megabax
 
10.06.13
09:43
(64)
Допустим, есть в запросе что то типа:
Номенклатура.Ссылка = &Ссылка.
При изменении запроса в конструкторе это не меняется.
И я спокойно могу заменить этот тектс на ИСТИНА.
75 Птица
 
10.06.13
09:43
код как код, вовсе не повод для истерики.
автору гормоны проверить бы
76 Vovan_Magadan
 
10.06.13
09:43
(0) самое главное неудобство в том, что такой код не октроет сразу конструктор, увы.

Плохой код
77 IШаман
 
10.06.13
09:44
(70) И я о том же, но почему то рубить пальцы каждый горазд, у вас что пальцев много?
78 Рэйв
 
10.06.13
09:44
(76) на такие случаи используй метод (71)
79 dmpl
 
10.06.13
09:45
(0) Просто эти гуру не пользуются конструктором - они сразу пишут запрос.

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

Нормальный код
81 stix2010
 
10.06.13
09:46
ТС хочет сферический код в вакууме,
бывают ситуации,когда доводка кода не имеет смысла
82 dmpl
 
10.06.13
09:46
СтрЗаменить() требует времени (что в случае ЗУПовских запросов заметно) + может заменить что-то не то.
83 IШаман
 
10.06.13
09:47
(82) + Код процедуры становиться нечитаемый.
84 Fish
 
10.06.13
09:47
(74) А теперь допусти, что эта конструкция в запросе встречается не один раз. А по условию надо поменять только в одном месте? Как тебе поможет СтрЗаменить?
85 Vovan_Magadan
 
10.06.13
09:48
(78) на такие случаи можно в новом релизе платформы убрать конструктор.
Такое ощущение что ты сегодня вычитал в книге как юзать отладчик, гж!
86 gae
 
10.06.13
09:49
ы

Нормальный код
87 Рэйв
 
10.06.13
09:49
(85)Причем тут я вообще? Это похоже ты с ним не дружишь:-) Трудности себе придумывают на ровном месте.
88 Fragster
 
гуру
10.06.13
09:49
Ну возьми и перепиши, чО. кстати, в таком случае не стрзаменить, а построитель лучше

ТС нервный
89 Xapac
 
10.06.13
09:51
(0) перепиши.
90 Armando
 
10.06.13
09:51
Про построитель запроса уже было?
91 pavig
 
10.06.13
09:51
(0) не вижу вообще ничего криминального.
ТС не может читать и править запросы не из конструктора? ТС, открой для себя ЗУП...

вариант с СтрЗаменить считаю менее приемлемым вариантом.

ТС нервный
92 megabax
 
10.06.13
09:52
(71) Ну, допустим, текст запроса таким методом и можно посмотреть. А вот внести в такой код изменения - это полная ж.
93 Fish
 
10.06.13
09:52
(89) Он не может. Для этого ему надо конструктором открыть. По другому, видимо не умеет :)
94 Fish
 
10.06.13
09:52
(92) Про консоль запросов когда-нибудь слышал?
95 dmpl
 
10.06.13
09:53
(61) СтрЗаменить() - это как девушка, которая говорит "Нет", а имеет в виду "Да".
96 Lama12
 
10.06.13
09:53
(0)СтрЗаменить конечно хорошая штука и сам именно ей пользуюсь.
Но что мешает поставить точку останова непосредственно перед "Выполнить" и взять готовый текст запроса в отладчике?

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

Нормальный код
97 megabax
 
10.06.13
09:53
(84) Да не вопрос.
Вместо Номенклатура.Ссылка = &Ссылка.
делаю Номенклатура.Ссылка = &Ссылка1
и ... профит!
98 Нуф-Нуф
 
10.06.13
09:53
ты типовые глянь. там таких гамно-запросо-конструкторов хоть оппой ешь. заипешься отлаживать...

отрубать пальцы
99 Xapac
 
10.06.13
09:54
(97)
Ссылка1 дак это вообще *овнокодище!!!!!
100 Smallrat
 
10.06.13
09:54
(0) код как код. мне, правда, тоже не нравится - не люблю запросов, которые не открываются в конструкторе, некоторые вещи все же удобнее делать там. но ничего особенного, не надо так нервничать.

ТС нервный
101 IШаман
 
10.06.13
09:54
(93) Обязательно использовать самый сложный путь? Нельзя все делать так чтоб у тебя все было в одном месте, а не так что при выполнении происходит хрен знает что.
102 Liova
 
10.06.13
09:54
Я стараюсь писать в конструкторе наиболее полные части и затем, например, заменять ненужное условие на "ИСТИНА". Но если вижу код с совсем разорванным запросом - то ничего страшного, встроюсь куда мне надо, переделывать не буду.

Даже если с первого взгляда совсем непонятно, что за запрос получится, всегда можно при отладке посмотреть текст.

ТС нервный
103 dmpl
 
10.06.13
09:54
(74) А если у тебя в 5 местах Номенклатура.Ссылка = &Ссылка, а заменить надо только в 4?
104 Fish
 
10.06.13
09:54
(97) Молодец. И вместо одного параметра получаешь 2. Оптимизация налицо. А сколько в этом удобства :))
105 IШаман
 
10.06.13
09:56
(103) Прикольные у тебя запросы, я такие люблю, когда в одном месте одна номенклатура а в другом другая.
106 megabax
 
10.06.13
09:56
(99) Ну хорошо, пусть будет не Ссылка1, а СсылкаНаОбъектДляСтрЗаменить.
107 dmpl
 
10.06.13
09:56
(92) Ничуть не сложнее, чем с СтрЗаменить().
108 megabax
 
10.06.13
09:57
(104) зато сопровождать такой код будет легко.
109 dmpl
 
10.06.13
09:57
(97) Угу, только у тебя получится ИСТИНА1 ;)
110 Fish
 
10.06.13
09:58
(108) Наоборот сложнее, т.к. следующему программисту ещё надо будет догадаться, что в параметры &Ссылка и &Ссылка1 надо передавать одно и то же :))
111 megabax
 
10.06.13
09:58
(109) ну в этом случае да, придется в стрЗаменить править код. Но такие правки буду минимальны и будет очень легко найти, где править.
112 AlexITGround
 
10.06.13
09:59
на вкус и цвет все фломастеры разные, так что

ТС нервный
114 IШаман
 
10.06.13
10:00
Я предлагаю делать так:
Выбор Когда &Номенклатура = Значение(Справочник.Номенклатура.ПустаяССылка) Тогда Истина
Иначе   Таб.номенклатура = &Номенклатура Конец
115 Fish
 
10.06.13
10:00
(111) Так про то и разговор, что гораздо проще сразу взять и поменять текст запроса так, как надо. А с конструктором или без - это вообще без разницы.
116 Feunoir
 
10.06.13
10:00
(100) Хуже запросов, которые не открываются в конструкторе только запросы в которых понапихали комментариев, которые потом заменяют на нормальные конструкции. Эти запросы при открытии конструктором просто ломаются. Вообще.
117 dmpl
 
10.06.13
10:01
(105) В одном месте нужна информация по всей номенклатуре, а в другом месте запроса - только по конкретной номенклатуре. Например, получить сумму продаж всей номенклатуры для расчета процента доли.
118 Godofsin
 
10.06.13
10:01
(116) Чот не понял, это как?
119 dachnik
 
10.06.13
10:01
Вполне себе нормальный код, даже не знаю, что посоветовать ТС. Мой вариант 1

Нормальный код
120 IШаман
 
10.06.13
10:02
(118) В универсальном так было, для обработки характеристик и свойств.
121 dmpl
 
10.06.13
10:03
(108) Ты вон со Ссылка1 уже прокололся - твой запрос ошибку выдаст из-за ИСТИНА1, и ты это увидишь только при исполнении... или вообще клиенты тебе пожалуются на ошибку когда ты отъедешь после сдачи работы. А без СтрЗаменить() запрос заработал бы сразу.
122 Старик Юзергад
 
10.06.13
10:03
(0) валерьяночки попей

Нормальный код
123 PR
 
10.06.13
10:03
(11) Ты наверное и программируешь исключительно в турбо-дебаггере, да? С компьютером все должно быть по чесноку, да?
(20) +1 :))
(0) Полностью поддерживаю. Возможность запустить конструктор запроса порой крайне полезна.
Сам, кстати, обычно в таких случаях пишу вместо условия что-нить типа &УсловиеПоОрганизации, который потом заменяю в тексте запроса. В этом случае и конструктор нормально пашет и текст заменять кошерно.
124 IШаман
 
10.06.13
10:04
(123) Хрен редьки не слаще.
125 viktor_vv
 
10.06.13
10:04
ТС'у, походу, надо на работе молоко требовать за вредные условия труда, а то сгорит на рабочем месте как свечка :).
126 IШаман
 
10.06.13
10:05
(125) Он так и делает - только немного заигрался в требовательного специалиста - мы не твое начальство, а те самые программеры которые оставили тебе свой код, так что ты  не по адресу.
127 PR
 
10.06.13
10:05
(121) Ага. Это ведь уже неважно, правильно ли он будет работать, да? :))
128 Старик Юзергад
 
10.06.13
10:05
+(122) на самом деле, типовые не идеал, но там очень многому можно поучиться.
Видел много конфигураций, написанных "гениями" с нуля - ни разу не видел ничего путного.
129 ЧеловекДуши
 
10.06.13
10:06
+

Нормальный код
130 IШаман
 
10.06.13
10:06
(121) Тестирование удел слабых?
131 qeos
 
10.06.13
10:06
megabax ты мало писал кода

ТС нервный
132 megabax
 
10.06.13
10:07
(121) ну вообще то перед сдачей работы программу тестируют.
133 Feunoir
 
10.06.13
10:07
(118) А вот так:


...
   |ПО
   |    Док.Номенклатура = РезервыПоДокументу.Номенклатура
   |    //СОЕДИНЕНИЕ_Характеристика_РезервыПоДокументу
   |    //СОЕДИНЕНИЕ_Серия_РезервыПоДокументу
   |    //Док_УсловиеДокументРезерва

...

ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"//Док_УсловиеДокументРезерва",                "И Док.ДокументРезерва НЕ В (&МассивПустыхЗаказов)");
134 Alex Cheerful
 
10.06.13
10:07
(0)Никто не виноват, что ты не умеешь читать...
135 Михаил 1С
 
10.06.13
10:08
(0) Да лучше вообще все делать через конструктор, прописывая все условия сразу и ничего не менять уже в тексте запроса! Делается это так:

"|    И (Ссылка В ИЕРАРХИИ (&Номенклатура) или &НетУсловияПоНоменклатуре"

Потом в условии пишешь
Если ВидВыгрузки = 2 Тогда
   Запрос.УстановитьПараметр("НетУсловияПоНоменклатуре", Ложь);
   Запрос.УстановитьПараметр("Номенклатура",ТаблицаДляВыгрузки.ВыгрузитьКолонку("Номенклатура"));
Иначе
   Запрос.УстановитьПараметр("НетУсловияПоНоменклатуре", Истина);
КонецЕсли;
136 MaxisUssr
 
10.06.13
10:08
Код, кстати, имеет место быть - но вот код из (123) (с вставками &УсловиеПо... ) лучше. Но, если у тебя запрос заведомо отбирает ссылки на какие-либо документы - то почему бы и нет? - но при этом весь остальной запрос обязан открываться конструктором, и не должны слетать ";", т.е. данные вставки возможны только в конце текста запроса. В ЗУПе конечно и похлеще есть

Плохой код
137 NcSteel
 
10.06.13
10:08
Люди не слышали про конструктор запроса.

отрубать пальцы
138 megabax
 
10.06.13
10:08
(114) кстати, хорошая идея!
139 NcSteel
 
10.06.13
10:08
(135) Мля

Есть объект "КонструкторЗапроса" . Он многое умеет.
140 Михаил 1С
 
10.06.13
10:08
Моё мнение -

Плохой код
141 fisher
 
10.06.13
10:09
Если это самое сильное, что тебя раздражает в чужом коде, то тебе крупно повезло.

кг/ам
142 IШаман
 
10.06.13
10:09
(138)  При чем по моему решение весьма очевидное, но почему то предпоситают всякие хитрые условия хрен знает где, а не в том месте где они применяются.
143 PR
 
10.06.13
10:10
Кстати

Плохой код
144 megabax
 
10.06.13
10:10
(134) вообще то я читать умею.
145 NcSteel
 
10.06.13
10:10
(139) + тьфу, построитель запроса конечно.
146 AlexITGround
 
10.06.13
10:10
(127) вопрос был о том, нормальный ли код - то, что его можно оптимизировать - это понятно, любой код можно оптимизировать, совершенству нет предела, вопрос именно в том - "Можно ли так писать, не косяк ли это?" - само собой можно, просто код и все тут
147 dmpl
 
10.06.13
10:10
(130) Даже Microsoft не может предусмотреть все, куда уж обычному одинэснику... зачем сознательно класть грабельки чтобы на них наступить? Все ведь сочетания со всеми вариантами данных не проверишь.
148 NcSteel
 
10.06.13
10:11
ПостроительЗапроса = Новый ПостроительЗапроса;
ПостроительЗапроса.Текст = ТекстЗапроса;
//ПостроительЗапроса.Отбор
//ПостроительЗапроса.Параметры
149 NcSteel
 
10.06.13
10:11
(147) Легко предусматривается, просто надо головой подумать.
150 IШаман
 
10.06.13
10:11
(147) Я о самом примитвном методе тестирования, когда просто получаешь результат и сверяешь его с ожидаемым.
151 dmpl
 
10.06.13
10:11
(132) Даже в этом случае ты затратишь больше времени. А если кривизна условия вылезает только при определенном сочетании параметров - можешь и пропустить.
152 Godofsin
 
10.06.13
10:12
(133) а ну да ))) видал такое.
153 NcSteel
 
10.06.13
10:12
(146) Это очень плохой код.
154 Серго62
 
10.06.13
10:12
(135) +1
Голосую за такой подход
155 Фауст
 
10.06.13
10:12
Код должен быть таким чтобы в нем мог за 5 минут разобраться, тот кто его первый раз видит. Автора понимаю.

Плохой код
156 PR
 
10.06.13
10:13
(146) >>вопрос был о том, нормальный ли код
Ну, при таком вопросе любой код, который работает так, как задумано — нормальный :))

Вообще в (0) вопрос другой, нормальный ли это код или есть явные варианты лучше :))
157 Старик Юзергад
 
10.06.13
10:14
(0)
Всякий мнит себя стратегом видя бой со стороны (Руставелли)

P.S. А ты попробуй коня роди (С)
158 AlexITGround
 
10.06.13
10:14
(153) посмотреть код каждого из нас - можно будет оборжаться, чем больше раньше накосячил - тем больше сейчас понимаешь как все-таки надо писать, здесь нужен еще один параметр - сколько опыта у автора данного в (0) кода?
159 dmpl
 
10.06.13
10:15
(149) Легко предусматривается с кодом из (0). С СтрЗаменить() это уже не так легко.

(150) Ну и? А юзеры ввели другие параметры - и ошибка. Времени исполнения.
160 IШаман
 
10.06.13
10:17
(159) Это какие такие параметры они введут?
161 Aleksey
 
10.06.13
10:18
(155) Ты явно в типовые не заглядывал. там нет таких запросов. Даже печать ТОРГ_12 и то 5 минут не хватит, чтобы вдублить откуда и как он собирает данные
162 NcSteel
 
10.06.13
10:18
(159) Отборы легко решаются через построитель запроса. Зачем простыню делать?
163 IШаман
 
10.06.13
10:19
(161) 5 минут не хватит, но в целом там все предельно понятно, структура и логика сбора данных прослеживается четко.
164 Fish
 
10.06.13
10:19
(123) Я программирую так, как мне удобно. В одних случаях мне удобно пользоваться конструктором, в других - нет. Но у меня это не вызывает никаких трудностей, в отличие от ТС.
165 NcSteel
 
10.06.13
10:19
(161) И? типовые это не идеал.
166 IШаман
 
10.06.13
10:20
(164) Во и в (0) Сделали как им удобно, а автору неудобным это показалось.
167 NcSteel
 
10.06.13
10:20
(164) Надо все же иногда думать о тех кто после тебя будет опиливать.
168 Fish
 
10.06.13
10:20
(166) Я для себя не увидел ничего неудобного в коде из (0).
169 vyaz
 
10.06.13
10:21
а чего народ на ЗУПовские запросы плюется?
запросы как запросы, я уже привык :)

ПС: стрЗаменить для запроса стремно

кг/ам
170 dmpl
 
10.06.13
10:21
(160) Дык для которых ты все эти изменения текста запроса замутил.

(162) Построитель тормозит.
171 NcSteel
 
10.06.13
10:21
(168) Для таких условий давно придумали построитель.
172 Fish
 
10.06.13
10:22
(167) Предлагаешь писать код так, чтобы его смог осилить каждый быдлокодер-недоучка? Я полагаю, что у нормального программиста не возникнет никаких трудностей с кодом типа (0).
173 AlexITGround
 
10.06.13
10:22
я читаю текст запроса, не открывая конструктор, так на мой взгляд удобнее
174 Эмбеддер
 
10.06.13
10:22
(165) лучше типовых нет

Нормальный код
175 IШаман
 
10.06.13
10:23
(168) А я вот увидел и вариант с СтрЗаменить мне тоже не нравиться.
176 PR
 
10.06.13
10:23
(164) Возможно, у тебя не вызывает трудностей даже программирование на 1С с мобильного.
Но к чему вот это безапелляционное "А что, без конструктора не осилить текст запроса?"?
177 dmpl
 
10.06.13
10:23
(173) +1, особенно когда куча временных таблиц. Ctrl + F рулит ;)
178 Эмбеддер
 
10.06.13
10:23
(173) да, запрос целиком перед глазами
179 Alex Cheerful
 
10.06.13
10:23
(172)Согласен...
180 AlexITGround
 
10.06.13
10:23
(169) в ЗУПе нормальные запросы, а в чем трабла с  стрЗаменить?
181 Fish
 
10.06.13
10:23
(176) Потому что в (0) это высказано, как основная претензия к коду.
182 IШаман
 
10.06.13
10:24
(172) ВУырезать гланды через задний проход - несоменно удел виртуозов, но я бы предпочел традиционный метод.
183 NcSteel
 
10.06.13
10:24
(170) То есть получить запрос из построителя не возможно?
185 IШаман
 
10.06.13
10:25
(184) Он поступил по методике - "Сам дурак"
186 AlexITGround
 
10.06.13
10:25
(156) ну времени на совершенство и безукаризненное написание кода + замер производительности обычно не хватает, тебе как франчу это должно быть знаково
187 IШаман
 
10.06.13
10:26
(186) Но переделывание, и исправление ошибок времени уйдет гораздо больше - и не только твоего.
188 PR
 
10.06.13
10:26
(181) У нас видимо разные (0).
Я вот в (0) прочитал следующее "...что бы его удобно было править конструктором...".
189 Эмбеддер
 
10.06.13
10:26
(184) в связи с этим вопрос у ТС какое образование?
190 Fish
 
10.06.13
10:27
(184) Ты вообще читаешь посты, на которые я отвечаю или нет? Это было к вопросу о том, что надо думать о других программистах. Когда я пишу код, я пишу его без учёта того, что его будет править программист ниже меня уровнем. Соответственно, я считаю, что если я могу разобраться в чьём-то коде, то и у других не возникнет трудностей при правке моего.
191 NcSteel
 
10.06.13
10:27
(186) Странно у меня хватает.
192 PR
 
10.06.13
10:28
(186) Да. Но нужно прививать себе хорошие манеры программирования :))
193 Lys
 
10.06.13
10:28
(172) +100
Добавлю - если есть выбор между читабельностью запроса и его производительностью, лично я выберу производительность.

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

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

Нормальный код
194 NcSteel
 
10.06.13
10:28
(190) Причем тут уровень.

Ты сам можешь в нем через пару лет заблудиться.
195 AlexITGround
 
10.06.13
10:29
(191) я стараюсь сразу писать нормальный код, но через месяц бывает рефакторю
196 Fish
 
10.06.13
10:29
(194) Пока на моей памяти ни разу такого не было. ЧЯДНТ?
197 AlexITGround
 
10.06.13
10:30
(192) такое дело только с  опыт, именно поэтому я и спросил у ТС какой опыт у автора кода, но ответа не поступило, поэтому нет смысла от данной всей дискуссии
198 NcSteel
 
10.06.13
10:30
(196) ну я рад за тебя..... Что в общем не меняет простых требований к коду.
199 PR
 
10.06.13
10:31
(190) Ну не знаю. Я прочитал дословно "Я полагаю, что у нормального программиста не возникнет никаких трудностей с кодом типа (0).".
А до этого было предложение, что типа можно и разжевывать, чтобы код смог осилить каждый быдлокодер-недоучка.
Может у меня с логикой что-то. Но тут вроде два простых предложения, элементарный логический вывод. Не?
200 nbIx
 
10.06.13
10:31
(0) То что ты не умеешь писать запросы без конструктора, это твои проблемы.

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

Нормальный код
203 Fish
 
10.06.13
10:33
(198) Ещё раз каких требований? Чтобы его мог править после тебя программист? Так я это требование всегда выполняю, даже на комментарии не скуплюсь :) А если кто-то не может осилить исправить элементарный запрос без конструктора - то тут извините, требования ни при чём. К программистам тоже есть одно простое требование - он должен быть программистом :))
204 dmpl
 
10.06.13
10:33
(183) Повторяю еще раз - построитель тормозит. Например, при реакции на действие юзера это неприемлемо. Да и вообще, зачем тормоза там, где можно обойтись без них?
205 Fish
 
10.06.13
10:35
(201) Если неприятно работать с кодом, тогда не надо программировать вообще :)
206 Junior1s
 
10.06.13
10:35
зачем усложнять.

Нормальный код
207 IШаман
 
10.06.13
10:35
Хорошая ветка, весьма показательно - сразу четко видно, кто есть кто.
208 megabax
 
10.06.13
10:35
(197) У меня опыт более 10 лет, к вашему сведению.
210 PR
 
10.06.13
10:36
(205) Обычно, когда неприятно работать с человеком, то с ним расстаются :))
211 megabax
 
10.06.13
10:36
(194) Вот это точно, в точку сказано!
212 PR
 
10.06.13
10:37
(208) Я, кстати, не удивлен.
Я о таких "мелочах" не так давно начал думать :))
213 Джинн
 
10.06.13
10:37
Нормальный код. Замена ничуть не лучше в плане чтения текста запроса. Особенно когда замен несколько и они по условию.

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

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

Нормальный код
217 Эмбеддер
 
10.06.13
10:40
(216) всегда найдется такой "суперпрограммист", который скажет что 1=1 это копрокод
218 IШаман
 
10.06.13
10:41
(217) Для этого не надо быть суперпрограмиистом.
219 Джинн
 
10.06.13
10:42
(215) Далеко не всегда это возможно. И далеко не всегда это оправдано.
220 Эмбеддер
 
10.06.13
10:42
(218) вот кто критикует чужой код без оснований на то, считая себя суперпрограммистом, у того и нет профильного образования
221 Иде я?
 
10.06.13
10:42
Автору пальцы отрубать не надо, это не решит проблемы.
ЗА СтрЗаменить надо химическую кастрацию делать.
Ибо порождает кучу ошибок и такой калокод трудно поддерживать.

Нормальный код
222 IШаман
 
10.06.13
10:43
(219) В случае приведенном в (0) Вполне возможно, а оправдывается это простой систематизацией кода.
223 Серго62
 
10.06.13
10:44
(215) +1
Динамический текст - зло.
224 Exec
 
10.06.13
10:44
так удобней при отладке, особенно, когда запрос меняется в куче мест. стрзаменить - имхо хуже

Нормальный код
225 AlexITGround
 
10.06.13
10:44
(208) я просил назвать опыт автора кода!!! третий раз пишу, до ТС пока не долетело, цирк какой-то
226 IШаман
 
10.06.13
10:44
(220) критиковать публично - это плохо, тут полностью согласен, особенно когда в качестве решения предлагается примерно такой же вариант.
227 Эмбеддер
 
10.06.13
10:45
ТС, опыт 10 лет понятно. образование какое?
228 megabax
 
10.06.13
10:45
(225) к сожалению, я не владею информацией об опыте автора кода.
229 pumbaEO
 
10.06.13
10:45
Почему не Построитель используется?

кг/ам
230 Турист
 
10.06.13
10:46
на вас так посмотришь, так все за конструктор, а на собеседованиях требуете запрос писать карандашом на листке бумаги ))
231 AlexITGround
 
10.06.13
10:46
(227) речь шла не об опыте ТСа, я так понимаю код не его
232 megabax
 
10.06.13
10:46
(227) высшее
233 Эмбеддер
 
10.06.13
10:47
(232) ну и что что высшее? на программиста учился?
234 AlexITGround
 
10.06.13
10:47
(228) ну так о чем разговор, может, автор вчера книгу Радченко прочел, а сегодня ему задачу поставили - тогда нормальный код, а Вы начали дискуссию, а если бы это прогер с 10-летним стажем написал - о тогда миста его порвала бы на ссаные тряпки
235 AlexITGround
 
10.06.13
10:49
(233) причем здесь профильное или нет, я вообще учитель математики по образованию, сегодня сижу в качестве технического писателя и понимаю, что чувак с профильным образованием сосал бы ложку сейчас.
236 megabax
 
10.06.13
10:50
(233) да
237 lucifer
 
10.06.13
10:50
(0) "от условий править его через СтрЗаменить"
А по мне так это не нормально, и за такой код пальцы надо вырывать.

Нормальный код
238 Эмбеддер
 
10.06.13
10:51
(235) математика это почти профильное образование. но откуда взязась такая самоуверенность насчет других специалистов?
239 AlexITGround
 
10.06.13
10:51
пользователь нынче такой грамотный, что не напиши ему руководство пользователя, не внеси в трудовые инструкции и не возьми с него подпись о получении РП - все, ничего и делать не станет в программе, всегда скажет, что ему не показали, не доучили, не полизали , где надо
240 Маркусс
 
10.06.13
10:52
Тут интереснее. Имхо, просто шедевр.

Процедура ЗагрузитьРТУ(Элемент)
   Если РТУ.Количество()>0 Тогда
       РТУ.Очистить();
   КонецЕсли;
   ДТЗП     = Документы.РеализацияТоваровУслуг;
   Вка  = ДТЗП.Выбрать(НачалоДня(ДатаРТУ),КонецДня(ДатаРТУ));
   Ном=0;
   Пока Вка.Следующий() Цикл
       НовДок = Вка.Ссылка;
       Если Не НовДок.Проведен  Тогда Продолжить;КонецЕсли;
       Если НовДок.ПометкаУдаления  Тогда Продолжить;КонецЕсли;
   //    Если НовДок.Самовывоз  Тогда Продолжить;КонецЕсли;
       //Сообщить("НовДок="+НовДок);
       ТекущаяДоставка = новаИнтеграция.ПолучитьМестнуюДоставкуПоОснованию(НовДок);
       Если ТекущаяДоставка = Неопределено Тогда
           МестнаяДоставка = новаИнтеграция.ПолучитьЗавершеннуюМестнуюДоставкуПоОснованию(НовДок);
       Иначе
           МестнаяДоставка = ТекущаяДоставка;
       КонецЕсли;
       Если МестнаяДоставка <> Неопределено Тогда Продолжить;КонецЕсли;
       СЗПр=""+НовДок.Контрагент+" "+НовДок.Номер;
       РТУ.Добавить(НовДок,СЗПр,Истина);
       Ном=Ном+1;
   КонецЦикла;
   ЭлементыФормы.ИнфСостояние.Заголовок="Всего РТУ для перевода в логистику: "+Строка(ном);    
КонецПроцедуры
   
   //************************************************************
   
Процедура ВЛогистику(Элемент)
   Если РТУ.Количество()>0 Тогда
       Для Каждого Эл Из РТУ Цикл
           Если Не Эл.Пометка Тогда Продолжить;КонецЕсли;
               Доки=Документы.РеализацияТоваровУслуг.НайтиПоНомеру(Эл.Значение.Номер,КонецДня(ДатаРТУ));
               Док1=Доки.ПолучитьОбъект();
               Сообщить(Док1);
               Если Доки<>Неопределено Тогда
                   Док1.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
                   
                   Сообщить("Проведена "+Строка(Док1));
               
               КонецЕсли;
       КонецЦикла
   КонецЕсли;    
КонецПроцедуры
241 Джинн
 
10.06.13
10:52
О, как всегда все закончилось прикладной фаллометрией!
Миста славится традициями.
242 Эмбеддер
 
10.06.13
10:52
(236) не назвал даже специальности. что ж значит я не прав и придется поверить на слово
243 AlexITGround
 
10.06.13
10:53
(238) оттуда и самоуверенноть, так как проще обучить 12 летнего мальчишку, чем тетю в 45 лет, особенно если она до этого работала с дос-программами
244 bolder
 
10.06.13
10:53
(0)Вполне нормальный код, если запрос очень длинный со многими вставками- уже конструктор не используется, так что без разницы, правится сразу текст.Преимущество в одном- все условия близко к месту использования.Конечно можно это поместить в &УсловияПоНоменклатуре и потом искать где то на 64 странице текста..

Нормальный код
245 Птица
 
10.06.13
10:54
какое-то слишком кровожадное название у ветки.
предпочла бы его не видеть
к сожалению, отключить секцию - не выход, поскольку интересует соседняя ветка в этой же секции.
246 AlexITGround
 
10.06.13
10:54
(244) код в (0) легко читается - его плюс в этом, хотя многие из нас сделали бы его по-другому
247 Эмбеддер
 
10.06.13
10:54
(243) не заметил возраст, извените))))
248 sttt
 
10.06.13
10:55
(116) что мешает на время отладки за комментировать этот участок:

...
   |ПО
   |    Док.Номенклатура = РезервыПоДокументу.Номенклатура
   //|    //СОЕДИНЕНИЕ_Характеристика_РезервыПоДокументу

   //|    //СОЕДИНЕНИЕ_Серия_РезервыПоДокументу

   //|    //Док_УсловиеДокументРезерва


...

развели тут куча мала из ничего))))
249 Bigbro
 
10.06.13
10:55
(80) в семерке конструктор таки есть.
250 Deal with it
 
10.06.13
10:55
воу воу,ТС, палехче!

ТС нервный
251 Fish
 
10.06.13
10:56
(210) Код и человек это две разные вещи. Код - это то, с чем программистам приходится иметь дело. Такая уж у них профессия. Но тут твоя мысль совпадает с моей: если тебе неприятно иметь дело со своей профессией, то надо менять профессию.
252 jsmith82
 
10.06.13
10:56
Согласен. Я обычно делаю замены в конце

Плохой код
253 PR
 
10.06.13
10:57
(241) Мне кажется, ты удивишься, если поищешь упоминания про фаллосы и производные в этой ветке до твоего поста.
К чему все сводить к фаллосам?
254 AlexITGround
 
10.06.13
10:57
(247) гл. бухи скидку на мой возраст мне не делают, а требуют по полной, так что - не обольщайтесь, коллега, когда с моим возрастом начинают Вас уважаемого подсиживать, тем более, что у меня Ведущий, вчера вакансию видел - возраст до 30 требовали, шокирован был
255 PR
 
10.06.13
10:58
(251) Ни разу не совпадает. В каком месте?
256 Джинн
 
10.06.13
11:00
(253) Вы меня спрашиваете? Вы спросите тех, что начал соревноваться в длине этого прибора.
257 Fish
 
10.06.13
11:02
(255) Ты написал: "когда неприятно работать с человеком, то с ним расстаются", я написал: "когда неприятно иметь дело с профессией, то надо менять профессию". Суть от этого не меняется.
258 PR
 
10.06.13
11:02
(256) Коллега, как корабль назовете, так он и будет видеться.
Пока что с вашей легкой руки ветка с дискуссией представлена как "прикладная фаллометрия".
259 Steini
 
10.06.13
11:04
динамически собирать текст запроса лучше всяких стрзаменить. учитесь читать код

Нормальный код
260 Эмбеддер
 
10.06.13
11:04
(254) это конечно выгодное качество уметь себя продать
261 PR
 
10.06.13
11:05
(257) А когда неприятно пить теплую водку, то ее не пьют или охлаждают, да.
Только какое это отношение имеет к моей мысли "Когда неприятно работать с человеком, то с ним расстаются"?
Я хотел сказать, что если человек думает только о том, что ему комфортно, а на остальных начхать, то есть шанс, что с ним не захотят работать.
262 bolder
 
10.06.13
11:12
(245) Неверное голосование предлагаете.У на только ТС нервный)).
263 sttt
 
10.06.13
11:15
дурдом, вот так я ходил на собеседование)))

ТС нервный
264 Fish
 
10.06.13
11:21
(261) Согласен. Но речь шла немного о другом. Всем ты всё равно комфортно не сделаешь, как ни старайся, как никогда не напишешь код, который устроит любого, т.к. всегда найдётся тот, кто его не осилит и будет кричать и возмущаться, как ТС.
265 PR
 
10.06.13
11:37
(264) Это не повод делать хреново. Нужно стараться делать лучше.
266 Fedot200
 
10.06.13
11:42
Раньше использовал СтрЗаменить() теперь не пользую. Делаю или как в 0 или как в этом запросе... кстате оцените норм или нет?

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

Нормальный код
267 Эмбеддер
 
10.06.13
11:51
(266) зря. щас набегут и скажут что это кривой код
(264) как кто-то здесь справедливо говорил "никогда не оправдывайся"
268 Fedot200
 
10.06.13
11:51
+(266) да, конструктор не откроет, но достаточно удалить вот это " + УслДог +" и конструктор откроет.
ИМХО СтрЗаменить не комильфо и не всегда возможно использовать.

ЗЫ
ТС привыкай к такому коду и бросай СтрЗаменить в топку
269 Fedot200
 
10.06.13
11:51
(267) а мне нравится :-)
270 AlexITGround
 
10.06.13
11:52
(266) у тебя работает - Да, быстро - Да. Так зачем это тут вбрасывать? Программирование - это вполне себе творческая работа, в рамках ограничения написания кода.
271 Fedot200
 
10.06.13
11:53
(270) Просто хотел сказать что так лучше условие писать чем СтрЗаменить()
272 Fish
 
10.06.13
11:56
(265) Что значит хреново? Для одного один и тот же код будет хреновым, для другого - нормальным. Яркий пример - ТС. И на кого предлагаешь ориентироваться? Я привык всё-таки ориентироваться на какие-то общепринятые правила. Если кто-то их не понимает, то с какого перепуга мне надо ориентироваться на него?
273 PR
 
10.06.13
12:06
(272) Ориентироваться на здравый смысл ессно. А не записывать всех, кто пользуется конструктором запроса в быдлокодеры-неудачники.
Желание открыть текст запроса конструктором здраво? Здраво.
Нежелание изгаляться с текстом таким образом, чтобы конструктор его не ломал, но при этом можно было потом заменить в нем что-нить здраво? Тоже здраво.
То есть есть какие-то за и против для обоих вариантов. И нужно учитывать здравые аргументы для принятия решения о том, как в каждом конкретном случае сделать. А не стричь все под одну гребенку.
274 AlexITGround
 
10.06.13
12:06
(272) утрируешь уже
275 PR
 
10.06.13
12:08
+(273) С чего бы, кстати, соединение текста запроса по кускам стало общепринятым правилом, а все остальное кустарными быдлокодерскими зарисовками?
276 megabax
 
10.06.13
12:09
(266)
вот это место
 |    И РеализацияТоваровУслуг.Контрагент = &ВыбКонтрагент" + УслДог +"
в твоем коде очень плохо, конструктором не откроешь, всет таки лушче было бы через СтрЗАменить сделать
277 Flyd-s
 
10.06.13
12:13
Будем надеяться, что автор никогда не откроет ЗУП
278 Fedot200
 
10.06.13
12:40
(276) это очень простенький запрос, а есть запросы на несколько страниц с кучей временных таблиц и т.д. и т.п. И СтрЗаменить очень опасно там применять.

И вообще - хочется универсальности. А СтрЗаменить не всегда можно использовать, а значит нет универсальности.
279 Fedot200
 
10.06.13
14:40
(276) на тебе пример использования СтрЗаменить :-)
Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ " + СтрЗаменить(Строка(Топ),Символы.НПП,"") + "
                  |    ХозрасчетныйОбороты.СуммаОборотДт,
                  |    ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаОборотКт,
                  |    ХозрасчетныйОбороты.Субконто1
                  |ИЗ
                  |    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПериода, &КонПериода, Период, Счет = &Счет, , , КорСчет = &КорСчет, ) КАК ХозрасчетныйОбороты
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    СуммаОборотКт УБЫВ";

Где Топ - числовой реквизит на форме
ЗЫ Конструктор тоже не откроет
ЗЫЗЫ
Предложи свой вариант, чтобы можно было с формы рулить сколько мне нужно строк выбирать, плиз.
280 magicSan
 
13.06.13
17:26
нормальный такой код и конструктор из примера должен работать, я сам так условия добавляю причем сам люблю конструктор и им пользуюсь

Нормальный код
281 magicSan
 
13.06.13
17:30
(279) "первые 0" после запроса заменяй на значение из формы
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн