Имя: Пароль:
1C
 
Добавить внешний отчет в документ
0 ArturDoo
 
07.09.22
20:26
Добрый вечер. Хочу добавить внешний отчет в документ, в меню отчеты. Подскажите, что я не так заполнил в сведениях о внешней обработке, и можно ли заполнить параметр отчета при его открытии из документа?
Код модуля отчета:
Функция СведенияОВнешнейОбработке() Экспорт
    
    ИмяОтчета = ЭтотОбъект.Метаданные().Имя;
    Синоним = ЭтотОбъект.Метаданные().Синоним;
    Синоним = ?(ЗначениеЗаполнено(Синоним),Синоним, ИмяОтчета);
    
    МассивНазначений = Новый Массив();
    МассивНазначений.Добавить("Документ.ЗаказПоставщику");
    
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Вид","Отчет");
    РегистрационныеДанные.Вставить("Назначение",МассивНазначений);
    РегистрационныеДанные.Вставить("Наименование", Синоним);
    РегистрационныеДанные.Вставить("Версия", "1.0");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
    РегистрационныеДанные.Вставить("Информация", "Отчет """ + Синоним + """");
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, Синоним, "СформироватьОтчет" , "ОткрытиеФормы", Истина, );
        
    РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);
    
    Возврат РегистрационныеДанные;
                                      
КонецФункции

#КонецОбласти

#Область ОбработчикиСобытий

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

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

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

Процедура ДобавитьКоманду(ТаблицаКоманд,
                          Представление,
                          Идентификатор,
                          Использование = "ОткрытиеФормы",
                          ПоказыватьОповещение = Ложь,
                          Модификатор = "ПечатьMXL")
    
    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    //НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры
1 DrZombi
 
гуру
08.09.22
08:23
(0) >>>> РегистрационныеДанные.Вставить("Вид","Отчет");

Увы, вам надо печатать, или отчеты выводить?



>>>  можно ли заполнить параметр отчета при его открытии из документа?

К примеру, в БСП можно перед печатью, открывать форму обработки.
  В момент открытия формы, можно выполнить все что угодно, хоть вызвать другую внешнюю обработку и выполнить ее код.

Все в ваших руках :)
2 DrZombi
 
гуру
08.09.22
08:25
+ (0) Для формирования отчета на базе СКД, не нужна обработка.
Макет самого отчета можно разместить в обработке :)

https://programmist1s.ru/programmnoe-formirovanie-otcheta-na-skd-v-1s/
3 ArturDoo
 
08.09.22
09:56
(1) Нужно отчет вывести, из вкладки отчеты, в документе Заказ поставщику