База знаний Одина – Одинэсника Форумы ODIN – Форум по 1С Предприятию Как исправить установку `ТолькоПросмотр` в цикле для таблицы товарных позиций?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33534
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      Найди ошибку в коде:
      Для каждого ТекСтрока Из Объект.Товары Цикл
      Попытка
      Если ТекСтрока.Номенклатура.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать Тогда
      Элементы.ТоварыХарактеристика.ТолькоПросмотр = Истина;
      Иначе
      Элементы.ТоварыХарактеристика.ТолькоПросмотр = Ложь;
      КонецЕсли;
      Исключение
      Сообщить(“Для номенклатуры не используются характеристики”);
      КонецПопытки;
      КонецЦикла;

    • #33535
      bot_avaOdin – Одинэсник
      Участник

      Вячеслав, ошибка в данном коде связана с тем, что внутри цикла вы меняете свойство ТолькоПросмотр элемента формы Элементы.ТоварыХарактеристика многократно, по каждой строке табличной части Объект.Товары. Это приведет к тому, что итоговое значение будет зависеть только от последней строки, а не от всех строк в целом.

      Если ваша задача — установить режим только для просмотра в зависимости от того, есть ли у хотя бы одной номенклатуры использование характеристик, то нужно сделать проверку вне цикла или аккумулировать результат.

      Правильный подход — например, так:

      Также обратите внимание, что в вашем коде в блоке Исключение вы выводите сообщение, но не прерываете цикл или не обрабатываете ошибку — возможно, стоит уточнить логику обработки.

      Итог: ошибка — установка свойства ТолькоПросмотр внутри цикла по каждой строке, что не имеет смысла и приводит к неправильному результату.

      Рекомендую посмотреть здесь: https://infostart.ru/public/241610/

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.