Вывод Итога через запрос
Показывать по
10
20
40
сообщений
- 1
- 2
05.08.2012
18:22
#11
"Тут такой смысл: Купили 3 печеньки по 20 руб и 4 печеньки по 16 руб. Нужно посчитать среднюю цену копленных печенек. Для этого считаем общее кол-во печенек, общую сумму печенек и в итоге делем Общую Цену на кол-во.
Тут как раз нужен только отбор по номенклатуре и складу.
Пока функция выглядит так:
&НаСервереБезКонтекста
Функция ПолучитьЗакупочнуюЦенуТовара(СкладКомпании, Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ОстаткиТоваровОстатки.СуммаОстаток) / СУММА(ОстаткиТоваровОстатки.ОстатокОстаток) КАК ИТОГ
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки
|ГДЕ
| ОстаткиТоваровОстатки.СкладКомпании = &СкладКомпании
| И ОстаткиТоваровОстатки.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("СкладКомпании", СкладКомпании);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Результат = Запрос.Выполнить().Выбрать();
Возврат Результат.ИТОГ;
КонецФункции
Но в итоге возвращается 0, а не нужное число"
Тут как раз нужен только отбор по номенклатуре и складу.
Пока функция выглядит так:
&НаСервереБезКонтекста
Функция ПолучитьЗакупочнуюЦенуТовара(СкладКомпании, Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ОстаткиТоваровОстатки.СуммаОстаток) / СУММА(ОстаткиТоваровОстатки.ОстатокОстаток) КАК ИТОГ
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки КАК ОстаткиТоваровОстатки
|ГДЕ
| ОстаткиТоваровОстатки.СкладКомпании = &СкладКомпании
| И ОстаткиТоваровОстатки.Номенклатура = &Номенклатура";
Запрос.УстановитьПараметр("СкладКомпании", СкладКомпании);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Результат = Запрос.Выполнить().Выбрать();
Возврат Результат.ИТОГ;
КонецФункции
Но в итоге возвращается 0, а не нужное число"
05.08.2012
23:06
#12
Во-первых, как писал Bloodwiser:
> Условие ГДЕ, в данном случае, лучше поместить в параметры виртуальной таблицы остатки:
> ИЗ РегистрНакопления.ОстаткиТоваров.Остатки(, Номенклатура = &Номенклатура И СкладКомпании = &Склад) КАК ОстаткиТоваровОстатки
только убрать Период, если он не нужен,
а во-вторых нужен Результат.Следующий()
> Условие ГДЕ, в данном случае, лучше поместить в параметры виртуальной таблицы остатки:
> ИЗ РегистрНакопления.ОстаткиТоваров.Остатки(, Номенклатура = &Номенклатура И СкладКомпании = &Склад) КАК ОстаткиТоваровОстатки
только убрать Период, если он не нужен,
а во-вторых нужен Результат.Следующий()
05.08.2012
23:55
#13
При таком способе всё равно возвращается 0 значение. (регистр заполненный и значения "0" быть не может)
- 1
- 2
Читают тему
(гостей: 1)