|
V8: список значений в запрос в качестве параметра | ☑ | ||
---|---|---|---|---|
0
andrewrocker
05.06.17
✎
20:56
|
Коллеги, не могу сообразить как забросить в параметр список значений. Не могу понять, почему в конце выдается "ничего". Такое чувство, что я передаю в запрос список номенклатуры неправильно.
//сформируем массив номенклатуры для запроса СписокНоменклатуры = Новый СписокЗначений; СписокНоменклатуры = Товары.ВыгрузитьКолонку("Номенклатура"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатуры.Период, | ЦеныНоменклатуры.Регистратор, | ЦеныНоменклатуры.НомерСтроки, | ЦеныНоменклатуры.Активность, | ЦеныНоменклатуры.ТипЦен, | ЦеныНоменклатуры.Номенклатура, | ЦеныНоменклатуры.ХарактеристикаНоменклатуры, | ЦеныНоменклатуры.Валюта, | ЦеныНоменклатуры.Цена КАК Цена, | ЦеныНоменклатуры.ЕдиницаИзмерения, | ЦеныНоменклатуры.ПроцентСкидкиНаценки, | ЦеныНоменклатуры.СпособРасчетаЦены |ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры |ГДЕ | ЦеныНоменклатуры.Период = &Период | И ЦеныНоменклатуры.ТипЦен = &ТипЦен | И ЦеныНоменклатуры.Номенклатура В(&СписокНоменклатуры)"; Запрос.УстановитьПараметр("СписокНоменклатуры",СписокНоменклатуры); Запрос.УстановитьПараметр("Период",ДокументОбъект.Дата); Запрос.УстановитьПараметр("ТипЦен",УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяЦенаЗакупки")); ЗакупочныеЦеныНоменклатуры = Запрос.Выполнить().Выбрать(); Пока ЗакупочныеЦеныНоменклатуры.Следующий() цикл Сообщить(ЗакупочныеЦеныНоменклатуры.Номенклатура); Сообщить(ЗакупочныеЦеныНоменклатуры.Цена); КонецЦикла; |
|||
1
h-sp
05.06.17
✎
21:17
|
(0) вроде нормально там.
вот с периодом ты лоханулся ЦеныНоменклатуры.Период = &Период уверен, что у тебя дата документа будет равна дате прайса? |
|||
2
andrewrocker
05.06.17
✎
21:23
|
(1) похоже да. Утром поправлю. Ночью уже не волоку похоже
|
|||
3
Franchiser
гуру
05.06.17
✎
23:56
|
ВыгрузитьКолонку() возвращает не СписокЗначений. Зачем ты объявляешь тип?
|
|||
4
andrewrocker
06.06.17
✎
03:08
|
(3) там на каком-то этапе был глюк с массивом. Поэтому объявляю, как мне кажется, самый понятный тип для запроса, и выгружаю в него данные.
|
|||
5
PaulBC
06.06.17
✎
03:29
|
Этим: СписокНоменклатуры = Товары.ВыгрузитьКолонку("Номенклатура"); ты все равно переопределяешь его в массив.
Используй ЗагрузитьЗначения, если хочется именно список, хотя и не вижу в этом смысла. А проблема скорей всего не в списке. Ты про виртуальные таблицы вообще слышал? СрезПоследних, например.. |
|||
6
andrewrocker
06.06.17
✎
08:59
|
Виртуальные таблицы это очень большое колдовство. Я слышал, но мой мозг пока не хочет вникать
|
|||
7
andrewrocker
06.06.17
✎
09:01
|
ЗагрузитьЗначения не получается, не понимаю синтаксис, куда его ставить.
|
|||
8
Buster007
06.06.17
✎
09:15
|
убери условие ЦеныНоменклатуры.Период = &Период и посмотри результат
|
|||
9
Лефмихалыч
06.06.17
✎
09:29
|
(0) в конце выдается ни чего потому, что у тебя в колонке "Номенклатура" не номенклатура
|
|||
10
Лефмихалыч
06.06.17
✎
09:31
|
+(9) или основной тип цен не указан
или на дату ДокументОбъект.Дата нет записей. перенеси отбор по периоду в параметр виртуальной таблицы |
|||
11
h-sp
06.06.17
✎
09:40
|
(10) уже поняли вроде
ЦеныНоменклатуры.Период не равно &Период |
|||
12
KishMish
06.06.17
✎
09:42
|
(0) период - это дата со временем. В документе время не нулевое. В это регистре сведений время нулевое.
Поэтому Запрос.УстановитьПараметр("Период",НачалоДня(ДокументОбъект.Дата)); Или в запросе используй НАЧАЛОПЕРИОДА |
|||
13
catena
06.06.17
✎
09:46
|
(12)Точно. И радуйся, если цены устанавливали вчера.
|
|||
14
НЕА123
06.06.17
✎
09:48
|
в (6) ТС сам себе ответил. считаю, что ветку можно закрывать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |