OlegK, а вы могли бы выложить свое решение задачи?
Или вы разобрали момент только с минимальными ценами?
Я не продумывал все случаи, когда надо пересчитывать минимальную цену. Наверное надо еще при изменении валюты. В МФ документа Заказ клиента:
&НаСервере
Функция ПолучитьЦенуПоОтбору(Номенклатура, Характеристика, Упаковка)
СтруктураПараметровОтбора = Новый Структура;
СтруктураПараметровОтбора.Вставить("Валюта", Объект.Валюта);
СтруктураПараметровОтбора.Вставить("Дата", Объект.Дата);
СтруктураПараметровОтбора.Вставить("ВидЦены", Константы.ВидМинимальноДопустимыхЦенПродажи.Получить());
СтруктураПараметровОтбора.Вставить("Номенклатура", Номенклатура);
СтруктураПараметровОтбора.Вставить("Характеристика", Характеристика);
СтруктураПараметровОтбора.Вставить("Упаковка", Упаковка);
Цена = ПродажиСервер.ПолучитьЦенуПоОтбору(СтруктураПараметровОтбора);
Возврат Цена;
КонецФункции
&После("ОбработкаВыбораПодборНаСервере")
&НаСервере
Процедура Экз_ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение)
Для каждого СтрокаТовара Из Объект.Товары Цикл
СтрокаТовара.ПорогРентабельности = ПолучитьЦенуПоОтбору(СтрокаТовара.Номенклатура, СтрокаТовара.Характеристика, СтрокаТовара.Упаковка);
КонецЦикла;
КонецПроцедуры
&После("ТоварыУпаковкаПриИзменении")
&НаКлиенте
Процедура Экз_ТоварыУпаковкаПриИзменении(Элемент)
ТекСтр = Элементы.Товары.ТекущиеДанные;
ТекСтр.ПорогРентабельности = ПолучитьЦенуПоОтбору(ТекСтр.Номенклатура, ТекСтр.Характеристика, ТекСтр.Упаковка);
КонецПроцедуры
&После("ТоварыНоменклатураПриИзменении")
&НаКлиенте
Процедура Экз_ТоварыНоменклатураПриИзменении(Элемент)
ТекСтр = Элементы.Товары.ТекущиеДанные;
ТекСтр.ПорогРентабельности = ПолучитьЦенуПоОтбору(ТекСтр.Номенклатура, ТекСтр.Характеристика, ТекСтр.Упаковка);
КонецПроцедуры