Имя: Пароль:
1C
1С v8
Упрощение текста запроса
0 s-n-a-y
 
07.03.14
15:07
Есть два одинаковых запроса (но с разными параметрами) склеенных через объединение

ВЫБРАТЬ ПЕРВЫЕ 1
    1 как номер,
    КонтактнаяИнформация.Представление
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Объект = &Объект
    И КонтактнаяИнформация.Вид = &Вид
объединить все
ВЫБРАТЬ ПЕРВЫЕ 1
    2,
    КонтактнаяИнформация.Представление
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Объект = &Объект2
    И КонтактнаяИнформация.Вид = &Вид2

Там текст запроса дублируется два раза. Можно ли как-то упростить? Может быть с использованием временных таблиц? Покажите, пожалуйста.
1 vicof
 
07.03.14
15:08
(0) Зачем темы дублируешь? Тебе в предыдцщей ветке ответили
2 ptiz
 
07.03.14
15:08
Оставь так, нормально.
3 PR
 
07.03.14
15:09
(0) Зачем?
4 s-n-a-y
 
07.03.14
15:12
(0), в той ветке на этом остановилось. Извиняюсь, нужно было в той спрашивать.
5 s-n-a-y
 
07.03.14
15:13
(3), а если одинаковых запросов будет не два, а больше?
6 PR
 
07.03.14
15:13
(5) Сколько? Конечное количество?
7 s-n-a-y
 
07.03.14
15:14
(6), ну скажем пять.
8 vicof
 
07.03.14
15:16
(7) Тогда цикл с динамическим формированием текста
9 salvator
 
07.03.14
15:16
(8) Это ты ему сча мозг сломал :))
10 PR
 
07.03.14
15:17
(7) Ну скажем норм.
11 vicof
 
07.03.14
15:17
(9) Можно просто забить на эту ерунду)
12 s-n-a-y
 
07.03.14
15:18
(7), поясните, пожалуйста.
13 PR
 
07.03.14
15:19
(12) Это ты себя спрашиваешь? Что тебе пояснить-то?
14 salvator
 
07.03.14
15:20
(12) Например поместить параметры в таблицу значений и, обходя ее построчно, формировать текст запроса.
15 salvator
 
07.03.14
15:20
А лучше в структуру.
16 s-n-a-y
 
07.03.14
15:21
(13), то что написано в посте (7)
17 vicof
 
07.03.14
15:21
(12) Цикл - определенный объем повторяющихся операций (возможно бесконечный)
Динамический - формирующийся во время исполнения программы
Формирование - создание
Текст - набор символов
18 vicof
 
07.03.14
15:21
(16) В посте (7) написано "ну скажем, пять"
19 s-n-a-y
 
07.03.14
15:22
извините ошибся (8)
20 s-n-a-y
 
07.03.14
15:23
(17) я хотел увидеть пример кода
21 vicof
 
07.03.14
15:28
Для к = 1 по 5 цикл
текст = текст + "
ВЫБРАТЬ ПЕРВЫЕ 1
    1 как номер,
    КонтактнаяИнформация.Представление
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Объект = &" + Объект[к] + "
    И КонтактнаяИнформация.Вид = &" + Вид[к] +"
объединить все;
конеццикла;
//потом отрезать последний объединить все
22 s-n-a-y
 
07.03.14
15:29
Дошло. А средствами конструктора запроса нельзя?
23 salvator
 
07.03.14
15:30
(21) Только ему надо будет

ВЫБРАТЬ ПЕРВЫЕ 1
    "+Строка(к)+" как номер, ...
24 vicof
 
07.03.14
15:31
(23) ну я на коленке писал, мог упустить)
25 s-n-a-y
 
07.03.14
15:31
Я имел в виду, что склеивать в цикле не совсем красиво
26 salvator
 
07.03.14
15:31
(22) Нет. Более того, ты его потом конструктором не откроешь.
27 salvator
 
07.03.14
15:32
(25) Ну пиши простыню, никто тебя не принуждает. Ты спросил - тебе ответили. Дальше сам решай.
28 vicof
 
07.03.14
15:33
(25) Да ладно.
Может быть ты хотел сказать неудобно, потому что ты не можешь его открыть конструктором?
Тру-программеры пишут в цикле с завязанными глазами и руками
29 s-n-a-y
 
07.03.14
15:34
Понял, спасибо.
30 Ёпрст
 
гуру
07.03.14
15:34
В один запрос всё засунуть, через or в условии и через case в селекте..
31 Ёпрст
 
гуру
07.03.14
15:34
+30 можешь..
32 ptiz
 
07.03.14
15:35
Собери ТЗ:
Объект, Вид
Объект1, Вид1
Объект2, Вид2
...
Тогда сделаешь красивый текст запроса.
33 vicof
 
07.03.14
15:36
(30) Ему в предыдущей теме все разжевали
34 s-n-a-y
 
07.03.14
15:37
т.е. тогда в строке появится доп. поле, по которому я могу определить к каким параметрам строка относится?
35 vicof
 
07.03.14
15:39
(34) Ты определись сначала, что тебе надо
36 ptiz
 
07.03.14
15:39
(34) Тогда ты эту ТЗ сможешь передать в запрос и использовать её для соединений и условий.
37 s-n-a-y
 
07.03.14
15:40
(33) в предыдущей теме были ответы только с дублируемым текстом в запросе.
38 vicof
 
07.03.14
15:42
(37) а если найду?
39 vicof
 
07.03.14
15:43
(37) ответь на (35)
40 Ёпрст
 
гуру
07.03.14
15:44
можешь и тип+вид+номер загнать во временную табличку и потом в запросе просто иннер джоин к ней.. усё.
41 s-n-a-y
 
07.03.14
15:53
42 s-n-a-y
 
07.03.14
15:56
ВЫБРАТЬ
    КонтактнаяИнформация.Вид
    КонтактнаяИнформация.Представление
ИЗ
    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
ГДЕ
    КонтактнаяИнформация.Объект = &Объект
    И КонтактнаяИнформация.Вид В (&Виды)