Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
04 мар 2025, 13:07

Наполнение массива

Автор Shaman_blr, Сегодня в 08:07

0 Пользователей и 1 гость просматривают эту тему.

Shaman_blr

Структура.InitialDocumentTypeId = строка.InitialDocumentTypeId;
Структура.InitialDocumentId = строка.InitialDocumentId;
Структура.CheckxExchange = 0;
Структура.StateRec = "1";
Структура.StateRecMsg = "Ошибка. Заказ " + строка.ExternalOutgoingDocId + " отсутствует в базе!"; 
Данные.Добавить(Структура);

Данные - это массив

Вопрос когда я прохожу цикл и каждый раз добавляю в массив структуру
то предыдущие все значения перезаписываются на последнее добавленное

тобишь было в массиве номенклатура - яблоко, количество - 2
когда добавляю след массив уже ставится две строки
номенклатура - груша, количество 5
номенклатура - груша, количество 5

первая запись изменилась на новую и создала еще одну
как этого избежать?

antoneus

Каждый раз создавать новую структуру.

Shaman_blr

antoneus,
типа Структура1 = Новый Структура;
Структура2 = Новый Структура;

так?) или я не так понял тебя)

antoneus

Нет, в цикле

Пока что-то там Цикл
Структура = Новый Структура(Имена полей бла-бла-бла);
Структура.InitialDocumentTypeId     = строка.InitialDocumentTypeId;
...бла-бла-бла...
Данные.Добавить(Структура)

Когда присваиваешь переменной какое-то значение - в памяти создается объект, переменная на него указывает. Добавляешь эту переменную в массив - туда добавляется ссылка на адрес в памяти. Потом, если переменной не присвоить ссылку на новый объект - в цикле будет добавляться эта же ссылка на этот же объект. И в конце у тебя полный массив ссылок на один и тот же объект, в котором сидят значения, присвоенные при последнем проходе цикла.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск