Имя: Пароль:
1C
1С v8
Временная таблица и таблица значений
, ,
0 perester
 
11.08.17
09:22
Добрый день! помогите с проблемой,
Есть обработка, в ней заполняется реквизит ТЗ(тип:ТаблицаЗначений)
хочу  эту ТЗ загнать в временную таблицу, что-то понатыкал, но не работает, всегда ошибка "Неверные параметры "ТЧ" <<?>>&ТЧ КАК ТЧ"
вот пример запроса:

    ЗапросВТ = Новый Запрос;
    ЗапросВТ.Текст =
    "ВЫБРАТЬ
    |    ТЧ.Заказ
    |ПОМЕСТИТЬ ТАБЧ
    |ИЗ
    |    &ТЧ КАК ТЧ";
    ЗапросВТ.УстановитьПараметр("ТЧ",ТЗ);    
    ЗапросВТ.Выполнить();
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ТАБЧ.Заказ
    |ИЗ
    |    ТАБЧ КАК ТАБЧ";
    
    
    
    РезультатЗапроса = Запрос.Выполнить();
1 Имитация работы
 
11.08.17
09:23
Понатыкай еще типизацию колонок
2 perester
 
11.08.17
09:24
(1) тз описана в реквизитах обработки, или вы о чем?
3 Cyberhawk
 
11.08.17
09:25
У тебя какие-то два разных запроса, не связанных друг с другом ну никак
4 perester
 
11.08.17
09:26
(3) ну, даже если нижний убрать, то верхний не работает
5 Имитация работы
 
11.08.17
09:28
(2) Если она в реквизитах, то это не тз, а данныеформыколлекция
6 h-sp
 
11.08.17
09:31
(4) как выяснил, что не работает?
7 perester
 
11.08.17
09:32
(6) неа
8 perester
 
11.08.17
09:33
(5) http://www.picshare.ru/uploads/170811/K0G4n78mfl.jpg это данныеформыколлекция?
9 h-sp
 
11.08.17
09:34
(8) делай ТЗ.Выгрузить()

и убери второе

    Запрос = Новый Запрос;
10 Cyberhawk
 
11.08.17
09:35
РЕквизитФормыВЗначение
11 Адинэснег
 
11.08.17
09:35
у тебя менеджер ВТ не установлен, а вообще пиши пакетным запросом
12 Имитация работы
 
11.08.17
09:35
(8) Поставь точку останова. Запусти поделие. Посмотри на тип переменной.
13 Адинэснег
 
11.08.17
09:37
Запрос = Новый Запрос("ВЫБРАТЬ
    |    ТЧ.Заказ
    |ПОМЕСТИТЬ ТАБЧ
    |ИЗ
    |    &ТЧ КАК ТЧ";
    |ВЫБРАТЬ
    |    ТАБЧ.Заказ
    |ИЗ
    |    ТАБЧ КАК ТАБЧ");
Запрос.УстановитьПараметр("ТЧ",ТЗ)
Выборка = Запрос.Выполнить().Выбрать;
14 Имитация работы
 
11.08.17
09:37
(13) кавычка лишняя
15 novichok79
 
11.08.17
09:38
выгружай данные формы в ТЗ, и второе - установи менеджер временных таблиц.
16 Адинэснег
 
11.08.17
09:38
Запрос = Новый Запрос("ВЫБРАТЬ
    |    ТЧ.Заказ
    |ПОМЕСТИТЬ ТАБЧ
    |ИЗ
    |    &ТЧ КАК ТЧ;
    |ВЫБРАТЬ
    |    ТАБЧ.Заказ
    |ИЗ
    |    ТАБЧ КАК ТАБЧ");
Запрос.УстановитьПараметр("ТЧ",ТЗ)
Выборка = Запрос.Выполнить().Выбрать;

(14) копипаст такой копипаст
17 perester
 
11.08.17
09:43
(9) спасибо! ТЗ.Выгрузить() помогло,
(16) спасибо!
18 Бубр
 
11.08.17
12:23
(0)                          ЗапросВТ = Новый Запрос;
МВТ = Новый МенеджерВременныхТаблиц;
ЗапросВТ.МенеджерВременныхТаблиц = МВТ;
ЗапросВТ.Текст = "ВЫБРАТЬ
|    ТЧ.Заказ
|ПОМЕСТИТЬ ТАБЧ
|ИЗ
|    &ТЧ КАК ТЧ";
                            ЗапросВТ.УстановитьПараметр("ТЧ",ТЗ);    
                            ЗапросВТ.Выполнить();
                            ЗапросВТ.Текст =                         "ВЫБРАТЬ
|ТАБЧ.Заказ
|ИЗ
|    ТАБЧ КАК ТАБЧ";
РезультатЗапроса = ЗапросВТ.Выполнить();
19 Бубр
 
11.08.17
12:25
(0) 1  у тебя объекты запросы разные  это не правильно
2 в рамках  одного  объекта запрос   если выполняется  выборка в временную таблицу после выполнения первого запроса  менеджер  убивается  поэтому необходимо  его ручками создавать (тогда не убьется)
20 Бубр
 
11.08.17
12:51
если создаешь другой объект запрос  присваивай ему менеджера  из того  запроса где временную таблицу получил
Основная теорема систематики: Новые системы плодят новые проблемы.