Имя: Пароль:
1C
1С v8
Как передать Таблицу значений в качестве параметра?
0 Босечка
 
21.07.17
09:33
Есть готовая таблица значений, полученная не из запроса, как ее передать в качестве параметра в запрос?
1 r_i_n_i_k
 
21.07.17
09:34
выбрать *
постестить вт
из &ТЗ как ИЗ
2 Альбатрос
 
21.07.17
09:34
выбрать из &ВнТЗ КАК внТз

Запрос.установитьПараметр("ВнТз", ВнТЗ);
3 svsvsv
 
21.07.17
09:35
Колонки таблицы должны быть типизированы. Тогда ее можно передать в запрос в качестве параметра
4 patapum
 
21.07.17
09:35
(0) Запрос.УстановитьПараметр("ТЗ", ТЗ);
5 Рэйв
 
21.07.17
09:35
(0)Надо типизировать колонки.Нетипизированные запрос не ест
6 FIXXXL
 
21.07.17
09:50
(5) или
Процедура лялялял(ТаблицаПараметр)

ТабТипизированная = ТаблицаПараметр.Скопировать();

Запрос.УстановитьПараметр("ТабТипизированная",ТабТипизированная );

Конецпроцедуры
7 catena
 
21.07.17
09:52
(6)Сильное колдунство...
8 Альбатрос
 
21.07.17
12:26
(6) Чо, так можно было? 0_о
9 Рэйв
 
21.07.17
12:37
(6)Национальная индейская изба.
Фигвам называется!
https://yadi.sk/i/OAXY7YaA3LFsGV
10 Рэйв
 
21.07.17
12:39
+и даже если типы значений в колонках будут совпадать - то же самое.
11 h-sp
 
21.07.17
12:40
(10) наверно через процедуру надо было
12 Рэйв
 
21.07.17
12:40
(11)Не, это не играет.
13 FIXXXL
 
24.07.17
08:24
(9) типизируй руками изначальную таблицу
или выгрузи результат запроса к справочнику в таблицу и пуляй ее в другие процедуры как будущий параметр запроса

.Скопировать() не панацея от создания совсем нетипизированной ТЗ :)
просто часто приходится сталкиваться с передачей данных в ТЗ, а потом в запрос
вот и наткнулся на этот финт ушами
14 Рэйв
 
24.07.17
09:00
(13)Ну, с "типизируй руками изначальную таблицу" и никакое .Скопировать() не надо. Оно и так в запрос зайдет. Хотелось бы как раз чтобы произвольную ТЗ в запрос запихать. Но видимо еще долго такого приятного фантика не будет. Хотя впринципе писателям платформы можно было бы и сделать. Просто проверить чтобы в ТЗ не содержалось несъедобных для запроса данных. Ленятся платформописатели.Ну конечно - взять и совсем запретить нетипизированную тз в запрос оно конечно проще, чем попытаться решить вопрос:-)
15 FIXXXL
 
24.07.17
09:11
(14) блин, стойкое ощущение, что ранее ТЗ, переданная параметром в другую процедуру, превращалась в тыкву и приходилось заново типизировать
даже полез проверил, ан нет, нормально ТЗ "путешествует"
ладно, теперь хоть не буду писать лишний код :)
16 h-sp
 
24.07.17
09:32
(14) а как тут проверишь, например, в тз 1000000 строк нормальные, а на миллионно первой строке, вдруг встретилось нетипизированное данное. Как вы предлагаете это проверить?
17 Рэйв
 
24.07.17
09:38
(16)Ну не проверяли бы. Пусть валится бы сам по себе с ошибкой  если некорректные данные в тз-параметре.  Уже "жжж" для программиста, что чтото не так:-)
18 Имитация работы
 
24.07.17
09:39
(16) Братушка, в тз колонки типизируются, а не строки
19 elCust
 
24.07.17
09:45
(13) Дак метод скопировать типизирует колонки?
20 FIXXXL
 
24.07.17
11:05
(19) нет
21 FIXXXL
 
24.07.17
11:05
(20) +если копируешь нетипизированную ТЗ :)
22 catena
 
24.07.17
11:35
(18)Колонки типизируются же для того, чтобы строки не проверять.
Программист всегда исправляет последнюю ошибку.