Имя: Пароль:
1C
1С v8
Как заполнить табличную часть результатом запроса
, ,
0 sasha-asn
 
28.11.19
17:17
Здравствуйте уважаемые эксперты!

Есть запрос, он должен заполнять табличную часть документа Инвентаризация, а именно заполнять реквизит - МестоХраненияНаСкладе, а брать данные из непериодического регистра сведений МестаХраненияНоменклатуры. Запрос проверил через КонсольЗапросов, и он правильно выводит данные, как мне надо. Но я не могу понять где ошибаюсь в коде, что он не заполняет табличную часть? Прошу подскажите пожалуйста!

------------------------------------------
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    МестаХраненияНоменклатуры.Номенклатура,
        |    МестаХраненияНоменклатуры.МестоХранения
        |ИЗ
        |    РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
        |ГДЕ
        |    МестаХраненияНоменклатуры.Номенклатура.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Товары.Загрузить(РезультатЗапроса.Выгрузить());
    КонецЦикла;
1 Ненавижу 1С
 
гуру
28.11.19
17:19
апрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    МестаХраненияНоменклатуры.Номенклатура,
        |    МестаХраненияНоменклатуры.МестоХранения КАК МестоХраненияНаСкладе
        |ИЗ
        |    РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
        |ГДЕ
        |    МестаХраненияНоменклатуры.Номенклатура.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
        
    Товары.Загрузить(Запрос.Выполнить().Выгрузить());
2 Галахад
 
гуру
28.11.19
17:20
Ссылка это чего?
3 Ненавижу 1С
 
гуру
28.11.19
17:21
+(2) кстати да, не заметил
4 pechkin
 
28.11.19
17:22
сдается мне что программа миллион киргизов - кодеров начала работать
5 pasha_d
 
28.11.19
17:22
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Товары.Загрузить(РезультатЗапроса.Выгрузить());
КонецЦикла;

а это что?
6 sasha-asn
 
28.11.19
17:24
мой косяк, товарищи подскажите пожалуйста - как правильно обработать результат запроса, что бы он заполнил табличную часть?
7 EVGA
 
28.11.19
17:24
(6) в (1) уже ответил
8 EVGA
 
28.11.19
17:26
правда так он перезапишет все что было в ТЧ, а если надо добавить дополнительно, то тогда только обходом результата выборки
9 ILM
 
гуру
28.11.19
17:26
(6) ТабЧасть.Загрузить(Запрос.Выполнить().Выгрузить());
10 pasha_d
 
28.11.19
17:26
Если Не РезультатЗапроса.Выполнить().Пустой() Тогда
    Товары.Загрузить(РезультатЗапроса.Выполнить().Выгрузить());
КонецЕсли;
11 yabes
 
28.11.19
17:26
Да, ответ в (1). Обходить запрос не надо, достаточно выгрузить РезультатЗапроса в ТЗ

РезультатЗапроса = Запрос.Выполнить();
Товары.Загрузить(РезультатЗапроса.Выгрузить());
12 Ненавижу 1С
 
гуру
28.11.19
17:28
Есть сомнения конечно с параметром запроса
13 sasha-asn
 
28.11.19
17:43
товарищи, подскажите почему Табличная часть с заполненными товарами очищается при нажатие на кнопку с запросом?

--------------------------
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    МестаХраненияНоменклатуры.Номенклатура,
        |    МестаХраненияНоменклатуры.МестоХранения КАК МестоХраненияНаСкладе
        |ИЗ
        |    РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры
        |ГДЕ
        |    МестаХраненияНоменклатуры.Номенклатура.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
Товары.Загрузить(Запрос.Выполнить().Выгрузить());
14 Галахад
 
гуру
28.11.19
17:45
Перепродам СП.
15 vicof
 
28.11.19
17:45
(13) А сам-то как думаешь?
16 Tata_059
 
28.11.19
17:45
(13) потому что ты перезаписываешь Таб часть
17 pasha_d
 
28.11.19
17:47
(13) результат запроса пустой. Смотри, что тебе в (12) пишут и думай.
18 EVGA
 
28.11.19
17:48
Ответ в (8)
19 EVGA
 
28.11.19
17:49
Да, если запрос пустой то очистится тч
20 pasha_d
 
28.11.19
17:49
Отладчик в руки и сюда:

Если Не РезультатЗапроса.Выполнить().Пустой() Тогда
    Товары.Загрузить(РезультатЗапроса.Выполнить().Выгрузить());
КонецЕсли;
21 sasha-asn
 
28.11.19
17:53
все спасибо буду думать!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс