Имя: Пароль:
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
если создаешь другой объект запрос  присваивай ему менеджера  из того  запроса где временную таблицу получил
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший