Имя: Пароль:
1C
 
Вывод данных из запроса в поле табл. документа циклом "Для Каждого ... Из ..."
0 alexmosk08
 
14.06.19
15:52
Разбираюсь в 1с. Есть код:

[CODE]
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    Макет = ОтчетОбъект.ПолучитьМакет("Макет");
    
    Область = Макет.ПолучитьОбласть ("Шапка");
    Результат.Вывести(Область);
    
    Запрос = Новый Запрос ("ВЫБРАТЬ
                           |    ОприходованиеТоваровТовары.Номенклатура КАК Номенклатура,
                           |    ОприходованиеТоваровТовары.цусКоллекция КАК цусКоллекция,
                           |    ОприходованиеТоваровТовары.Ссылка КАК Ссылка
                           |ИЗ
                           |    Документ.ОприходованиеТоваров.Товары КАК ОприходованиеТоваровТовары
                           |ИТОГИ ПО
                           |    Номенклатура,
                           |    цусКоллекция,
                           |    Ссылка");
    
    
    РезультатЗапроса = Запрос.Выполнить();
    
    
    ВыбНом = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
    ВыбДок = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Ссылка");
    ВыбКол = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "цусКоллекция");
    
    Для Каждого Стр из РезультатЗапроса.Выгрузить() Цикл
        ОбластьСтрока = Макет.ПолучитьОбласть ("Строка");
        ОбластьСтрока.Параметры.Номенклатура = ВыбНом.Номенклатура;
          ОбластьСтрока.Параметры.Документ = ВыбДок.Ссылка;
          ОбластьСтрока.Параметры.Коллекция = ВыбКол.цусКоллекция;
        Результат.Вывести(ОбластьСтрока);
        
    КонецЦикла;

[/CODE]



В результате ничего не выводиться. До этого делал так:

[CODE]Пока ВыбНом.Следующий() Цикл
ОбластьСтрока = Макет.ПолучитьОбласть ("Строка");
        ОбластьСтрока.Параметры.Номенклатура = ВыбНом.Номенклатура;
          Результат.Вывести(ОбластьСтрока);
        
    КонецЦикла;
[/CODE]

Все работало, но теперь нужен вывод по всем трем параметрам. При этом, если я заменю , например, ВыбНом.Номенклатура на какое либо строковое значение типа "....", то результат выводиться. Что то не так с циклом, прошу помочь.
1 alexmosk08
 
14.06.19
15:53
*Режим - Управляемый.
Реализую через внешний отчет
2 dka80
 
14.06.19
16:15
ОбластьСтрока = Макет.ПолучитьОбласть ("Строка"); - вынеси перед циклом

Запрос неправильный. Зачем итоги в запросе? Я не вижу  числовых полей. Убери итоги
3 dka80
 
14.06.19
16:17
Перед строкой "ОбластьСтрока.Параметры.Номенклатура = ВыбНом.Номенклатура;"  напиши Сообщить(ВыбНом.Номенклатура) - что выводит?
4 hhhh
 
14.06.19
16:23
(1) чтобы попасть в выборку надо обязательно выдать команду следующий(), иначе все будет пусто

ВыбНом.Следующий()


хотя в принципе тебе эти ВыбНом не нужны, походу надо

Стр.Номенклатура
5 alexmosk08
 
14.06.19
16:43
(2) Если уберу итоги, то начинает ругаться при формировании отчета, что "Измерение Номенклатура не найдено"
6 alexmosk08
 
14.06.19
16:45
(3) Пустые значение
7 alexmosk08
 
14.06.19
16:47
(4) Заменил на Стр.Номенклатура и все работает, вполне как нужно
Ошибка? Это не ошибка, это системная функция.