Подключить внешний отчет к конкретному типовому документу
Нужно новый отчет подключить к заказу поставщика в ЕРП.
Вроде вопрос популярный, и делаю я следующим образом:
в ДобавитьКомандыОтчетов в модуле менеджера добавляю свой отчет (сначала для теста включил его в конфигурацию)
Но не пойму, как передать параметры из конкретного заказа?
чтобы открывался с отбором по контрагенту и списку номенклатуры
Вроде вопрос популярный, и делаю я следующим образом:
в ДобавитьКомандыОтчетов в модуле менеджера добавляю свой отчет (сначала для теста включил его в конфигурацию)
КомандаОтчет = Отчеты.ОтчетОтчет.ДобавитьКомандуОтчета(КомандыОтчетов);
Если КомандаОтчет <> Неопределено Тогда
КомандаОтчет.ВидимостьВФормах = "ФормаДокумента,СписокДокументов";
КонецЕсли;
Но не пойму, как передать параметры из конкретного заказа?
чтобы открывался с отбором по контрагенту и списку номенклатуры
По теме из базы знаний
- Автоматическое заполнение статистической формы учета перемещения товаров при ЭКСПОРТЕ (ФТС) в государства ЕАЭС (Беларусь, Казахстан, Армения и Кыргызская Республика)
- Загрузка чеков из ФНС в документы 1С:БП, УНФ, ERP, КА и УТ
- Отчет "Полный анализ себестоимости выпущенной продукции" для 1С:ERP (ЕРП), 1С:КА, 1С:ERP УХ
- Примеры внедрения узконаправленных инструментов анализа данных и подготовки отчетов
- Отчет «Совместно продаваемые товары» для 1С:УТ 11.5
Найденные решения
(1)
Функция СведенияОВнешнейОбработке() Экспорт
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();
ПараметрыРегистрации.Версия = Формат(ТекущаяДата(), "ДФ=гггг.ММ.дд");
ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказПоставщику");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.Идентификатор = Метаданные().Имя;
НоваяКоманда.Представление = Метаданные().Синоним;
Возврат ПараметрыРегистрации;
КонецФункции
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.ФормироватьСразу = Истина;
Настройки.События.ПередЗагрузкойВариантаНаСервере = Истина;
КонецПроцедуры
Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
Если Форма.Параметры.Свойство("ОбъектыНазначения") Тогда
НовыеНастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("МассивСсылок", Форма.Параметры.ОбъектыНазначения);
КонецЕсли;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Функция СведенияОВнешнейОбработке() Экспорт
Документ = "Документ.ТвойДокумент"; // Необходимо заполнить имя объекта для которого предназначена печ. форма (Пример: "Документ.РеализацияТоваровУслуг")
ИмяПечатнойФормы = "Сюда название"; // Необходимо заполнить - имя команды (Пример: "Акт")
Идентификатор = ИмяПечатнойФормы; // Можно не заполнять - если указать идентификатор типовой печатной формы, будет выполнена подмена.
// Идентификатор типовой формы можно узнать в модуле менеджера соответствующего документа.
Версия = "1.0"; // Можно не заполнять - информация для справочника внешних обработок
Экземпляров = 1; // Значение по умолчания
//////////////////////////////////////////////////////////
Использование = "ВызовКлиентскогоМетода";
РегистрационныеДанные = Новый Структура();
РегистрационныеДанные.Вставить("Наименование",ИмяПечатнойФормы);
РегистрационныеДанные.Вставить("Информация",ИмяПечатнойФормы);
РегистрационныеДанные.Вставить("Версия",Версия);
РегистрационныеДанные.Вставить("Экземпляров",Экземпляров);
РегистрационныеДанные.Вставить("Вид","ПечатнаяФорма");
РегистрационныеДанные.Вставить("БезопасныйРежим",Истина);
//РегистрационныеДанные.Вставить("БезопасныйРежим",Ложь);
мНазначения = Новый Массив;
мНазначения.Добавить(Документ);
РегистрационныеДанные.Вставить("Назначение",мНазначения);
Показать
(1)
Функция СведенияОВнешнейОбработке() Экспорт
ВерсияБСП = СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(ВерсияБСП);
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиОтчет();
ПараметрыРегистрации.Версия = Формат(ТекущаяДата(), "ДФ=гггг.ММ.дд");
ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказПоставщику");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.Идентификатор = Метаданные().Имя;
НоваяКоманда.Представление = Метаданные().Синоним;
Возврат ПараметрыРегистрации;
КонецФункции
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.ФормироватьСразу = Истина;
Настройки.События.ПередЗагрузкойВариантаНаСервере = Истина;
КонецПроцедуры
Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
Если Форма.Параметры.Свойство("ОбъектыНазначения") Тогда
НовыеНастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("МассивСсылок", Форма.Параметры.ОбъектыНазначения);
КонецЕсли;
КонецПроцедуры
Показать
(11) Список номенклатуры и всё остальное по документу вы берете из запроса. В запросе указываете параметр – например, МассивСсылок.
Прикрепленные файлы:
ПримерОтчетERP.erf
Не знаю как для Вашего случая, но я делал так. В отчете добавил реквизит ЗаказКлиента. Далее в событии формы отчета ПриСозданииНаСервере такой код
И далее уже использую этот реквизит в модуле Объекта процедуре ПриКомпоновкиРезультата
Если Параметры.Свойство(«ПараметрыКоманды») Тогда
Отчет.ЗаказКлиента = Параметры.ПараметрыКоманды[0]
КонецЕсли;
И далее уже использую этот реквизит в модуле Объекта процедуре ПриКомпоновкиРезультата
Документы в ЕРП используют БСП. Самодельные отчеты, как правило, не подключают к подсистемам. По крайней мере, редкие единицы это делают.
Делается это через параметризуемую команду.
Я бы подключил самодельный отчет к подсистеме "Варианты отчетов" и использовал его возможности.
Подробно повторять не буду - есть на сайте описание. Там описано два варианта добавления команд, идет по порядку. В описании команды есть поле "Дополнительно" куда можно запихнуть все, что угодно, что потом передастся в обработчик команды.
П.С. Не увидел, что вопрос про внешние отчеты.
Делается это через параметризуемую команду.
Я бы подключил самодельный отчет к подсистеме "Варианты отчетов" и использовал его возможности.
Подробно повторять не буду - есть на сайте описание. Там описано два варианта добавления команд, идет по порядку. В описании команды есть поле "Дополнительно" куда можно запихнуть все, что угодно, что потом передастся в обработчик команды.
П.С. Не увидел, что вопрос про внешние отчеты.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот