|
Затираю значения в массиве | ☑ | ||
---|---|---|---|---|
0
HelpMePlz
28.12.20
✎
15:15
|
Добрый день. Моя задача получить из регистра сведений 2 записи о выгрузке и загрузке.
Когда я получаю одну из записей, то он ее сохраняет в массив и все хорошо, но когда он доходит до второй записи то он ее записывает но почему то и первую запись меняет на свои параметры. Код { Результат = Неопределено; Запрос = Новый Запрос; Структура = Новый Структура; Массив = Новый Массив; Запрос.Текст = " |ВЫБРАТЬ |* |ИЗ | РегистрСведений.ОбменССайтомПоПродажеЗапчастей.СрезПоследних КАК ОбменССайтом"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Выборка.ВидОбмена = "Выгрузка" И Массив.Количество() < 2 И (Массив.Количество() = 0 ИЛИ Массив[0].ВидОбмена <> "Выгрузка") Тогда Структура.Вставить("ВидОбмена",Выборка.ВидОбмена); Структура.Вставить("ДатаНачалаОбмена",Выборка.ДатаНачалаОбмена); Структура.Вставить("ДатаКонцаОбмена",Выборка.ДатаКонцаОбмена); Структура.Вставить("ДатаУдачногоОбмена",Выборка.ДатаУдачногоОбмена); Структура.Вставить("ИнформацияОбмена",Выборка.ИнформацияОбмена); Структура.Вставить("РезультатОбмена",Выборка.РезультатОбмена); Структура.Вставить("ТипНоменклатуры",Выборка.ТипНоменклатуры); ИначеЕсли Выборка.ВидОбмена = "Загрузка" И Массив.Количество() < 2 И (Массив.Количество() = 0 ИЛИ Массив[0].ВидОбмена <> "Загрузка") Тогда Структура.Вставить("ВидОбмена",Выборка.ВидОбмена); Структура.Вставить("ДатаНачалаОбмена",Выборка.ДатаНачалаОбмена); Структура.Вставить("ДатаКонцаОбмена",Выборка.ДатаКонцаОбмена); Структура.Вставить("ДатаУдачногоОбмена",Выборка.ДатаУдачногоОбмена); Структура.Вставить("ИнформацияОбмена",Выборка.ИнформацияОбмена); Структура.Вставить("РезультатОбмена",Выборка.РезультатОбмена); Структура.Вставить("ТипНоменклатуры",Выборка.ТипНоменклатуры); КонецЕсли; Массив.Добавить(Структура); Если Массив.Количество() = 2 Тогда Результат = Массив; Возврат Результат; Прервать; КонецЕсли; КонецЦикла; Возврат Результат; Код } |
|||
1
Fragster
гуру
28.12.20
✎
15:17
|
Структура = Новый Структура; внутрь цикла
|
|||
2
HelpMePlz
28.12.20
✎
15:21
|
(1) Спасибо огромное, а как это работает? Я получал запрос, но записывал туда старую структуру?
|
|||
3
ДенисЧ
28.12.20
✎
15:22
|
(2) Открой для себя ссылки на объекты..
|
|||
4
fisher
28.12.20
✎
15:35
|
(2) Да. Записывал ССЫЛКУ на старую структуру. Оператор Новый - создает в памяти новый объект. А оператор присваивания копирует значение только для примитивных типов. Для объектов копируется ссылка на объект (адрес объекта). Это во многих языках программирования так.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |