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

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

Добрый день!

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

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

Версия 1С:Предприятие 8.2 (8.2.19.130)
  • Вопрос задан
  • 260 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 2
@Dementor
программист, архитектор, аналитик
Все верно. Это правильное поведение еще со времен платформы 8.0

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

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

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