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