|
Запрос с параметрами. Получается пустой результат | ☑ | ||
---|---|---|---|---|
0
SaV_Tmn
09.05.16
✎
21:46
|
Доброго времени суток.
передаю в запрос в качестве параметра ТЗ (номенклатура,ХарактеристикаНоменкоатуры). если в этой ТЗ заполнена только первая колонка, то результат запроса не пустой, если заполнены оба столбца, то результат запроса почему то пуст. Вот код: Запрос.Текст = "ВЫБРАТЬ | ЦеныАТТСрезПоследних.Номенклатура, | ЦеныАТТСрезПоследних.Цена, | ЦеныАТТСрезПоследних.ХарактеристикаНоменклатуры |ИЗ | РегистрСведений.ЦеныАТТ.СрезПоследних( | &ДатаДок, | Склад = &ВыбСклад | И (Номенклатура,ХарактеристикаНоменклатуры) В (&СписокНоменклатуры)) | КАК ЦеныАТТСрезПоследних"; СписокНоменклатуры = новый ТаблицаЗначений; СписокНоменклатуры.Колонки.Добавить("Номенклатура",Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); СписокНоменклатуры.Колонки.Добавить("ХарактеристикаНоменклатуры",Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры")); Для Н=1 По Товары.Количество() Цикл СписокНоменклатуры.Добавить(); КонецЦикла; СписокНоменклатуры.ЗагрузитьКолонку(Товары.ВыгрузитьКолонку("Номенклатура"),"Номенклатура"); СписокНоменклатуры.ЗагрузитьКолонку(Товары.ВыгрузитьКолонку("ХарактеристикаНоменклатуры"),"ХарактеристикаНоменклатуры"); Запрос.УстановитьПараметр("ВыбСклад",СкладПолучатель); Запрос.УстановитьПараметр("ДатаДок",КонецДня(Дата)); Запрос.УстановитьПараметр("СписокНоменклатуры",СписокНоменклатуры); ТабЗапроса = Запрос.Выполнить().Выгрузить(); Может кто подскажет, где я накосячил ? :) |
|||
1
RomanYS
09.05.16
✎
21:49
|
ТЗ нужно сначала загрузить во временную таблицу
|
|||
2
Fram
10.05.16
✎
00:34
|
(0) а как вот эта конструкция работает?
(Номенклатура,ХарактеристикаНоменклатуры) В (&СписокНоменклатуры) |
|||
3
Fram
10.05.16
✎
00:35
|
вот так работает?
((Номенклатура) В (&СписокНоменклатуры) ИЛИ (ХарактеристикаНоменклатуры) В (&СписокНоменклатуры)) |
|||
4
AneJIbcuH
10.05.16
✎
08:25
|
Пиши так, так правильней:
Выбрать ТЗ.Номенклатура, ТЗ.ХарактеристикаНоменклатуры Поместить ВТ_ТЗ ИЗ &СписокНоменклатуры Как ТЗ; ВЫБРАТЬ | ЦеныАТТСрезПоследних.Номенклатура, | ЦеныАТТСрезПоследних.Цена, | ЦеныАТТСрезПоследних.ХарактеристикаНоменклатуры |ИЗ | РегистрСведений.ЦеныАТТ.СрезПоследних( | &ДатаДок, | Склад = &ВыбСклад | И (Номенклатура,ХарактеристикаНоменклатуры) В (ВЫБРАТЬ ТЗ.Номенклатура, ТЗ.ХарактеристикаНоменклатуры ИЗ ВТ_ТЗ Как ТЗ)) | КАК ЦеныАТТСрезПоследних"; |
|||
5
SaV_Tmn
10.05.16
✎
13:33
|
(1) Буду читать по временным таблицам, я думал должно и так работать :)
(3) Мне надо чтобы это конструкция работала как И, но похоже она работает как то непонятно :) возможно как ИЛИ (4) Я так понимаю это как раз и есть использование временных таблиц, вот только не могу никак догнать как это в коде в чистом виде должно быть, если не затруднит подскажите :) я только учусь 1ску ломать :-D |
|||
6
SaV_Tmn
10.05.16
✎
13:42
|
(4) Сделал так как Вы написали, вроде как все хорошо, но ситуация повторяется, то есть если номенклатуры без характеристик то результат запроса не пустой,
А если есть и номенклатура и характеристика то результат запроса пуст :( Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "Выбрать |ТЗ.Номенклатура, |ТЗ.ХарактеристикаНоменклатуры |Поместить ВТ_ТЗ |ИЗ |&СписокНоменклатуры Как ТЗ; | |ВЫБРАТЬ | ЦеныАТТСрезПоследних.Номенклатура, | ЦеныАТТСрезПоследних.Цена, | ЦеныАТТСрезПоследних.ХарактеристикаНоменклатуры |ИЗ | РегистрСведений.ЦеныАТТ.СрезПоследних( | &ДатаДок, | Склад = &ВыбСклад | И (Номенклатура,ХарактеристикаНоменклатуры) В (ВЫБРАТЬ ТЗ.Номенклатура, ТЗ.ХарактеристикаНоменклатуры ИЗ ВТ_ТЗ Как ТЗ)) | КАК ЦеныАТТСрезПоследних"; СписокНоменклатуры = новый ТаблицаЗначений; СписокНоменклатуры.Колонки.Добавить("Номенклатура",Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); СписокНоменклатуры.Колонки.Добавить("ХарактеристикаНоменклатуры",Новый ОписаниеТипов("СправочникСсылка.ХарактеристикиНоменклатуры")); Для Н=1 По Товары.Количество() Цикл СписокНоменклатуры.Добавить(); КонецЦикла; СписокНоменклатуры.ЗагрузитьКолонку(Товары.ВыгрузитьКолонку("Номенклатура"),"Номенклатура"); СписокНоменклатуры.ЗагрузитьКолонку(Товары.ВыгрузитьКолонку("ХарактеристикаНоменклатуры"),"ХарактеристикаНоменклатуры"); Запрос.УстановитьПараметр("ВыбСклад",СкладПолучатель); Запрос.УстановитьПараметр("ДатаДок",КонецДня(Дата)); Запрос.УстановитьПараметр("СписокНоменклатуры",СписокНоменклатуры); ТабЗапроса = Запрос.Выполнить().Выгрузить(); |
|||
7
SaV_Tmn
11.05.16
✎
08:42
|
Все понял где собака была зарыта. Всем спасибо :) просто в регистре не оказалось такого сочетания номенклатура + характеристика :) Всем спасибо за помощь :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |