Вопрос про запрос. Помогите разобраться с запросом, конф. БП, пытаюсь сделать запрос, что бы при выборе номенклатуры выбиралась средняя цена. Отладчиком проверил отборы для запроса подставляются правильно, но само значение (цена) не поставляется. Счет1 = СчетНом; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Счет КАК Счет, | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, | ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоОстаток, | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток, | ВЫБОР | КОГДА ХозрасчетныйОстатки.КоличествоОстаток > 0 | ТОГДА ХозрасчетныйОстатки.СуммаОстаток / ХозрасчетныйОстатки.КоличествоОстаток | ИНАЧЕ 0 | КОНЕЦ КАК Цена |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки |ГДЕ | ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет) | И ХозрасчетныйОстатки.Субконто1 = &Субконто1"; Запрос.УстановитьПараметр("Период",ТекущаяДата()); Запрос.УстановитьПараметр("Субконто1",СтрокаТЧ.Номенклатура); Запрос.УстановитьПараметр("Счет",Счет1); Выборка = Запрос.Выполнить().Выбрать(); |
ХозрасчетныйОстатки.КоличествоОстаток выведи для начала ЗЫ. и кто тебя научил условия для виртуальной таблицы писать в секции ГДЕ? |
Uho - Можно чуть по подробней? На счет условия понял, что лучше в секции ИЗ указывать, а вот на счет КоличествоОстаток? |
Первым запросом (вложенным) собирай остатки, а вторым уже цену рассчитывай. |
Что то типа такого: ВЫБРАТЬ Остатки.Счет, Остатки.Номенклатура, Остатки.КоличествоОстаток, Остатки.СуммаОстаток, ВЫБОР КОГДА Остатки.КоличествоОстаток > 0 ТОГДА Остатки.СуммаОстаток / Остатки.КоличествоОстаток ИНАЧЕ 0 КОНЕЦ КАК Цена ИЗ (ВЫБРАТЬ ХозрасчетныйОстатки.Счет КАК Счет, ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоОстаток, ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки ГДЕ ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет) И ХозрасчетныйОстатки.Субконто1 = &Субконто1) КАК Остатки |
Что то все равно не получается. Может что то не правильно делаю не в запросе? СтрокаТЧ = ЭлементыФормы.Товары.ТекущиеДанные; Счет1 = СчетНом; Запрос = Новый Запрос; [em]Запрос.Текст = "ВЫБРАТЬ | Остатки.Счет, | Остатки.Номенклатура, | Остатки.КоличествоОстаток, | Остатки.СуммаОстаток, | ВЫБОР | КОГДА Остатки.КоличествоОстаток > 0 | ТОГДА Остатки.СуммаОстаток / Остатки.КоличествоОстаток | ИНАЧЕ 0 | КОНЕЦ КАК Цена |ИЗ | (ВЫБРАТЬ | ХозрасчетныйОстатки.Счет КАК Счет, | ХозрасчетныйОстатки.Субконто1 КАК Номенклатура, | ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоОстаток, | ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток | ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, , , ) КАК ХозрасчетныйОстатки | ГДЕ | ХозрасчетныйОстатки.Счет В ИЕРАРХИИ(&Счет) | И ХозрасчетныйОстатки.Субконто1 = &Субконто1) КАК Остатки"; Запрос.УстановитьПараметр("Период",Дата); Запрос.УстановитьПараметр("Субконто1",СтрокаТЧ.Номенклатура); Запрос.УстановитьПараметр("Счет",Счет1); Выборка = Запрос.Выполнить().Выбрать(); [/em] СтрокаТЧ.Цена = Выборка.Цена; |
Когда запрос, пропускаешь через консоль, то все выводиться. |
Все разобрался. |
Текущее время: 20:03. Часовой пояс GMT +3. |