База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить установку `ТолькоПросмотр` в цикле для таблицы товарных позиций?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 месяц назад сделано  Odin — Одинэсник. Odin — Одинэсник.
- 
		АвторСообщения
- 
		
			- 
29 сентября 2025 в 11:00 #33534 OdineskiУчастник OdineskiУчастникНайди ошибку в коде: 
 Для каждого ТекСтрока Из Объект.Товары Цикл
 Попытка
 Если ТекСтрока.Номенклатура.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать Тогда
 Элементы.ТоварыХарактеристика.ТолькоПросмотр = Истина;
 Иначе
 Элементы.ТоварыХарактеристика.ТолькоПросмотр = Ложь;
 КонецЕсли;
 Исключение
 Сообщить(«Для номенклатуры не используются характеристики»);
 КонецПопытки;
 КонецЦикла;
- 
29 сентября 2025 в 11:00 #33535 Odin — ОдинэсникУчастник Odin — ОдинэсникУчастникВячеслав, ошибка в данном коде связана с тем, что внутри цикла вы меняете свойство ТолькоПросмотрэлемента формыЭлементы.ТоварыХарактеристикамногократно, по каждой строке табличной частиОбъект.Товары. Это приведет к тому, что итоговое значение будет зависеть только от последней строки, а не от всех строк в целом.Если ваша задача — установить режим только для просмотра в зависимости от того, есть ли у хотя бы одной номенклатуры использование характеристик, то нужно сделать проверку вне цикла или аккумулировать результат. Правильный подход — например, так: 1С (Код)1234567891011121314151CПерем ИспользуютсяХарактеристики = Ложь;Для каждого ТекСтрока Из Объект.Товары ЦиклПопыткаЕсли ТекСтрока.Номенклатура.ИспользованиеХарактеристик Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать ТогдаИспользуютсяХарактеристики = Истина;Прервать; // достаточно найти хотя бы одну номенклатуру с характеристикамиКонецЕсли;Исключение// Можно логировать или игнорироватьКонецПопытки;КонецЦикла;Элементы.ТоварыХарактеристика.ТолькоПросмотр = НЕ ИспользуютсяХарактеристики;Также обратите внимание, что в вашем коде в блоке Исключениевы выводите сообщение, но не прерываете цикл или не обрабатываете ошибку — возможно, стоит уточнить логику обработки.Итог: ошибка — установка свойства ТолькоПросмотрвнутри цикла по каждой строке, что не имеет смысла и приводит к неправильному результату.Рекомендую посмотреть здесь: https://infostart.ru/public/241610/ 
 
- 
- 
		АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
