Задать вопрос

Почему элемент цикла Для Каждого остается инициализированным после завершения цикла?

Добрый день!

Есть цикл по таблице значений:
Для Каждого ТекСтрока Из ТаблицаТоваров Цикл
... ...
КонецЦикла;

Почему ПОСЛЕ завершения цикла переменная ТекСтрока остается инициализированной значением последней строки исходной таблицы значений? Глюк платформы?

Версия 1С:Предприятие 8.2 (8.2.19.130)
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Главный бухгалтер
    7 месяцев
    Далее
  • Stepik
    Базовые навыки 1С Документооборот 8.3
    1 неделя
    Далее
  • Stepik
    ПБУ 18/02 "Учет расчетов по налогу на прибыль"
    1 неделя
    Далее
Решения вопроса 2
@Dementor
программист, архитектор, аналитик
Все верно. Это правильное поведение еще со времен платформы 8.0

Цикл находится внутри контекста процедуры/функции. В языке 1С в отличии от C++ нельзя просто взять и процедурными скобками объявить еще один изолированный контекст, переменные которого удалятся при выходе за его рамки. Все переменные, которые создаются в рамках условий и циклов продолжают существовать и хранить полученные значения до завершения всей текущей выполняемой процедуры. Если вам нужно беречь память, то после вашего цикла вам самим нужно позаботится об очистке содержимого уже ненужных служебных массивов и таблиц.
Ответ написан
Комментировать
raym0n
@raym0n Автор вопроса
На последней версии платформы переменная цикла не зануляется и остается инициализированной.
Не баг, а фича.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы