Ошибка в табличной части:
"итератор для значения не определен".
Как сделать итератор для табличной части?
&НаКлиенте
Процедура ДеталиОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
// Проверяем, есть ли выбранная Деталь в таблице
Для Каждого СтрокаТаблицы Из Элементы.Детали Цикл
Если СтрокаТаблицы.Деталь = ВыбранноеЗначение Тогда
Сообщить("Такая Деталь уже добавлена.");
Возврат; // Останавливаем выполнение, если Деталь уже есть
КонецЕсли;
КонецЦикла;
// Добавляем новую строку только если такого Деталь нет
Элементы.Детали.ДобавитьСтроку();
Элементы.Детали.ТекущиеДанные.Деталь = ВыбранноеЗначение;
КонецПроцедуры
(3) Ну не определена - и не определена. Смирись.
Ну или если имеется в наличии пытливый ум, то есть два варианта:
1. Определить переменную Детали
2. Использовать правильное имя переменной в коде.
Нашел, что Объект.Детали - тип данные формы коллекция.
а Элементы.Детали - тип элемент формы.
Нужно было использовать Объект.Детали.
Кто-нибудь знает почему так?
Я изучил Радченко. В книге такого нет.
Сначала я спросил, как итерировать табличную часть "Детали".
Мне посоветовали итерировать вместо Элементы.Детали (который невозможно итерировать), просто "Детали".
Свойства "Детали" в форме не существует, я написал "оно не определено".
Потом я нашел, что итератор есть у свойства объекта "Детали".
Придется итерировать Объект.Детали, но добавлять в таблицу Элементы.Детали.ДобавитьСтроку().
Как-то это выглядит странно.
Я спросил, зачем так сделано. Какой смысл табличной части без итератора?
Подумать, пообщаться с умными людьми (user2107184, пожалуйста, помолчи).