порядок обхода не гарантирован
Для Каждого КлючЗначение Из Структура Цикл
Сообщить(КлючЗначение.Ключ + " = " + КлючЗначение.Значение);
КонецЦикла;Каждый элемент цикла — объект КлючИЗначение с двумя свойствами: Ключ (строка, имя свойства) и Значение (само значение). Числового индекса, как у массива, нет — обратиться «к третьему свойству» напрямую нельзя.
Структура — неупорядоченная коллекция. Платформа не гарантирует, что порядок перебора Для Каждого совпадёт с порядком добавления свойств через Вставить() — на практике часто совпадает, но полагаться на это нельзя. Нужен предсказуемый порядок — переложить в Массив или СписокЗначений с сортировкой.
Менять структуру (Вставить, Удалить, Очистить) прямо внутри Для Каждого по ней самой нельзя — платформа бросает исключение «Коллекция была изменена; невозможно выполнить операцию перечисления». Если по итогам обхода что-то нужно удалить — сначала собрать ключи в массив, потом удалить их отдельным циклом:
КлючиНаУдаление = Новый Массив;
Для Каждого КлючЗначение Из Структура Цикл
Если КлючЗначение.Значение = Неопределено Тогда
КлючиНаУдаление.Добавить(КлючЗначение.Ключ);
КонецЕсли;
КонецЦикла;
Для Каждого Ключ Из КлючиНаУдаление Цикл
Структура.Удалить(Ключ);
КонецЦикла;