|   |   | 
| 
 | Как параметр Массив превратить в ВТ в запросе? | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Во общем сложный групповой НайтиПоРеквизиту() со всякими там соединениями и условиями. Но потом все к основной тадлице должно левосоединяться. И где не соединилось - надо досоздать объекты в базе.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |