|
Запрос, выполнить/выбрать как тут значение получить? | ☑ | ||
---|---|---|---|---|
0
MrZLO
30.09.13
✎
11:06
|
Хочу из последнего поступления выбрать цену для номенклатуры...
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ПоступлениеТоваровУслуг.Товары.( | Цена | ) |ИЗ | Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг |ГДЕ | ПоступлениеТоваровУслуг.Дата <= &Дата | И ПоступлениеТоваровУслуг.Проведен = Истина | И ПоступлениеТоваровУслуг.Товары.Номенклатура.Ссылка = &Номенклатура | |УПОРЯДОЧИТЬ ПО | ПоступлениеТоваровУслуг.Дата УБЫВ"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("Дата", ДатаПараметр); Результат = Запрос.Выполнить(); Если Результат.Пустой() <> Истина Тогда ПолученнаяЦена = Результат.Выбрать().Товары.Выбрать()[0]; КонецЕсли; Вообще, результат запроса - таблица значений, в ней уже цена лежит... Как тут присвоить результат запроса в ПолученнаяЦена Чета запутался с этими выбрать уже... |
|||
1
Галахад
гуру
30.09.13
✎
11:09
|
Заменить
Документ.ПоступлениеТоваровУслуг на Документ.ПоступлениеТоваровУслуг.Товары |
|||
2
Живой Ископаемый
30.09.13
✎
11:10
|
Результат = Запрос.Выполнить().Выгрузить();
Если Результат.Пустой() <> Истина Тогда ПолученнаяЦена = Результат[0].Товары.Цена; КонецЕсли; |
|||
3
Живой Ископаемый
30.09.13
✎
11:12
|
не, фигню написал.
|
|||
4
Heckfy
30.09.13
✎
11:12
|
Результат = Запрос.Выполнить().Выбрать();
Цена=РезультатЗапроса.Следующий(); |
|||
5
Heckfy
30.09.13
✎
11:15
|
В смысле:
РезультатЗапроса= Запрос.Выполнить().Выбрать(); Цена=РезультатЗапроса.Следующий(); |
|||
6
MrZLO
30.09.13
✎
11:16
|
(4) ща не ругается, но вот Цена содержит "ДА"
|
|||
7
Живой Ископаемый
30.09.13
✎
11:16
|
2(5) и это будет строка табличной части, если я ничего не путаю
|
|||
8
MrZLO
30.09.13
✎
11:16
|
Результат = Запрос.Выполнить();
Если Результат.Пустой() <> Истина Тогда Выборка = Результат.Выбрать(); ПолученнаяЦена = Выборка.Следующий(); КонецЕсли; Возврат ПолученнаяЦена; |
|||
9
Живой Ископаемый
30.09.13
✎
11:16
|
2(6) какой запрос такая и цена
|
|||
10
Heckfy
30.09.13
✎
11:18
|
(6) Блин, ну подравь:
РезультатЗапроса= Запрос.Выполнить().Выбрать(); РезультатЗапроса.Следующий(); Цена=РезультатЗАпроса.Цена; Как то так. СП под рукой нету. |
|||
11
MrZLO
30.09.13
✎
11:23
|
чета не то
{ОбщийМодуль.Ценообразование.Модуль(783)}: Значение не является значением объектного типа (Цена) ПолученнаяЦена = Выборка.Цена; Результат = Запрос.Выполнить(); Если Результат.Пустой() <> Истина Тогда Выборка = Результат.Выбрать().Следующий(); ПолученнаяЦена = Выборка.Цена; КонецЕсли; |
|||
12
Галахад
гуру
30.09.13
✎
11:25
|
А так?
ПолученнаяЦена = Выборка[0].Цена; |
|||
13
MrZLO
30.09.13
✎
11:29
|
(12) {ОбщийМодуль.Ценообразование.Модуль(783)}: Получение элемента по индексу для значения не определено
ПолученнаяЦена = Выборка[0].Цена; Да и по логике Выборка[0] зачем если я итак пишу ВЫБРАТЬ ПЕРВЫЕ 1 |
|||
14
Живой Ископаемый
30.09.13
✎
11:33
|
2(13) Ну и что? запрос к ТЧ, значит выборка все равно будет просто с одной (0-й) строкой
|
|||
15
MrZLO
30.09.13
✎
11:33
|
Не работает нифига... Да хотябы логику понять получения данных из этого запроса...
1) Его результат - это таблица Товаров с колонкой Цена 2) Т.е. чтобы получить эту таблицу, я должен её выгрузить и обратится по псевдониму к цене... Результат = Запрос.Выполнить(); Если Результат.Пустой() <> Истина Тогда Выборка = Результат.Выгрузить(); ПолученнаяЦена = Выборка.Товары.Цена; КонецЕсли; Не работает! |
|||
16
MrZLO
30.09.13
✎
11:35
|
(15) вот по индексу обращаюсь тоже ругается {ОбщийМодуль.Ценообразование.Модуль(783)}: Поле объекта не обнаружено (Товары)
ПолученнаяЦена = Выборка.Товары[0]; |
|||
17
Галахад
гуру
30.09.13
✎
11:35
|
(13) А "Выборка" это что? Какой тип?
|
|||
18
Heckfy
30.09.13
✎
11:35
|
(15) и не должен работать
Замени Результат = Запрос.Выполнить(); на Результат = Запрос.Выполнить().Выгрузить(); |
|||
19
MrZLO
30.09.13
✎
11:38
|
(18)
Результат = Запрос.Выполнить(); Выборка = Результат.Выгрузить(); Это же тоже самое Выборка = Запрос.Выполнить().Выгрузить(); |
|||
20
Heckfy
30.09.13
✎
11:40
|
(19) А, ну да, не увидел
|
|||
21
Живой Ископаемый
30.09.13
✎
11:43
|
||||
22
MrZLO
30.09.13
✎
11:49
|
(21) у вас в запросе сразу выбираем цену...
а у меня выбираем товары->цена оно будет работать если я выбирать в запросе я буду из Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары а не Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг но мне же надо учесть дату документа, проведен он или нет... короч запрос переделать надо |
|||
23
Живой Ископаемый
30.09.13
✎
11:49
|
2(22) да, именно.
|
|||
24
MrZLO
30.09.13
✎
11:57
|
ну в общем сделал так
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ПоступлениеТоваровУслугТовары.Цена КАК Цена |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг | ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслуг.Ссылка |ГДЕ | ПоступлениеТоваровУслугТовары.Номенклатура.Ссылка = &Номенклатура | И ПоступлениеТоваровУслуг.Проведен = Истина | И ПоступлениеТоваровУслуг.Дата <= &Дата | |УПОРЯДОЧИТЬ ПО | ПоступлениеТоваровУслуг.Дата УБЫВ"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("Дата", ДатаПараметр); Результат = Запрос.Выполнить(); Если Результат.Пустой() <> Истина Тогда ПолученнаяЦена = Результат.Выгрузить()[0].Цена; КонецЕсли; Возврат ПолученнаяЦена; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |