Имя: Пароль:
1C
1С v8
Поясните почему в списке заначений одинаковые значения?
0 ArturR
 
18.02.17
01:13
Есть такой код.
Функция УстановленоКарточкаУчетаПриИзмененииНаСервере(КарточкаУчета)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    УчетИмуществаОстатки.Сотрудник.Ссылка КАК Сотрудник,
    |    УчетИмуществаОстатки.Номенклатура.Ссылка КАК Номенклатура,
    |    УчетИмуществаОстатки.КоличествоОстаток КАК Количество,
    |    КатегорияНоменклатурыСрезПоследних.Категория КАК Категория
    |ИЗ
    |    РегистрНакопления.УчетИмущества.Остатки(&ПараметрПериод, ) КАК УчетИмуществаОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КатегорияНоменклатуры.СрезПоследних КАК КатегорияНоменклатурыСрезПоследних
    |        ПО УчетИмуществаОстатки.Номенклатура.Ссылка = КатегорияНоменклатурыСрезПоследних.Номенклатура.Ссылка
    |ГДЕ
    |    УчетИмуществаОстатки.Номенклатура.КарточкаУчета = &КарточкаУчета
    |
    |УПОРЯДОЧИТЬ ПО
    |    НоменклатураКод";
    
    Запрос.УстановитьПараметр("КарточкаУчета", КарточкаУчета);
    Запрос.УстановитьПараметр("ПараметрПериод", ТекущаяДата());
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    СписокНоменклатуры = Новый СписокЗначений;
    Элемент = Новый Структура;
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Элемент.Вставить("Сотрудник",ВыборкаДетальныеЗаписи.Сотрудник);
        Элемент.Вставить("Номенклатура",ВыборкаДетальныеЗаписи.Номенклатура.Ссылка);
        Элемент.Вставить("Количество",ВыборкаДетальныеЗаписи.Количество);
        СписокНоменклатуры.Добавить(Элемент);
    КонецЦикла;
    
    Возврат СписокНоменклатуры;
КонецФункции


На выходе получаю список с одинаковыми значениями. При пошаговом анализе видно, что ранее добавленные значения меняются на последнее добавленное.

Поясните,что к чему. Спасибо.
1 МихаилМ
 
18.02.17
01:15
животное, левое + срез последних
2 Torquader
 
18.02.17
01:15
Если каждый раз в список вставлять одну и ту же структуру, то ничего удивительного в одинаковых записях нет.
Какого хрена у нас создание структуры вынесли из цикла ?
3 ArturR
 
18.02.17
01:16
(1)
Да дело не запросе. Запрос свое находит.
4 Torquader
 
18.02.17
01:19
(3) Тебе уже сказали, для непонятливых:
Строку "Элемент = Новый Структура;"
нужно поставить после "Пока ВыборкаДетальныеЗаписи.Следующий() Цикл"
и радоваться жизни.
5 ArturR
 
18.02.17
01:22
Все всем спасибо. В цикл загнал создание структуры.
6 marvak
 
18.02.17
01:30
(5)
Ну желаем удачи вооруженным силам Беларуси и пусть учет имущества там проходит на отлично!
:)
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.