Имя: Пароль:
1C
1С v8
Поиск по таблице значений с помощью запроса или Как поместить ТЗ в запрос
0 lll52
 
05.11.15
12:55
Добрый день.
Задача искать по большой таблице значений по двум полям.

ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Наименование");
    ТЗ.Колонки.Добавить("Артикул");
    ТЗ.Колонки.Добавить("АртикулС");
    ТЗ.Колонки.Добавить("Код1С");
    ТЗ.Колонки.Добавить("Производитель");
    ТЗ.Колонки.Добавить("Количество");
    ТЗ.Колонки.Добавить("ЦенаПродажная");
    ТЗ.Колонки.Добавить("Магазин");
//Далее заполнили таблицу ......................

ЗапросТЗ = Новый Запрос;
    
    МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    ЗапросТЗ.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;

    ЗапросТЗ.Текст = "ВЫБРАТЬ
                     |    МВТ.Наименование КАК Наименование,  //ругается !!!!!!!!!!!!!!!! :(
                     |    МВТ.Артикул КАК Артикул,
                     |    МВТ.АртикулС КАК АртикулС,
                     |    МВТ.Код1С КАК Код1С,
                     |    МВТ.Производитель КАК Производитель,
                     |    МВТ.Количество КАК Количество,
                     |    МВТ.ЦенаПродажная КАК ЦенаПродажная,
                     |    МВТ.Магазин КАК Магазин
                     |ПОМЕСТИТЬ ВсеИзФайлов
                     |ИЗ
                     |    &МВТ1 КАК МВТ";
    ЗапросТЗ.УстановитьПараметр("МВТ1",ТЗ);
    ЗапросТЗ.Выполнить();
    ЗапросТЗ.Текст = "ВЫБРАТЬ
                     |    ВсеИзФайлов.Наименование,
                     |    ВсеИзФайлов.Артикул,
                     |    ВсеИзФайлов.АртикулС
                     |    ВсеИзФайлов.Код1С,
                     |    ВсеИзФайлов.Производитель,
                     |    ВсеИзФайлов.Количество,
                     |    ВсеИзФайлов.ЦенаПродажная,
                     |    ВсеИзФайлов.Магазин
                     |ИЗ
                     |    ВсеИзФайлов КАК ВсеИзФайлов
                     |ГДЕ
                     |    (ВсеИзФайлов.Артикул = &Артикул
                     |            ИЛИ ВсеИзФайлов.АртикулС = &АртикулС)";

Ошибка при вызове метода контекста (Выполнить): {(2, 2)}: Тип не может быть выбран в запросе
<<?>>МВТ.Наименование КАК Наименование,
1 Ёпрст
 
05.11.15
12:58
(0) колнки должны быть типизированными.
2 Ёпрст
 
05.11.15
12:58
в ТЗ
3 lll52
 
05.11.15
13:42
Спасибо.
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Наименование",Новый ОписаниеТипов("Строка"),,);
    ТЗ.Колонки.Добавить("Артикул",Новый ОписаниеТипов("Строка"),);
    ТЗ.Колонки.Добавить("АртикулС",Новый ОписаниеТипов("Строка"),);
    ТЗ.Колонки.Добавить("Код1С",Новый ОписаниеТипов("Строка"),);
    ТЗ.Колонки.Добавить("Производитель",Новый ОписаниеТипов("Строка"),);
    ТЗ.Колонки.Добавить("Количество",Новый ОписаниеТипов("Число"),);
    ТЗ.Колонки.Добавить("ЦенаПродажная",Новый ОписаниеТипов("Число"),); //цена наличия из магазина
    ТЗ.Колонки.Добавить("Магазин",Новый ОписаниеТипов("Строка"),);

Помогло.