Имя: Пароль:
1C
1С v8
Как получить Результат Запроса
0 KLOUN1091
 
24.03.15
09:41
Есть Запрос, который при вводе номенклатуры, выводит последнюю цену товара. В консоле запросов все работает отлично. Вывожу результат, через точку останову, цену ставит какую надо в переменную цена, а в форме записывает другую. Помогите, может вывод результата не правильно делаю:
Запрос.Текст = "
Запрос.УстановитьПараметр("Номенклатура", СтрокаТабличнойЧасти.Номенклатура);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Цена =0;
Цена = РезультатЗапроса[0].Цена;
1 vicof
 
24.03.15
09:44
"В консоле"
Когда вы уже русский учить начнете?

Какая цена должна быть? какую выводит?
2 MSOliver
 
24.03.15
09:44
Ответ: не верно формулируете вопрос.
3 Cube
 
24.03.15
09:45
(0) Да, вроде, всё верно. Только два нюанса:
1). Добавь проверку на пустой результат запроса.
2). Пользуйся выборкой из запроса.

Как-то так:

Запрос.Текст = ""
Запрос.УстановитьПараметр("Номенклатура", СтрокаТабличнойЧасти.Номенклатура);
Выборка = Запрос.Выполнить().Выбрать();
Цена = ?(Выборка.Следующий(), Выборка.Цена, 0);
4 Ник второй
 
24.03.15
09:45
Надо присваивать результат запроса не переменной, а реквизиту формы или объекта
5 KLOUN1091
 
24.03.15
09:45
Должна быть, какую выводит запрос, а ставит цену которую и до этого была.
6 Cube
 
24.03.15
09:46
(5) А может надо так:

СтрокаТабличнойЧасти.Цена = "100500";

?))
7 KLOUN1091
 
24.03.15
09:47
Cube, Выборку не определяет
8 Ник второй
 
24.03.15
09:47
(6) Зачем давать верный ответ )) пусть бы помучился еще
9 D_E_S_131
 
24.03.15
09:47
Ни текста запроса, ни скринов того, что запрос возвращает. ТС просто издевается?
10 Ник второй
 
24.03.15
09:49
(9) он клоун, он шутит.
11 KLOUN1091
 
24.03.15
09:52
Запрос работает, это 100%
12 KLOUN1091
 
24.03.15
09:52
|ВЫБРАТЬ
    |    Данные.Период,
    |    Данные.Номенклатура,
    |    МАКСИМУМ(Данные.Цена) КАК Цена
    |ИЗ
    |    Данные КАК Данные
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Последнее КАК Последнее
    |        ПО Данные.Период = Последнее.Период
    |            И Данные.Номенклатура = Последнее.Номенклатура
    |
    |СГРУППИРОВАТЬ ПО
    |   Данные.Период,
    |   Данные.Номенклатура
    |    ";
    
    Запрос.УстановитьПараметр("Номенклатура", СтрокаТабличнойЧасти.Номенклатура);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Цена = ?(Выборка.Следующий(), Выборка.Цена, 0);
13 KLOUN1091
 
24.03.15
09:52
Все равно ставит другую цену
14 KLOUN1091
 
24.03.15
09:54
Спасибо, переделал, заработало.
15 Ненавижу 1С
 
гуру
24.03.15
09:55
(12) цирковой запрос, ты не брат LivingStar
16 Drac0
 
24.03.15
09:59
(15) Я даже автора угадал по теме. А может это и есть LivingStar ? :)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший