Подключить внешний отчет к конкретному типовому документу

1. vechiy 35 18.03.25 18:02 Сейчас в теме
Нужно новый отчет подключить к заказу поставщика в ЕРП.
Вроде вопрос популярный, и делаю я следующим образом:

в ДобавитьКомандыОтчетов в модуле менеджера добавляю свой отчет (сначала для теста включил его в конфигурацию)



КомандаОтчет = Отчеты.ОтчетОтчет.ДобавитьКомандуОтчета(КомандыОтчетов);
	Если КомандаОтчет <> Неопределено Тогда
		КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
	КонецЕсли;


Но не пойму, как передать параметры из конкретного заказа?
чтобы открывался с отбором по контрагенту и списку номенклатуры
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
6. SlavaKron 19.03.25 13:39 Сейчас в теме +0.5 $m
(1)
Функция СведенияОВнешнейОбработке() Экспорт
	
	ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();
	ПараметрыРегистрации.Версия = Формат(ТекущаяДата(), "ДФ=гггг.ММ.дд");
	ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказПоставщику");

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

Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.ФормироватьСразу = Истина;
	Настройки.События.ПередЗагрузкойВариантаНаСервере = Истина;
КонецПроцедуры


Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
	Если Форма.Параметры.Свойство("ОбъектыНазначения") Тогда
		НовыеНастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("МассивСсылок", Форма.Параметры.ОбъектыНазначения);
	КонецЕсли;
КонецПроцедуры
Показать
Anchoret; vechiy; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. user-z99999 78 19.03.25 12:37 Сейчас в теме
(1)
Функция СведенияОВнешнейОбработке() Экспорт
	
	Документ = "Документ.ТвойДокумент";                   // Необходимо заполнить имя объекта для которого предназначена печ. форма (Пример: "Документ.РеализацияТоваровУслуг")
	ИмяПечатнойФормы = "Сюда название";                              // Необходимо заполнить - имя команды (Пример: "Акт")
	Идентификатор = ИмяПечатнойФормы;                               // Можно не заполнять - если указать идентификатор типовой печатной формы, будет выполнена подмена.
																	//                      Идентификатор типовой формы можно узнать в модуле менеджера соответствующего документа.
																	
	Версия = "1.0";												    // Можно не заполнять - информация для справочника внешних обработок
	Экземпляров = 1;                                                // Значение по умолчания
	
	//////////////////////////////////////////////////////////
	

	Использование = "ВызовКлиентскогоМетода";
	
	РегистрационныеДанные = Новый Структура();
	РегистрационныеДанные.Вставить("Наименование",ИмяПечатнойФормы);         
	РегистрационныеДанные.Вставить("Информация",ИмяПечатнойФормы);           
	РегистрационныеДанные.Вставить("Версия",Версия);                         
	РегистрационныеДанные.Вставить("Экземпляров",Экземпляров);         
	
	РегистрационныеДанные.Вставить("Вид","ПечатнаяФорма");
	РегистрационныеДанные.Вставить("БезопасныйРежим",Истина);
	//РегистрационныеДанные.Вставить("БезопасныйРежим",Ложь);
	
	мНазначения = Новый Массив;
	мНазначения.Добавить(Документ);                        
	РегистрационныеДанные.Вставить("Назначение",мНазначения);   
Показать
6. SlavaKron 19.03.25 13:39 Сейчас в теме +0.5 $m
(1)
Функция СведенияОВнешнейОбработке() Экспорт
	
	ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();
	ПараметрыРегистрации.Версия = Формат(ТекущаяДата(), "ДФ=гггг.ММ.дд");
	ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказПоставщику");

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

Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.ФормироватьСразу = Истина;
	Настройки.События.ПередЗагрузкойВариантаНаСервере = Истина;
КонецПроцедуры


Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
	Если Форма.Параметры.Свойство("ОбъектыНазначения") Тогда
		НовыеНастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("МассивСсылок", Форма.Параметры.ОбъектыНазначения);
	КонецЕсли;
КонецПроцедуры
Показать
Anchoret; vechiy; +2 Ответить
7. vechiy 35 24.03.25 12:47 Сейчас в теме
(6) спасибо, отлично. подскажите только ещё как передать параметры с документа в отчет?
8. SlavaKron 24.03.25 12:53 Сейчас в теме
(7) В процедуре ПередЗагрузкойВариантаНаСервере происходит передача ссылок на документы (Форма.Параметры.ОбъектыНазначения) в настройки компоновки данных. В моём примере это параметр "МассивСсылок".
9. vechiy 35 24.03.25 14:14 Сейчас в теме
(8) ошибка при формировании возникает
Прикрепленные файлы:
10. SlavaKron 24.03.25 14:21 Сейчас в теме
(9) "МассивСсылок" - это мой параметр компоновки данных для примера. Вам надо использовать имя своего параметра.
11. vechiy 35 24.03.25 16:09 Сейчас в теме
(10) не понимаю.
мне нужно передать список номенклатуры и контрагента из заказа в отчет, это можно сделать?
описать сначала параметры в скд?
12. SlavaKron 25.03.25 14:28 Сейчас в теме
(11) Список номенклатуры и всё остальное по документу вы берете из запроса. В запросе указываете параметр – например, МассивСсылок.
Прикрепленные файлы:
ПримерОтчетERP.erf
2. vadim1011985 103 18.03.25 18:39 Сейчас в теме
Не знаю как для Вашего случая, но я делал так. В отчете добавил реквизит ЗаказКлиента. Далее в событии формы отчета ПриСозданииНаСервере такой код

Если Параметры.Свойство(«ПараметрыКоманды») Тогда

Отчет.ЗаказКлиента = Параметры.ПараметрыКоманды[0]

КонецЕсли; 


И далее уже использую этот реквизит в модуле Объекта процедуре ПриКомпоновкиРезультата
3. vechiy 35 19.03.25 09:30 Сейчас в теме
а как эти параметры передать из самого заказа?
4. erazh 19.03.25 12:30 Сейчас в теме
Документы в ЕРП используют БСП. Самодельные отчеты, как правило, не подключают к подсистемам. По крайней мере, редкие единицы это делают.
Делается это через параметризуемую команду.
Я бы подключил самодельный отчет к подсистеме "Варианты отчетов" и использовал его возможности.
Подробно повторять не буду - есть на сайте описание. Там описано два варианта добавления команд, идет по порядку. В описании команды есть поле "Дополнительно" куда можно запихнуть все, что угодно, что потом передастся в обработчик команды.

П.С. Не увидел, что вопрос про внешние отчеты.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот