2.
Dopilzzz
09.01.12 11:23
Сейчас в теме
За 7 часов додумался как делать. Если кому будет полезно выкладываю запрос:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток * ВложенныйЗапрос.Коэффициент) КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(&Момент, ) КАК ТоварыНаСкладахОстатки
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ЕдиницыИзмерения.ЕдиницаПоКлассификатору КАК ЕдиницаПоКлассификатору,
| ЕдиницыИзмерения.Коэффициент КАК Коэффициент,
| ЕдиницыИзмерения.Владелец КАК Владелец
| ИЗ
| Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения) КАК ВложенныйЗапрос
| ПО ТоварыНаСкладахОстатки.Номенклатура = ВложенныйЗапрос.Владелец
|ГДЕ
| ТоварыНаСкладахОстатки.Номенклатура.ЭтоГруппа = ЛОЖЬ
| И ТоварыНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&Родитель)
| И ТоварыНаСкладахОстатки.Склад = &Склад
| И ВложенныйЗапрос.ЕдиницаПоКлассификатору = &ЕдиницаПоКлассификатору
|
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОстатки.Номенклатура,
| ТоварыНаСкладахОстатки.КоличествоОстаток * ВложенныйЗапрос.Коэффициент,
| ВложенныйЗапрос.Коэффициент
|
|УПОРЯДОЧИТЬ ПО
| Номенклатура";
Момент = Новый МоментВремени(ЭтотОбъект.Дата, ЭтотОбъект.Ссылка);
Запрос.УстановитьПараметр("Момент", Момент);
Запрос.УстановитьПараметр("Родитель", Справочники.Номенклатура.НайтиПоКоду("777").Ссылка);
Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоКоду("00015").Ссылка);
Запрос.УстановитьПараметр("ЕдиницаПоКлассификатору", Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("812").Ссылка);
Результат = Запрос.Выполнить();
Но этот запрос поможет только в том случае, если явно известна единица с максимальным коэффициентом и у всех товаров она имеется.