|
Как параметр Массив превратить в ВТ в запросе? | ☑ | ||
---|---|---|---|---|
0
Вася Теркин
26.02.19
✎
08:11
|
Например массивом из трех элементов в запрос я передаю номера телефонов
323244452 235324454 324545445 Теперь в запросе надо получить ВТ_Номера с одной колонкой Номер. ВЫБРАТЬ МассивНомеров.ЧегоТутПисать Поместить ВТ_Номера ИЗ &МассивНомеров КАК МассивНомеров ; Такая конструкция обречена. Просто соединить с числом ПИ не получится тоже. Вообще из параметра-массива можно вытащить данные в колонку таблицы запроса? |
|||
1
MyNick
26.02.19
✎
08:13
|
Кинуть в ТЗ, из ТЗ выбрать, нет?
|
|||
2
Провинциальный 1сник
26.02.19
✎
08:14
|
Выбрать * не пойдет?
|
|||
3
Вася Теркин
26.02.19
✎
08:20
|
В ТЗ я и сам могу догадаться... Вопрос нужен ли отдельный параметр?
К тому же просто загрузить в ТЗ нельзя, там колонку надо создавать с с явным описанием типа.... Громоздко. Может в запросе как изловчиться? |
|||
4
Вася Теркин
26.02.19
✎
08:28
|
(2) Запрос.Текст =
"ВЫБРАТЬ | * |ИЗ | &МассивНомеров КАК МассивНомеров"; Конструктор запроса ошибок не находить.... Но при выполнении по причине: Содержимое объекта данных может быть выбрано только во временную таблицу ********************** А если в ВТ, То не ясно как потом к выбранному обратиться? Запрос.Текст = "ВЫБРАТЬ | * |ПОМЕСТИТЬ ВТ_Номера |ИЗ | &МассивНомеров КАК МассивНомеров |; |ВЫБРАТЬ |Номера.ЧегоВыбратьНеИзвестно |ИЗ |ВТ_Номера КАК Номера"; |
|||
5
Вася Теркин
26.02.19
✎
08:29
|
Конструктор
"ВЫБРАТЬ | * |ПОМЕСТИТЬ ВТ_Номера |ИЗ | &МассивНомеров КАК МассивНомеров |; проглатывает, но потом в тексте запроса удаляет |
|||
6
Вася Теркин
26.02.19
✎
08:30
|
Придется некрасивую ТЗ рисовать...
|
|||
7
catena
26.02.19
✎
08:37
|
Массив нетипизирован по определению. А запрос жрет типизированное. Можно составить таблицу возможных вариантов и из нее выбрать по вхождению. Если категоричное неприятие типизированной ТЗ.
|
|||
8
Провинциальный 1сник
26.02.19
✎
08:38
|
(4) А попробуйте из ВТ тоже * выбрать. И выгрузить результат в ТЗ, посмотреть её потом.
|
|||
9
Мыш
26.02.19
✎
08:44
|
Для Каждого Элемент Из МассивНомеров Цикл Элемент="выбрать "+Строка(Элемент) КонецЦикла
Запрос = Новый Запрос(СтрСоединить(МассивНомеров," объединить все ")); |
|||
10
Вася Теркин
26.02.19
✎
08:56
|
(8) Нет. Мне в запросе надо левосоединять к ней.
|
|||
11
Вася Теркин
26.02.19
✎
08:59
|
(9) Хитрец...
... Пока сделал через ТЗ. |
|||
12
Вася Теркин
26.02.19
✎
08:59
|
(9) Но ведь оно не в ВТ...
|
|||
13
Мыш
26.02.19
✎
09:06
|
(12) И кушать за меня вы тоже будете? )
Для Каждого Элемент Из МассивНомеров Цикл Элемент="выбрать "+Строка(Элемент) КонецЦикла; МассивНомеров[0] = МассивНомеров[0] + " поместить времянка "; Запрос = Новый Запрос(СтрСоединить(МассивНомеров," объединить все ")); |
|||
14
Вася Теркин
26.02.19
✎
09:24
|
(13) Да. Но если в массиве будут элементы справочника или документы, то только по коду их искать или по номеру-дате...
При усложнении задачи все равно в ТЗ упираешься. Ибо через массив не передать. (13) И это не преобразование в запросе. |
|||
15
catena
26.02.19
✎
09:27
|
(14)Элементы справочника или документы можно выбирать из справочника или документа, где в &массив.
|
|||
16
DexterMorgan
26.02.19
✎
09:37
|
(14) Можно (13) переделать чтобы в цикле выбирать параметр и устанавливать его значение элементом из массива
|
|||
17
Вася Теркин
26.02.19
✎
09:43
|
(15) Да, точно, там проще будет.
|
|||
18
Вася Теркин
26.02.19
✎
09:45
|
(16) Но и это не преобразование параметра массив в ВТ внутри запроса.
|
|||
19
Мыш
26.02.19
✎
09:59
|
(14) При изменении условий задачи допустимо менять подход к решению. Под постановку задачи в (0) подходит. )
|
|||
20
Вася Теркин
26.02.19
✎
11:07
|
(19) Подходит отлично, спору нет.
Хотелось именно в запросе найти возможность превращать воду в вино. |
|||
21
breezee
26.02.19
✎
11:22
|
Вам заняться не чем?
|
|||
22
Rovan
гуру
26.02.19
✎
12:34
|
Что там дальше происходит с ВТ_Номера ?
- отбор др. запроса, соединение, объединение ? |
|||
23
Вася Теркин
28.02.19
✎
07:01
|
Соединение к ней левое делается. Надо определить какие объекты уже есть и по каким параметрам нет совпадений запрос вернет
|
|||
24
Вася Теркин
28.02.19
✎
07:04
|
Во общем сложный групповой НайтиПоРеквизиту() со всякими там соединениями и условиями. Но потом все к основной тадлице должно левосоединяться. И где не соединилось - надо досоздать объекты в базе.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |