|
Стиль написания кода в запросе | ☑ | ||
---|---|---|---|---|
0
Kifsif
25.08.14
✎
22:23
|
Читаю книгу "Язык запросов".
Там постоянно вот в таком стиле все оформлено: ВЫБРАТЬ Товары.Код, Товары.Наименование КАК Наименование, Товары.Родитель, Товары.ЭтоГруппа ИЗ Справочник.Товары КАК Товары УПОРЯДОЧИТЬ ПО Наименование Я пока пишу в консоли все вручную. Вот в таком стиле: ВЫБРАТЬ Код, Наименование, Родитель, ЭтоГруппа ИЗ Справочник.Товары УПОРЯДОЧИТЬ ПО Наименование И никак не могу понять, зачем они так пишут. Вот зачем писать "КАК Наименование", если оно и так уже наименование. Зачем какой-то псевдоним таблице, если и так запрос работает. Вообще-то лаконичность кода считал всегда благом, если честно. Поэтому не врублю никак - зачем так? |
|||
1
mistеr
25.08.14
✎
22:27
|
(0) Это не они, это конструктор запросов так пишет. Иногда действительно хочется убить того, кто писал для него правила форматирования. Надеюсь, когда-нибудь эти правила можно будет кастомизировать.
|
|||
2
shuhard
25.08.14
✎
22:30
|
(0) ню ню
попробуй написать реальный запрос без алиасов, а не выборку из одного дохлого справочника |
|||
3
Apokalipsec
25.08.14
✎
22:32
|
сказал же почитайте про бд, запросы. как определять когда ты "товар" из двух разных таблиц тянуть, из какой ты хочешь?
|
|||
4
КонецЦикла
25.08.14
✎
22:46
|
Разработчики восьмерки немного лоханулись... казалось бы мелочь, но в купе с другими говорит о многом...
Не так надо ВЫБРАТЬ Товары.Код, Товары.Наименование КАК Наименование, А так ВЫБРАТЬ Товары.Код , Товары.Наименование КАК Наименование |
|||
5
mistеr
25.08.14
✎
22:53
|
(4) Побуду педантом:
ВЫБРАТЬ Товары.Код , Товары.Наименование КАК Наименование |
|||
6
КонецЦикла
25.08.14
✎
22:55
|
:)
Это уже лучше, но больше влияет на восприятие, а не на написание :) |
|||
7
Фокусник
25.08.14
✎
23:47
|
(0) ИМХО, лучше КАК всегда подставлять, удобнее потом через конструктор дорабатывать запрос
|
|||
8
GROOVY
26.08.14
✎
00:12
|
В запросе овер размер экрана, очень зорошо читать алиасы таблиц. А алиасы полей нужны, если есть понинание того, что автоалиас может быть назначен самой платформой в зависимости от языка выполнения (язык локализации), и что там будет Name или Наименование, хз.
|
|||
9
mistеr
26.08.14
✎
00:15
|
(8) Что за автоалиасы?
|
|||
10
GROOVY
26.08.14
✎
00:18
|
(9) Ну как платформа назовет результат функции СУММА(КоличествоОстаток) ?
|
|||
11
фобка
26.08.14
✎
00:22
|
В 8ке не имеет особого смысла как выглядит текст запроса, все равно через конструктор проще воспринимается всё
|
|||
12
фобка
26.08.14
✎
00:24
|
(10) шо за количествоостаток? Платформа автоматом обзывает как поле1,2,3
|
|||
13
mistеr
26.08.14
✎
00:25
|
(10) КоличествоОстаток[1,2,...]
|
|||
14
фобка
26.08.14
✎
00:27
|
Про лаконичность кода - ставьте алиасы на таблицы, на полях экономить нет смысла. Платформа (8.2) иногда на динамических списках (и еще в каких-то случаях) глючит если алиасов нет, поэтому проще перестраховаться
|
|||
15
GROOVY
26.08.14
✎
00:33
|
Попробуйте платформу на английском запустить, ну или на немецком и удивитесь... Поле1,2,3 :) Да...
|
|||
16
unregistered
26.08.14
✎
00:53
|
(0) Ключевая фраза "пишу ... вручную"
Остальное лирика. Пока от безделья маешься ручной писаниной запросов к одному источнику - пиши как хочешь. Когда надоест - станешь пользоваться конструктором и глупые вопросы отпадут сами собой. |
|||
17
Лодырь
26.08.14
✎
06:03
|
(16) Ну вот тут Как в запросе сравнить реквизиты документа между собой "папки" отписались, что только ручное написание запросов канонично )
|
|||
18
Chai Nic
26.08.14
✎
07:21
|
(17) Конструктор конечно убогий, но другого у нас нет..
|
|||
19
VladZ
26.08.14
✎
07:32
|
(0) Учись сразу мыслить масштабно. Наваять запрос для одного справочника - это фигня. А если два-три объекта выборки? А если больше?
|
|||
20
VladZ
26.08.14
✎
07:33
|
+19 Представь, что тебе придется дорабатывать этот запрос.
|
|||
21
13_Mult
26.08.14
✎
08:43
|
Ну если с фанатизмом то пишите тогда тексты запроса в одну строку ))
|
|||
22
13_Mult
26.08.14
✎
08:44
|
(21) + и на англ. языке )
|
|||
23
13_Mult
26.08.14
✎
08:49
|
(22) + типа этого ))
select Code , Description from Catalog.Банки |
|||
24
Ndochp
26.08.14
✎
09:28
|
(0) Как надо писать всегда. Потому, что конструктор.
Представь, у тебя пакет из десятка запросов. В третьем тебе надо поменять "вт.Организация" на "ЕстьNULL(вт.Организация, вт2.Организация)" Если у тебя было написано Выбрать ВТ.Организация, ... Поместить вт3 то после изменения у тебя поле запроса переименуется в "поле 1" и ниже во всех 7 оставшихся запросах пакета все, что содержало "вт3.Организация" будет просто удалено. Условия, связи, поля, все. А если было Выбрать ВТ.Организация как Организация, ... Поместить вт3 то этот кусок преобразуется в Выбрать ЕстьNULL(вт.Организация, вт2.Организация) как Организация, ... Поместить вт3 и никаких проблем. |
|||
25
Бешеная Нога
26.08.14
✎
09:38
|
имхо автор просто зеленый в плане запросов
|
|||
26
Бешеная Нога
26.08.14
✎
09:38
|
"КАК" надо писать всегда. Просто до этого понимания надо еще дорасти
|
|||
27
ДенисЧ
26.08.14
✎
09:39
|
(26) Кстати, само КАК необязательно ))
|
|||
28
_fvadim
26.08.14
✎
09:58
|
(27) спс :)
|
|||
29
Зойч
26.08.14
✎
10:16
|
Для форматирования кода запроса рекомендуется открывать консоль, даже если ты пишешь вручную
|
|||
30
Ёпрст
26.08.14
✎
10:18
|
(29) не всегда.. в старых запросах на универсальном отчете такой совет вреден - убивает вставки кода с комментариями - которые потом заменяются на другой код при определенных условиях.
|
|||
31
AlexITGround
26.08.14
✎
10:18
|
(0) срочно читать Ицик Бен-Гана
|
|||
32
Зойч
26.08.14
✎
10:20
|
(30) таких уже нет. зато синтаксис контроль как бонус
|
|||
33
mistеr
26.08.14
✎
10:30
|
(32) Бывают такие запросы, в которых комментарии просто необходимы.
|
|||
34
Ёпрст
26.08.14
✎
10:31
|
(32) ну.. не у всех
:) есть еще и 8.1 - а там в полный рост во всей конфе таких отчетов |
|||
35
Ёпрст
26.08.14
✎
10:32
|
Хотя не понятно, почему комменты в запросе убивают конструктором, могли бы и оставлять (ну или галку там воткнуть - убрать комменты)
|
|||
36
Зойч
26.08.14
✎
10:34
|
(35) Этому пожеланию лет больше чем самой восьмерке
|
|||
37
mistеr
26.08.14
✎
11:38
|
(35) Это можно понять. "Оставлять комменты" - очень непростая задача, с учетом того, что текст запроса парсится конструктором во внутреннее представление, а после обработки текст генерируется заново. Поди найди там то место, где нужно "оставить" коммент.
|
|||
38
Chai Nic
27.08.14
✎
09:47
|
(37) Ничего особо хитрого. Привязывать комментарий к последней значимой лексеме. В конструкторе она при этом отобразится с флажком с возможностью редактирования комментария по правой кнопке мыши. При удалении лексемы - предложить перенести комментарий вперед-назад-удалить.
|
|||
39
hhhh
27.08.14
✎
10:03
|
(38) видимо конструктор не отслеживает лексемы. Например было 40 строчек, а стало 70, какие-то удалили, какие-то поменяли, добавили.
|
|||
40
Jokero
27.08.14
✎
10:35
|
(11) Если бы еще все запросы конструктором открывались. А то часто попадаются такие, где части запроса в разных процедурах формируются, а потом складываются перед выполнением.
|
|||
41
YurAnt
27.08.14
✎
10:38
|
(40) вот именно поэтому в некоторых случаях жизненно необходимо умение читать/писать запросы руками
|
|||
42
mistеr
27.08.14
✎
16:28
|
(38) Ну-ну. Нет уже тех лексем на выходе, другие все.
|
|||
43
Chai Nic
27.08.14
✎
16:47
|
(42) Ну как это нет. Вот на входе у конструктора есть некий запрос с вкрапленными в него комментариями. Конструктор его парсит в некое внутреннее представление. Что мешает конструктору отследить появление в тексте комментария и запомнить его, привязав к последнему созданному в памяти "лексемообъекту"?
|
|||
44
Guk
27.08.14
✎
16:54
|
(18) можно пару примеров убогости конструктора?...
|
|||
45
Крошка Ру
27.08.14
✎
17:03
|
(41) Надо быть последовательным:
"вот именно поэтому в некоторых случаях жизненно необходимо умение вести учет без вычислительной техники" |
|||
46
Chai Nic
27.08.14
✎
19:57
|
(44)
1. Режет комментарии 2. Нет возможности в условиях указать реквизиты с обеих сторон выражения, приходится писать ручками |
|||
47
timurhv
27.08.14
✎
20:24
|
(46) п.2 - галочку "Произвольное" не пробовал выставить?
|
|||
48
timurhv
27.08.14
✎
20:31
|
(0) Сколько запросов найдешь в типовой конфигурации без соединений?
|
|||
49
Chai Nic
27.08.14
✎
20:33
|
(47) Именно это и есть "писать ручками"
|
|||
50
timurhv
27.08.14
✎
20:35
|
(49) На кнопку нажми и можешь там таскать мышкой)))
|
|||
51
Chai Nic
27.08.14
✎
20:36
|
+(46)
3. Да, еще невозможно поменять порядок полей после того, как их добавил. Приходится удалять и добавлять заново в нужном порядке. Реально напрягает. |
|||
52
mistеr
27.08.14
✎
21:02
|
(51) Это делается на закладке Псевдонимы.
|
|||
53
Chai Nic
27.08.14
✎
21:08
|
(52) О как, спасибо за информацию - не знал
|
|||
54
фобка
27.08.14
✎
21:11
|
(40) отладчик в помощь + консоль
|
|||
55
фобка
27.08.14
✎
21:14
|
(52) в конструкторе нельзя менять порядок джойнов
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |