Как исправить ошибку в коде на 1С: Предприятие, чтобы правильно находить максимальный элемент в табличной части?

Как исправить ошибку "Итератор для значение не определён", проясните здесь, чтобы я мог лучше понять ваш код: нужно вывести головной убор с наибольшим количеством материалов.
  • 15 апреля 2024 г. 21:09
Ответы на вопрос 2
Для того чтобы правильно находить максимальный элемент в табличной части в 1С: Предприятие, можно воспользоваться следующим кодом:

```bsl
Функция НайтиМаксимальныйЭлемент(ТабЧасть)
	МаксЗначение = 0;
	Для каждого ЭлементаТабЧасти из ТабЧасть Цикл
		Если ЭлементаТабЧасти.ЗначениеПоля > МаксЗначение Тогда
			МаксЗначение = ЭлементаТабЧасти.ЗначениеПоля;
		КонецЕсли;
	КонецЦикла;
	
	Возврат МаксЗначение;
КонецФункции;
```

Для исправления ошибки "Итератор для значение не определён" при поиске головного убора с наибольшим количеством материалов, можно использовать следующий код:

```bsl
ТаблицаГоловныхУборов = Справочник.ГоловныеУборы.СоздатьТаблицу();
МаксКолМатериалов = 0;
ГоловнойУборСМаксКолМатериалов = Неопределено;

Для каждой Строки из ТаблицаГоловныхУборов Цикл
	Если СтрокаТаблицы.КоличествоМатериалов > МаксКолМатериалов Тогда
		МаксКолМатериалов = СтрокаТаблицы.КоличествоМатериалов;
		ГоловнойУборСМаксКолМатериалов = СтрокаТаблицы.ГоловнойУбор;
	КонецЕсли;
КонецЦикла;

Если ГоловнойУборСМаксКолМатериалов <> Неопределено Тогда
	Сообщить(ГоловнойУборСМаксКолМатериалов.Наименование);
КонецЕсли;
```

Этот код проходит по каждой строке таблицы головных уборов, находит количество материалов у каждого головного убора и сохраняет информацию о головном уборе с наибольшим количеством материалов. В конце кода выводится наименование головного убора с максимальным количеством материалов.
Сообщить(макс2.Количество_материалов); 
Заменить на
Сообщить(макс2);
У Вас макс2 числового типа, а не объект типа Варианты_головных_уборов
Похожие вопросы