Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Добавить номенклатуру из документа в ВПФ

Добавить номенклатуру из документа в ВПФ
Я
   steeshiy
 
25.11.21 - 22:53
Добрый день!
Столкнулся с такой проблемой: есть внешняя печатная форма транспортной накладной комплексной автоматизации.
Необходимо в ПФ поставить номенклатуру из документа "реализация товаров и услуг"
Создал следующую функцию:

Функция СформироватьДопДанные (СсылкаНаОбъект)

    Список = Новый Структура;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
        |    РеализацияТоваровУслуг.Товары.(
        |        Номенклатура КАК Номенклатура
        |    ) КАК Товары
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        |ГДЕ
        |    РеализацияТоваровУслуг.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    
    
    Пока ВыборкаДетальныеЗаписи.Следующий()  Цикл
    
         Список.Вставить("Номенклатура");
        
    
    КонецЦикла;
    
    Возврат Список;
            
    
КонецФункции // ()

В процедуре "ЗаполнитьТабличныйДокументТН" в нужную строку подставил:
РеквизитыМакета.Вставить("Пункт3_1", СформироватьДопДанные(СсылкаНаОбъект));

"Пункт3_1" - параметр в макете, куда необходимо вставить номенклатуру.

Ошибок нет, но вместо номенклатуры вставляет "структура"))
То есть запрос не работает. Что не так? подскажите пожалуйста!
Спасибо!
   asady
 
1 - 25.11.21 - 23:08
(0)
Запрос.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
        |    РеализацияТоваровУслуг.Номенклатура КАК Номенклатура
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
        |ГДЕ
        |    РеализацияТоваровУслуг.Ссылка = &Ссылка";
   acht
 
2 - 25.11.21 - 23:08
(0)  
> Список = Новый Структура;
> ...
> Список.Вставить("Номенклатура"); 
> ...
> Возврат Список; 
> ...
> РеквизитыМакета.Вставить("Пункт3_1", СформироватьДопДанные(СсылкаНаОбъект)); 

Запрос работает. Код делает ровно то, что написано.
Продумайте, пожалуйста, как вы собираетесь упихать несколько значений номекладуры документа в одно значение параметра.
   Ёпрст
 
3 - 25.11.21 - 23:24
(0) где обход вложенного результата с номенклатурой?
+ Нелепое список.вставить
   steeshiy
 
4 - 26.11.21 - 07:49
(1) "Продумайте, пожалуйста, как вы собираетесь упихать несколько значений номекладуры документа в одно значение параметра.": думал... Но в конкретном примере значение
номенклатуры только одно. Я пробовал и дату так же подставить, уж дата-то точно одна в документе)) результат тот же.
Пока хочу, что б в принципе заработало правильно...
   acht
 
5 - 26.11.21 - 09:14
(4) Если это результат предложания продумать, то вам, наверно, лучше пригласить для этой задачи кого-то более опытного. Если эта идея вам не нравится - прослушайте, пожалуйста курсы, почитайте учебники, поднимите свой уровень. Вы пока не понимаете базовых механизмов, не поймете как работает то, что вам предложат, будете прибегать сюда за каждой новой буквой.
   Ёпрст
 
6 - 26.11.21 - 11:00
(4) дарю, развлекайся:


Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
   
    ВыборкаНоменклатура = Выборка.Товар.Выбрать();
    Пока ВыборкаНоменклатура.Следующий() Цикл
         Сообщить(ВыборкаНоменклатура.Номенклатура);
    КонецЦикла;
КонецЦикла

   Ёпрст
 
7 - 26.11.21 - 11:00
+6*
ВыборкаНоменклатура = Выборка.ТоварЫ.Выбрать();

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.