новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Временные таблицы

    • #1
    • 15.09.2014 13:46
    • Отредактировано: 15.09.2014 13:52:49
    0
    Ошибка в запросе, как исправить подскажите? Создал обработку с табличной частью: Номенклатура, Количество. Далее использую менеджер временных таблиц, строю таблицу: Номенклатура, Количество, Максимальная цена, Остаток.
    Ошибка: Не задано значение параметра "ВТ"
    <<?>>&ВТ КАК ВТ
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    МенеджерВТ = Новый МенеджерВременныхТаблиц;
    	
    	Запрос1 = Новый Запрос;
    	Запрос1.МенеджерВременныхТаблиц = МенеджерВТ;
    	//сформируем поля таблицы значения, в качестве таблицы из которой будем выбирать
    	//укажем параметр нашей таблицы значений и поместим во внешнюю таблицу ИтоговаяТаблица
    	Запрос1.Текст = "ВЫБРАТЬ
    	|    ТоварыНаСкладах.Номенклатура,
    	|    ТоварыНаСкладах.Количество
    	|ПОМЕСТИТЬ ИтоговаяТаблица
    	|ИЗ
    	|    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах";
    	Запрос1.Выполнить();
    	//Далее описываем поля таблицы и указываем, что выбирать будем из внешней таблицы	
    	Запрос2 = Новый Запрос;
    	Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
    	Запрос2.Текст = "ВЫБРАТЬ
    	|	ВТ.Номенклатура,
    	|	ВТ.Количество,
    	|	ВТ.МаксимальнаяЦена,
    	|	ВТ.Остаток
    	|ПОМЕСТИТЬ ЦенаОстаток
    	|ИЗ
    	|	&ВТ КАК ВТ";
    	Запрос2.Выполнить();
    	РезультатЗапроса = Запрос1.Выполнить();
    	
    	ЗапросИтог = Новый Запрос;
    	ЗапросИтог.МенеджерВременныхТаблиц = МенеджерВТ;
    	ЗапросИтог.Текст = "ВЫБРАТЬ
    	|	ИтоговаяТаблица.Номенклатура,
    	|	ИтоговаяТаблица.Количество,
    	|	0 КАК МаксимальнаяЦена,
    	|	0 КАК Остаток
    	|ИЗ
    	|	ИтоговаяТаблица КАК ИтоговаяТаблица
    	|
    	|ОБЪЕДИНИТЬ ВСЕ
    	|
    	|ВЫБРАТЬ
    	|	0,
    	|	0,
    	|	ВложенныйЗапрос.МаксимальнаяЦена,
    	|	ВложенныйЗапрос.Остаток
    	|ИЗ
    	|	(ВЫБРАТЬ
    	|		ВТ.МаксимальнаяЦена КАК МаксимальнаяЦена,
    	|		ВТ.Остаток КАК Остаток
    	|	ИЗ
    	|		ЦенаОстаток КАК ВТ) КАК ВложенныйЗапрос";                    
    	ЗапросИтог.Выполнить();
    	
    	ТабличноеПоле1=ЗапросИтог.Выполнить().Выгрузить();
    	ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    		
    КонецПроцедуры
    
    • #2
    • 15.09.2014 14:15
    0
    Может нужно установить параметр запроса Запрос.УстановитьПараметр("ВТ",ВашаТаблица); а затем Запрос.Выполнить();
    • #3
    • 16.09.2014 07:57
    0
    Все равно ошибку выдает: Неверные параметры "ВТ"
    Может не правильно задаю параметры? Скажите как правильно будет?
    • #4
    • 16.09.2014 08:03
    0
    Александр Сергеевич
    не правильно задаю параметры?
    так я вообщене вижу где задаётся ВТ. (и так и говорится в ошибке).
    должно быть чтото вроде
    Запрос2.УстановитьПараметр("ВТ",ТаблицаЗначений);
    • #5
    • 16.09.2014 08:09
    • Отредактировано: 16.09.2014 08:16:51
    0
    Изначально ошибка что не задана переменная ВТ, если задать Перем ВТ; то тогда неправильно установлены параметры, только если не явным образом задавать переменную. Что неправильно делаю?


    Запрос2.УстановитьПараметр("ВТ", ВТ);
    Запрос2.Выполнить();
    • #6
    • 16.09.2014 08:34
    0
    ВТ - что за переменная задаётся в параметре?

    толжна быть ТЗ с колонками Номенклатура, Количество, МаксимальнаяЦена, Остаток.
    • #7
    • 16.09.2014 08:36
    0
    например вот - http://infostart.ru/public/153851/
    • #8
    • 16.09.2014 08:47
    0
    ВТ у меня временная таблица
    • #9
    • 16.09.2014 08:50
    0
    Александр Сергеевич
    ВТ у меня временная таблица
    я спрашиваю параметр ВТ когда устанавливается - что за переменная ВТ?
    Александр Сергеевич
    Запрос2.УстановитьПараметр("ВТ", ВТ);
    • #10
    • 16.09.2014 08:54
    0
    Устанавливается после запроса
    • #11
    • 16.09.2014 08:59
    0
    Александр Сергеевич
    Устанавливается после запроса
    это как? если она в запросе нужна?

    отвечаю сам (иначе я понял - ещё не на 1 день это):
    1. читайте http://infostart.ru/public/153851/
    2. (это короче, но неполно) мы пишем Запрос2.УстановитьПараметр("ВТ", ВТ); так и ВТ (в модуле) должна уже быть. причём быть ТаблицейЗначений с темиже колонками (которые в запросе используются).
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться