&НаКлиенте
Процедура РасчитатьВес()
СписокТовары = Новый Массив ();
ТЗ = Объект.Товары;
Для каждого СтрокаТовары Из ТЗ Цикл
СтруктураСтроки = Новый Структура();
СтруктураСтроки.Вставить("Номенклатура", СтрокаТовары.Номенклатура);
СтруктураСтроки.Вставить("Количество", СтрокаТовары.Количество);
СтруктураСтроки.Вставить("ТипНоменклатуры", СтрокаТовары.ТипНоменклатуры);
СписокТовары.Вставить(ТЗ.Индекс(СтрокаТовары),СтруктураСтроки);
КонецЦикла;
ВесИтого = ПолучитьВесНоменклатурыВСпискеТоваров(СписокТовары);
КонецПроцедуры // РасчитатьВес();
&НаСервереБезКонтекста
Функция ПолучитьВесНоменклатурыВСпискеТоваров(СписокТовары)
ИтогВес = 0;
Для каждого ЭлементСтруктуры Из СписокТовары Цикл
Номенклатура = ЭлементСтруктуры.Номенклатура;
Если ЭлементСтруктуры.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар") Тогда
ВесЗнаменатель = ?( Номенклатура.ВесЗнаменатель=0, 1, Номенклатура.ВесЗнаменатель);
ИтогВес = ИтогВес+ ЭлементСтруктуры.Количество * Номенклатура.ВесЧислитель / ВесЗнаменатель;
КонецЕсли;
КонецЦикла;
Возврат ИтогВес;
КонецФункции