Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 дек 2024, 08:39

8.2 Как получить цены номенклатуры в документах ПТУ

Автор bav33, 13 апр 2011, 18:26

0 Пользователей и 1 гость просматривают эту тему.

bav33

Задача такая:
Получить цену определенной номенклатуры по которой она была продана определенному контрагенту...
Пробую запрос:

Запрос=новый Запрос;
Запрос.Текст="ВЫБРАТЬ
   |   РеализацияТоваровУслуг.Товары.(
   |      Цена
   |   )   КАК Цена
   |ИЗ
   |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |   РеализацияТоваровУслуг.Дата > &ДатаНачала
   |   И РеализацияТоваровУслуг.Дата < &ДатаКонца
   |   И РеализацияТоваровУслуг.Контрагент = &Контрагент
   |   И РеализацияТоваровУслуг.Товары.Номенклатура = &Номенклатура
   |
   |УПОРЯДОЧИТЬ ПО
   |   РеализацияТоваровУслуг.Дата УБЫВ";
   
Запрос.УстановитьПараметр("Контрагент",Объект.Контрагент);
Запрос.УстановитьПараметр("Номенклатура",Объект.Номенклатура);
Запрос.УстановитьПараметр("ДатаНачала",Объект.ДатаНачала);
Запрос.УстановитьПараметр("ДатаКонца",Объект.ДатаКонца);
   
Результат = Запрос.Выполнить();
Результат = Результат.Выбрать();
Если Результат.Следующий() тогда
Сообщить(Результат.Цена);   
КонецЕсли;

Что я делаю не правильно...
из переменной "Результат" получить значение не удается

***Vjacheslav***

нужно Результат=Запрос.Выполнить().Выбрать();

bav33

Результат = Запрос.Выполнить();
Результат = Результат.Выбрать();
и
Результат=Запрос.Выполнить().Выбрать();
Результата не меняют...
Сам решил проблему
Там Результат.Цена - РезультатЗапроса!
ЕЕ тоже надо Выбирать()
Если вдруг кому поможет - окончательный вариант:

Запрос=новый Запрос;
Запрос.Текст="ВЫБРАТЬ
   |   РеализацияТоваровУслуг.Товары.(
   |      Цена
   |   )   КАК ЦенаТовара
   |ИЗ
   |   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |   РеализацияТоваровУслуг.Дата > &ДатаНачала
   |   И РеализацияТоваровУслуг.Дата < &ДатаКонца
   |   И РеализацияТоваровУслуг.Контрагент = &Контрагент
   |   И РеализацияТоваровУслуг.Товары.Номенклатура = &Номенклатура
   |
   |УПОРЯДОЧИТЬ ПО
   |   РеализацияТоваровУслуг.Дата УБЫВ";
   
Запрос.УстановитьПараметр("Контрагент",Объект.Контрагент);
Запрос.УстановитьПараметр("Номенклатура",Объект.Номенклатура);
Запрос.УстановитьПараметр("ДатаНачала",Объект.ДатаНачала);
Запрос.УстановитьПараметр("ДатаКонца",Объект.ДатаКонца);
   
Результат = Запрос.Выполнить().Выбрать();
Если Результат.Следующий() тогда
Цена=Результат.ЦенаТовара.Выбрать();
Сообщить(Цена[0].Цена);
КонецЕсли;

bav33

Сообщить(Цена КВскобки 0 .Цена);
КонецЕсли;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск