Загрузка данных


&НаКлиенте
Процедура МатериалыМатериалПриИзменении(Элемент)

	СтрокаТЧ = Элементы.Материалы.ТекущиеДанные;

	Если СтрокаТЧ = Неопределено Тогда
		Возврат;
	КонецЕсли;

	Если ЗначениеЗаполнено(СтрокаТЧ.Материал) Тогда
		СтрокаТЧ.Цена = ПолучитьЦенуМатериала(СтрокаТЧ.Материал);
	Иначе
		СтрокаТЧ.Цена = 0;
	КонецЕсли;

	ПересчитатьСтрокуМатериалов(СтрокаТЧ);
	ПересчитатьИтоговуюСумму();

КонецПроцедуры


&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)

	СтрокаТЧ = Элементы.Материалы.ТекущиеДанные;

	Если СтрокаТЧ = Неопределено Тогда
		Возврат;
	КонецЕсли;

	ПересчитатьСтрокуМатериалов(СтрокаТЧ);
	ПересчитатьИтоговуюСумму();

КонецПроцедуры


&НаКлиенте
Процедура ПересчитатьСтрокуМатериалов(СтрокаТЧ)

	СтрокаТЧ.Сумма = СтрокаТЧ.Количество * СтрокаТЧ.Цена;

КонецПроцедуры


&НаКлиенте
Процедура ПересчитатьИтоговуюСумму()

	Объект.ИтоговаяСумма = 0;

	Для Каждого СтрокаМатериалов Из Объект.Материалы Цикл
		Объект.ИтоговаяСумма = Объект.ИтоговаяСумма + СтрокаМатериалов.Сумма;
	КонецЦикла;

КонецПроцедуры


&НаСервереБезКонтекста
Функция ПолучитьЦенуМатериала(Материал)

	Если Не ЗначениеЗаполнено(Материал) Тогда
		Возврат 0;
	КонецЕсли;

	Возврат Материал.ЦенаЗакупки;

КонецФункции