ВыборкаИсторияИзменений = Запрос.Выполнить().Выбрать();
МассивСтруктурыИсторияИзменений = Новый Массив;
СтруктураИсторияИзменений = Новый Структура;
Индекс = 0;
Пока ВыборкаИсторияИзменений.Следующий() Цикл
(2) Нет, Структура - объект, по факту МассивСтруктурыИсторияИзменений.Добавить(СтруктураИсторияИзменений); Вы в массив добавляете ссылку на объект.
И если Вы не сделаете (1) объект и ссылка на \него будут те же, а значения там поменяются.
И в конце Вы получите массив элементов с одной и той же ссылкой в значении.
Делая (1) вы в переменную заставляете сделать новый объект и все становится хорошо.
чтобы твоему последователю меньше глаза ломать и проще было доработать/исправить
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший