|
Когда 1С научиться нормально писать. 🠗 (Волшебник 20.02.2014 14:10) | ☑ | ||
---|---|---|---|---|
0
batmansoft
20.02.14
✎
12:58
|
Вот реально бест такой код:
" ЗапросПоТоварам.Текст = "ВЫБРАТЬ | ЗапросПоОборудованию.Номенклатура, | ВЫРАЗИТЬ(ЗапросПоОборудованию.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар, | ЗапросПоОборудованию.Номенклатура." + ТекстКодАртикул + " КАК ТоварКод, | ЗапросПоОборудованию.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаХранения, | ЗапросПоОборудованию.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ЗапросПоОборудованию.Количество КАК КоличествоМест, | ЗапросПоОборудованию.Количество КАК Количество, | ЗапросПоОборудованию.Коэффициент, | ЗапросПоОборудованию.Цена, | ЗапросПоОборудованию.Сумма, | ЗапросПоОборудованию.СуммаНДС, | ЗапросПоОборудованию.СтавкаНДС, | ЗапросПоОборудованию.НомерСтроки, " |
|||
1
Chai Nic
20.02.14
✎
12:59
|
"реально бест"
5 баллов! |
|||
2
Wobland
20.02.14
✎
12:59
|
(0) а сам планируешь?
|
|||
3
batmansoft
20.02.14
✎
12:59
|
реально бесит
|
|||
4
Ymryn
20.02.14
✎
13:00
|
А чем именно он раздражает?
|
|||
5
jsmith82
20.02.14
✎
13:00
|
в чём бест?
|
|||
6
H A D G E H O G s
20.02.14
✎
13:00
|
(4) Динамическим текстом
|
|||
7
Chai Nic
20.02.14
✎
13:01
|
Бывает бест и похуже
|
|||
8
batmansoft
20.02.14
✎
13:01
|
Вот почему криворукие программеры из 1С не могут обойтись без такого:
." + ТекстКодАртикул + " Почему нельзя сделать нормальные запросы что бы их можно было открыть конструктором? |
|||
9
H A D G E H O G s
20.02.14
✎
13:01
|
Забей.
Это наследие середины 2000-х. Открой для себя УТ11, вот там реально бестня. |
|||
10
1Сергей
20.02.14
✎
13:01
|
ещё как бест http://tsya.ru/
|
|||
11
Йохохо
20.02.14
✎
13:02
|
(0) это же печатная форма наверняка, не надо усложнять сверх бсп
|
|||
12
1Сергей
20.02.14
✎
13:02
|
(8) чтобы мозгами думали, а не тупо конструкторами пользовались
|
|||
13
H A D G E H O G s
20.02.14
✎
13:03
|
(12) Ооо, вот и тру программист нас посетил.
|
|||
14
batmansoft
20.02.14
✎
13:04
|
(12) Тогда нафига они эти конструкторы придумали, если ими нельзя пользоваться?
|
|||
15
skunk
20.02.14
✎
13:04
|
(8)расскажи мне как получить без этого ссылки всех документов имеющихся в базе за определенный период
|
|||
16
1Сергей
20.02.14
✎
13:05
|
(13) Я? не. я просто покурить вышел...
(14) для новичков |
|||
17
batmansoft
20.02.14
✎
13:06
|
(15) В данном случае никак.
А в случае 0 реально можно было без этого бойтись. Например так: ЗапросПоТоварам.Текст = "ВЫБРАТЬ | ЗапросПоОборудованию.Номенклатура, | ВЫРАЗИТЬ(ЗапросПоОборудованию.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар, | ЗапросПоОборудованию.Номенклатура.Код КАК ТоварКод, | ЗапросПоОборудованию.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаХранения, | ЗапросПоОборудованию.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ЗапросПоОборудованию.Количество КАК КоличествоМест, | ЗапросПоОборудованию.Количество КАК Количество, | ЗапросПоОборудованию.Коэффициент, | ЗапросПоОборудованию.Цена, | ЗапросПоОборудованию.Сумма, | ЗапросПоОборудованию.СуммаНДС, | ЗапросПоОборудованию.СтавкаНДС, | ЗапросПоОборудованию.НомерСтроки, | 1 КАК ID |ИЗ ... если что то тогда Запрос.Текст = СтрЗаменить(Запрос.Текст,"Код","Артикул") КонецЕсли |
|||
18
skunk
20.02.14
✎
13:07
|
(17)за такое я бы вообще на месте сразу убивал
|
|||
19
Zero on a dice
20.02.14
✎
13:09
|
(14) про конструктор движений нам расскажешь?
как криворукие проги туда свою обработку втыкают и нельзя конструктором открыть) (17) пряморукий код)) |
|||
20
Ymryn
20.02.14
✎
13:09
|
Динамический текст запроса - очень удобно. То что нельзя его открыть конструктором - да пофиг, за тот функционал что позволяет такой прием, я готов заплатить такую маленькую цену. Все равно запрос при этом читается не сильно сложнее (а данный запрос - вообще элементарно читается).
|
|||
21
Karavanych
20.02.14
✎
13:10
|
Дак а че такого в (0) ?
Нормально написано, иногда просто запрос должен работать либо по коду либо по артикулу. в (17) Ужас...а если там еще появится поле "код", а если потребуется доработать запрос через пару месяцев ? Это же ад поддержки будет, а (0) все ясно сразу, не подразумевается никаких двойных трактовок, просто не открывается в конструкторе, подумаешь - скопируй в консоль запросов, чуть изменить и открой. |
|||
22
skunk
20.02.14
✎
13:12
|
(21)да пофих про поле код ... а если там завтра потребуется выбрать реквизиты содержащие три символа "код", к примеру - "кодировка"
|
|||
23
Zero on a dice
20.02.14
✎
13:12
|
(20) он имеет ввиду способ вроде
"Выбрать &ТекстВставки" с последующим СтрЗаменить(), но, очевидно, пользоваться этим способом сам не умеет) |
|||
24
batmansoft
20.02.14
✎
13:12
|
(16) "(14) для новичков" - не для новичков, а для удобства.
|
|||
25
skunk
20.02.14
✎
13:13
|
или как в нашей конфе "КодКПВЭД", "КодСмарта" и кучу других кодов
|
|||
26
kosts
20.02.14
✎
13:13
|
(20) Как быть с динамическими запросами из 5000 строк, да еще размазанных по разным запросам с помощью менеджера временных таблиц... И еще с таблицами в параметрах...
Конструктор, хоть как-то позволил бы это обозреть... |
|||
27
batmansoft
20.02.14
✎
13:13
|
(20) Такой динамический запрос адский трудоёмко поддерживать. Вот попробуй без конструктора вставить туда хотя бы еще одно поле? Затрахаешься везде вставлять куд анадо
|
|||
28
skunk
20.02.14
✎
13:14
|
(23)открой ты такой запрос в конструкторе)))
|
|||
29
Karavanych
20.02.14
✎
13:15
|
(27) Скопируй текст в обработку, убери эту вставку динамическую и открой. Ну потратишь 5 минут лишних.
|
|||
30
batmansoft
20.02.14
✎
13:15
|
(23) Кстати, да, правильно, именно &ТексВставки надо делать
|
|||
31
Ymryn
20.02.14
✎
13:15
|
(26) личном не легче читать запрос без конструктора. Если отступы соблюдены и все сделано без обилия вложенных запросов, то читается весьма легко.
(27) Одно поле в этот запрос вставляется одной строкой и тратит 30 секунд времени максимум. В чем проблема не понимаю. |
|||
32
kosts
20.02.14
✎
13:16
|
(28) Открывается, но слетают группировки, если в группировках такое поле есть...
|
|||
33
Lama12
20.02.14
✎
13:17
|
(0)Забей. Посмотри на зарплатные "многоходовые" запросы, и выдохни.
Отладчик в руки. ставишь точку останова перед Выполнить, и смотришь текст запроса итоговый. Его можно скопировать и вставить в конструктор для отладки, если тебе так удобнее. В приведенном примере и так все читается просто. |
|||
34
Ymryn
20.02.14
✎
13:17
|
(31) + как бы запросы успешно пишутся и редактируются без конструктора. И порой заметно быстрее делаются именно без конструктора, если ты структуру базы уже знаешь и написание основных объектов помнишь на зубок.
|
|||
35
Ymryn
20.02.14
✎
13:19
|
(31) *лично мне
Приношу извинения. |
|||
36
kosts
20.02.14
✎
13:19
|
(34) Одно другому не мешает, но я за то, что бы был выбор...
|
|||
37
Zero on a dice
20.02.14
✎
13:21
|
(34) добавлять в объединения вручную менее удобно - факт
|
|||
38
IamNotAlexy
20.02.14
✎
13:22
|
(0) ждите 8.3.5
там будет объектная модель запроса с возможность. нормально программно его собирать.. |
|||
39
Ymryn
20.02.14
✎
13:24
|
(37) не полностью соглашусь. Зависит от объединения. Если в других блоках должно быть null, то согласен. Если же должен быть осмысленный подбор, то руками может оказаться и быстрее.
|
|||
40
H A D G E H O G s
20.02.14
✎
13:25
|
ППЦ
ВЫБОР КОГДА &НуженАртикул Тогда Номенклатура.Артикул КОГДА &НуженСмарт Тогда Номенклатура.Смарт ИНАЧЕ Номенлатура.Код КОНЕЦ |
|||
41
batmansoft
20.02.14
✎
13:26
|
(40) О! Хороший код!
|
|||
42
kosts
20.02.14
✎
13:27
|
(40) Я бы выбрал Заменить()
|
|||
43
H A D G E H O G s
20.02.14
✎
13:28
|
(42) Заменить() катит только для универсальных модулей, используемых в разных конфигурациях, в которых по разному именуются таблицы данных.
|
|||
44
Ymryn
20.02.14
✎
13:28
|
(40) значительно увеличить объем кода, чтобы оно открывалось конструктором? А оно того стоит? Или у нас стали за количество строчек платить?
|
|||
45
H A D G E H O G s
20.02.14
✎
13:30
|
Если Метаданные.Имя="УТ" Тогда
Запрос.Текст=стрЗаменить(Запрос.Текст,"ПартииТоваровНаСкладахБухгалтерскийУчет","ПартииТоваровНаСкладах"); |
|||
46
H A D G E H O G s
20.02.14
✎
13:30
|
(44) Полазишь по модулю НДФЛ в ЗУПе - поймешь.
|
|||
47
Ymryn
20.02.14
✎
13:31
|
(46) не напоминай. Лазил. Многое понял. Спорить не буду. Ты абсолютно прав.
|
|||
48
13_Mult
20.02.14
✎
13:32
|
(0) Скажите спасибо что в одну строчку не написали, а запрос норм и не надо на это нагонять. ))
|
|||
49
batmansoft
20.02.14
✎
13:32
|
(44) Конечно, стоит. Вот надо новое поле добавить, констуртором ты за две секунды добавишь. А сколько будешь добавлять новое поле и материться, если текст запроса сделан через кучу Если тогда КонецЕсли?
|
|||
50
Ymryn
20.02.14
✎
13:35
|
(49) я уже писал, что новое поле добавляется в запрос как предложен в (0) за 30 секунд максимум. При желании вполне укладываешься за 5 - 10, в зависимости от сложности вложенности. Можно поспорить на тему 2х секунд через конструктор, но в любом случае даже при этих цифрах, я не считаю, что это такая бешенная потеря времени.
|
|||
51
H A D G E H O G s
20.02.14
✎
13:36
|
(49) Конструктор еще и проверит твои писанины.
Но трушные программеры пишут отруки. |
|||
52
Chai Nic
20.02.14
✎
13:36
|
(49) Я в своих нетленках вообще тексты запросов в макетах храню, а не в коде. Удобно.)
|
|||
53
Ymryn
20.02.14
✎
13:38
|
(51) вот кстати, единственная причина, по которой мне действительно печально, что конструктор становится недоступным. Проверять запрос становится сложнее и можно пропустить опечатку. Факт.
|
|||
54
Zero on a dice
20.02.14
✎
13:38
|
(49) если пересилить свое гипертрофированное чуство одинэсово-програмистской несправедливости и "а вот до меня прог работал..", ничего сложного в этом нет, и все делается быстро.
а если еще и интернет при этом выключить |
|||
55
Хуан
20.02.14
✎
13:39
|
(10) +1
|
|||
56
Ymryn
20.02.14
✎
13:39
|
Правда пример тут какой-то не очень. Ведь вполне же можно было найти запрос, текст которого собирается из частей по условию в цикле. Вот это действительно мини-шедевры в плане отладки и модификации.
|
|||
57
H A D G E H O G s
20.02.14
✎
13:45
|
(52) Расскажи!
|
|||
58
H A D G E H O G s
20.02.14
✎
13:45
|
(56) Бывает и такое.
|
|||
59
ИС-2
naïve
20.02.14
✎
13:49
|
(8) а вы знайте как работает оптимизатор запросов при транслировании из 1C в СУБД? Думаю нет.
И я тоже. Но читал, чтобы запрос преобразовался как можно лучше не должны быть всяких Выбор когда, НачалоПериода и т.д. Поэтому и 1C ники составляют запрос димамически |
|||
60
ИС-2
naïve
20.02.14
✎
13:50
|
вот пример. Отчет Задолженность по интервалам. В УТ 10.2 запрос статичный через реальную таблицу, а вот в УПП текст формируется динамически
|
|||
61
skunk
20.02.14
✎
13:50
|
(59)лажа ... нормально запросы отрабатывают и по выбору
|
|||
62
Zero on a dice
20.02.14
✎
13:51
|
(60) да ну, слишком глубоко в дебри, проще написать " + ?(ы=0, 1,2) + " чем конструкцию Выбор-Когда и слать туда лишний параметр
|
|||
63
Господин ПЖ
20.02.14
✎
13:52
|
тупая ветка... все фигня кроме запросов зупа
|
|||
64
Chai Nic
20.02.14
✎
13:52
|
(52) А чего тут рассказывать, создаешь в своем объекте текстовый макет, называешь его как-то, например "ТекстЗапросаПоДокументам", а в коде пишешь Запрос.Текст=ПолучитьМакет("ТекстЗапросаПоДокументам").ПолучитьТекст(), и всё красиво.. котлеты отдельно, мухи отдельно.
|
|||
65
Господин ПЖ
20.02.14
✎
13:53
|
(63) + еще когда результат из одного в другой через менеджер времянок перекладывается...
|
|||
66
batmansoft
20.02.14
✎
13:53
|
(59) Дык тогда можно изменять запрос через СтрЗаменить. А заменяемый текст обзывать какими нибудь парметрами, начинающимися на &
|
|||
67
kosts
20.02.14
✎
13:57
|
(64) А чем не устраивает?
|
|||
68
H A D G E H O G s
20.02.14
✎
13:58
|
(59) Он будет нормально транслирован.
|
|||
69
H A D G E H O G s
20.02.14
✎
13:59
|
(64) Зачем?
|
|||
70
Zero on a dice
20.02.14
✎
14:00
|
(66) проблема в том, что, действительно, сложный запрос ты конструктором отлаживать не станешь, а если тебе нужно его модифицировать, то, поняв его - не составит сложности дописать нужное. проблема надуманна. ну или я не стану, меня напрягает мышью возюкать и перещелкивать постоянно.
в СтрЗаменить есть конкретный недостаток по сравнению со сложением строк - нечитабельность (67) в макете можно хранить запрос без | и "", и отлаживать его в консоли чуть проще |
|||
71
Серго62
20.02.14
✎
14:01
|
(64) В чем кайф?
|
|||
72
Advan
20.02.14
✎
14:04
|
в (17)Уже неправильный выход получиться - так как заменит ТоварКод на товарАртикул(поле будет неправильно).
Я обычно смотрю отладчиком, копирую запрос - и в консоль - не удобно конечно - но что делать. Вот бы инструмент для работы с такими вставками. |
|||
73
Chai Nic
20.02.14
✎
14:04
|
(69) Никаких заморочек при переносе из консоли запросов и обратно по сравнению с встраиванием его в код (экранирование кавычек, вертикальная черта в каждой строке).
|
|||
74
batmansoft
20.02.14
✎
14:04
|
(64) А как ты правишь такие запросы, без конструктора?
|
|||
75
Advan
20.02.14
✎
14:04
|
в (40)Правильный ответ - правда не всегда так можно сделать :(
|
|||
76
Chai Nic
20.02.14
✎
14:05
|
(74) Через консоль запросов, разумеется
|
|||
77
el7cartel
20.02.14
✎
14:10
|
(74) ну так отладчиком прогони и увидешь хороший текст запроса, его и копирнешь в консоль!
|
|||
78
DS
20.02.14
✎
14:27
|
(75) "Оно ж конечно потому шо шож" (с)
в (40) лишний текст загромождает восприятие запроса. |
|||
79
vmv
20.02.14
✎
15:59
|
большинство типовых запросов УПП написано в стиле а ля
| ЗапросПоОборудованию.Номенклатура." + ТекстКодАртикул + " КАК ТоварКод, многие трехэтажные и в конструкторе хрен протестишь как решение этой проблемы разрабам надо больше юзать параметры запросов, ну и любителям текстовых вставок в запросы ломать руки конеш |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |