Имя: Пароль:
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" после запроса заменяй на значение из формы
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший