Имя: Пароль:
1C
1С v8
Помогите вывести данные из табличной части в макет в качестве нестандартной расшифровки.
0 klever_RUZX
 
30.03.22
16:54
Проблема вот в чем мне необходимо сделать отчет через конструктор запрос с обработкой результата, все почти выводится, но только при открытии расшифровки выходит ошибка переменная не определена РСконтрагента, сразу скажу с кодом я на вы.
&НаКлиенте
Процедура Печать(Команда)
    ТабДок = ПечатьОтчета();
КонецПроцедуры              
Функция ПечатьОтчета()
                           
    Макет = Отчеты.Отчет1.ПолучитьМакет("Макет1");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Контрагенты.НаименованиеКонт КАК НаименованиеКонт,
        |    Контрагенты.ТипКонтрагента КАК ТипКонтрагента,
        |    Контрагенты.ОсновнойРС КАК ОсновнойРС,
        |    Контрагенты.АдресКонтрагента КАК АдресКонтрагента
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    
    Таб=Новый ТабличныйДокумент();

    Таб.Очистить();
    Таб.Вывести(ОбластьЗаголовок);
    Таб.Вывести(ОбластьШапкаТаблицы);
    Таб.НачатьАвтогруппировкуСтрок();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        
        Таб.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    КонецЦикла;
    
    Таб.ЗакончитьАвтогруппировкуСтрок();
    Таб.Вывести(ОбластьПодвалТаблицы);
    Таб.Вывести(ОбластьПодвал);
    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    Возврат Таб;
    КонецФункции


&НаКлиенте
    Процедура ТабДокОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
     СтандартнаяОбработка=ложь;
НаименованиеКонт=Расшифровка;
ТабСчетов=Новый ТабличныйДокумент();
ТабСчетов=ВыполнитьРасшифровку(НаименованиеКонт);
ТабСчетов.ТолькоПросмотр=Истина;
ТабСчетов.Показать("");
    КонецПроцедуры

Функция ВыполнитьРасшифровку(НаименованиеКонт)
ТабСчетов=Новый ТабличныйДокумент();
МакетСчетов= Справочники.Контрагенты.ПолучитьМакет("Макетсчетов") ;
Область = МакетСчетов.ПолучитьОбласть("Шапка");
Область.Параметры.НаименованиеКонт=НаименованиеКонт;
ТабСчетов.Вывести(Область);

Для каждого Стр из НаименованиеКонт.РСконтрагента Цикл
Область = МакетСчетов.ПолучитьОбласть("Строка");
Область.Параметры.НаименованиеРС=Стр.НаименованиеРС;
Область.Параметры.Банк=Стр.Банк;
Область.Параметры.ВалютаРасчета=Стр.ВалютаРасчета;
Область.Параметры.АдресБанка=Стр.АдресБанка;
ТабСчетов.Вывести(Область);
КонецЦикла;
Возврат ТабСчетов;
КонецФункции
1 ololoraise
 
30.03.22
16:57
В ячейке ПараметрРасшифровки указан?
2 Amra
 
30.03.22
16:58
У тебя в НаименованиеКонт не ссылка  на контрагента, а строка
3 klever_RUZX
 
30.03.22
17:06
А как ее объявить ссылкой, не доходит просто
4 Лирик
 
30.03.22
18:05
В запросе добавь поле "Контрагенты.Ссылка Как КонтрагентСсылка"
В ячейке макета куда выводится контрагент в параметр расшифровки укажи "КонтрагентСсылка";
5 klever_RUZX
 
30.03.22
21:14
(4) Спасибо, огромное помогли!!!