Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Вопрос про запрос. (http://forums.kuban.ru/f1040/vopros_pro_zapros-2444780.html)

Macromedia09 03.04.2012 16:49

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

Uho 03.04.2012 16:56

ХозрасчетныйОстатки.КоличествоОстаток выведи для начала
ЗЫ. и кто тебя научил условия для виртуальной таблицы писать в секции ГДЕ?

Macromedia09 03.04.2012 19:47

Uho - Можно чуть по подробней? На счет условия понял, что лучше в секции ИЗ указывать, а вот на счет КоличествоОстаток?

SergeyT2006 04.04.2012 07:22

Первым запросом (вложенным) собирай остатки, а вторым уже цену рассчитывай.

SergeyT2006 04.04.2012 07:26

Что то типа такого:
ВЫБРАТЬ
Остатки.Счет,
Остатки.Номенклатура,
Остатки.КоличествоОстаток,
Остатки.СуммаОстаток,
ВЫБОР
КОГДА Остатки.КоличествоОстаток > 0
ТОГДА Остатки.СуммаОстаток / Остатки.КоличествоОстаток
ИНАЧЕ 0
КОНЕЦ КАК Цена
ИЗ
(ВЫБРАТЬ
ХозрасчетныйОстатки.Счет КАК Счет,
ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоОстаток,
ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки
ГДЕ
ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет)
И ХозрасчетныйОстатки.Субконто1 = &Субконто1) КАК Остатки

Macromedia09 04.04.2012 09:02

Что то все равно не получается. Может что то не правильно делаю не в запросе?

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

[/em]


СтрокаТЧ.Цена = Выборка.Цена;

Macromedia09 04.04.2012 09:04

Когда запрос, пропускаешь через консоль, то все выводиться.

Macromedia09 04.04.2012 14:19

Все разобрался.


Текущее время: 20:03. Часовой пояс GMT +3.