|
Можно ли таблицу значений поместить в временную таблицу запроса? | ☑ | ||
---|---|---|---|---|
0
AlexSmirnov272
13.11.13
✎
14:10
|
Добрый день!
Имеется таблица значений состоящая из двух колонок, тип первой колонки - число, тип второй - таблица значений. Можно ли такую таблицу значений поместить во временную таблицу запроса? |
|||
1
Пират
13.11.13
✎
14:11
|
Можно, разрешаю
|
|||
2
Sabbath
13.11.13
✎
14:12
|
(0) "выбрать * поместить ВТ из &ТЗ КАК ТЗ"
|
|||
3
Sabbath
13.11.13
✎
14:13
|
ну а &ТЗ соответственно параметр запроса
|
|||
4
Sammo
13.11.13
✎
14:14
|
Как планируете обращаться в запросе к значениям второй колонки? (которая ТЗ)
|
|||
5
Sabbath
13.11.13
✎
14:14
|
а, ну суть вопроса про тип колонки ТЗ? Имхо да, не проверял
|
|||
6
AlexSmirnov272
13.11.13
✎
14:15
|
Функция ПолучитьВторуюТЗ()
МассивЧ = Новый Массив; МассивЧ.Добавить(Тип("Число")); ТЗ2 = Новый ТаблицаЗначений; ТЗ2.Колонки.Добавить("Колонка21",Новый ОписаниеТипов(МассивЧ, , ,Новый КвалификаторыЧисла(12,3))); ТЗ2.Колонки.Добавить("Колонка22",Новый ОписаниеТипов(МассивЧ, , ,Новый КвалификаторыЧисла(12,3))); СтрокаТЗ2 = ТЗ2.Добавить(); СтрокаТЗ2.Колонка21 = 211; СтрокаТЗ2.Колонка21 = 221; СтрокаТЗ2 = ТЗ2.Добавить(); СтрокаТЗ2.Колонка21 = 212; СтрокаТЗ2.Колонка21 = 222; Возврат ТЗ2; КонецФункции Процедура КнопкаВыполнитьНажатие(Кнопка) МассивЧ = Новый Массив; МассивЧ.Добавить(Тип("Число")); РезультатНом = Новый ТаблицаЗначений; РезультатНом.Колонки.Добавить("Колонка1",Новый ОписаниеТипов(МассивЧ, , ,Новый КвалификаторыЧисла(12,3))); РезультатНом.Колонки.Добавить("Колонка2",Новый ОписаниеТипов("ТаблицаЗначений")); Для а=1 По 2 Цикл СтрокаТЗ = РезультатНом.Добавить(); СтрокаТЗ.Колонка1 = а; СтрокаТЗ.Колонка2 = ПолучитьВторуюТЗ(); КонецЦикла; Запрос1 = Новый Запрос; МенеджерВТ = Новый МенеджерВременныхТаблиц; Запрос1.МенеджерВременныхТаблиц = МенеджерВТ; Запрос1.Текст = "ВЫБРАТЬ | РезультатНом.Колонка1 КАК Колонка1, | РезультатНом.Колонка2 КАК Колонка2 |ПОМЕСТИТЬ ВТДанные |ИЗ | &РезультатНом КАК РезультатНом"; Запрос1.УстановитьПараметр("РезультатНом",РезультатНом); Запрос1.Выполнить(); Запрос1.Текст = "ВЫБРАТЬ | ВТДанные.Колонка1 КАК Колонка1, | ВТДанные.Колонка2 КАК Колонка2 |ИЗ | ВТДанные КАК ВТДанные"; Результат1 = Запрос1.Выполнить().Выгрузить(); МенеджерВТ.Закрыть(); КонецПроцедуры |
|||
7
Рэйв
13.11.13
✎
14:15
|
(0)Можно, только колонки должны быть типизированные
|
|||
8
AlexSmirnov272
13.11.13
✎
14:16
|
они типизированы
|
|||
9
Пират
13.11.13
✎
14:16
|
(6) Это ты за 5 минут написал на основе ответов в теме?
Господа, это тролль!!! |
|||
10
ДенисЧ
13.11.13
✎
14:17
|
Нет. ТЗ в тз оно тебе не даст.
|
|||
11
palpetrovich
13.11.13
✎
14:18
|
(4) +1
|
|||
12
Sabbath
13.11.13
✎
14:26
|
проверил даже
{Форма.Форма.Форма(65)}: Ошибка при вызове метода контекста (Выполнить) Запрос1.Выполнить(); по причине: {(3, 5)}: Тип не может быть выбран в запросе <<?>>РезультатНом.Колонка2 КАК Колонка2 Короче, низя |
|||
13
palpetrovich
13.11.13
✎
14:27
|
(12) спасибо, сэкономил мне время ...я тоже было кинулся проверять :)
|
|||
14
Sabbath
13.11.13
✎
14:28
|
(13) да тупо скопипастил код (6) в свою готовую обработку для тестов всякой фигни и запустил))
|
|||
15
AlexSmirnov272
13.11.13
✎
14:45
|
Недочет от 1С ))
|
|||
16
Sammo
13.11.13
✎
15:04
|
Нет ответа на 4. Так что недочет в архитектуре, имхо
|
|||
17
Фокусник
13.11.13
✎
15:08
|
(6) Зачем МенеджерВременныхТаблиц, делай через пакетный запрос
|
|||
18
elCust
13.11.13
✎
15:08
|
Не забудь, что для временных таблиц агрегатные функции не работают типа ИМЕЮЩИЕ, СГРУППИРОВАТЬ, ИТОГИ ПО
|
|||
19
AlexSmirnov272
13.11.13
✎
15:29
|
(17) это просто пример
|
|||
20
AlexSmirnov272
13.11.13
✎
15:33
|
(16) к (4) мне не нужны в запросе колонки второй ТЗ.
|
|||
21
AlexSmirnov272
13.11.13
✎
15:36
|
(16) к (4) мне они нужны после Запрос1.Выполнить().Выбрать()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |