|
Передача параметров в СКД | ☑ | ||
---|---|---|---|---|
0
AlexWinch
12.12.23
✎
16:57
|
Всем привет! Может кто поможет.
Ситуация такая, требуется сделать внешний отчёт для 6 шести документов, добавляю через доп отчеты и обработки. В сведениях обработки все прописал и отчёт видно в панели в каждом документе. В скд прописал отчёт и проверил в консоли запросов и все работает, но у меня там параметр указывается а именно сам документ по которому делается отчёт. В консоли запросов я этот параметр вручную указывают соответственно. Как сделать так, чтобы параметр автоматически передавался в скд именно того документа по которому делаю отчёт? Заранее спасибо 🙏 |
|||
1
Donkey_hot
12.12.23
✎
17:14
|
(0) для назначаемых отчетов и обработок – в форме обработки добавить параметр ОбъектыНазначения типа Произвольный. В этот параметр передается массив ссылок на объекты, для которых выполняется дополнительная обработка.
|
|||
2
AlexWinch
12.12.23
✎
17:20
|
Еще создал реквизит обработки ДокументСсылка и в модуле формы прописываю такой код:
&НаСервере Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Отчет.ДокументСсылка = Параметры.ОбъектыНазначения[0]; //Документы.ЗаказПоставщику.НайтиПоНомеру("00-000040");Параметры.ОбъектыНазначения[0]; КонецПроцедуры Потом в модуле объекта прописываю такое: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Настройки = КомпоновщикНастроек.Настройки; ПараметрСсылка = Настройки.ПараметрыДанных.Элементы.Найти("Ссылка"); ПараметрСсылка.Значение = ЭтотОбъект.ДокументСсылка; ПараметрСсылка.Использование = Истина; СхемаКомпоновки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки,НастройкиКомпоновки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры Но ничего не работает |
|||
3
AlexeyKh
12.12.23
✎
17:29
|
остается только под отладчиком проходить
|
|||
4
Монтгомери Бёрнс
12.12.23
✎
17:55
|
&НаСервере
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Отчет.ДокументСсылка = Параметры.ОбъектыНазначения[0]; //Документы.ЗаказПоставщику.НайтиПоНомеру("00-000040");Параметры.ОбъектыНазначения[0]; КонецПроцедуры Вот в этом надо перво наперво проверить - а прилетает ли параметр в форму, а если он прилетает, есть ли в параметре необходимые данные. И похоже что в - Параметры.ОбъектыНазначения[0] - ничего нет. |
|||
5
toypaul
13.12.23
✎
07:35
|
Если конфигурация типовая (на БСП), то у отчета есть события. В событиях (обычно при создании) передают этот параметр. Можно посмотреть в одном из типовых отчетов. Там обычно добавляют специальный вариант отчета (что-то про Контекст) ну и в модуле отчета должно быть событие ПриСозданииНаСервере
|
|||
6
Радим1987
13.12.23
✎
11:24
|
Если не ошибаюсь то в модуле отчета должна быть процедура
ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыКоманды) Экспорт.... А внутри после установки параметров СкомпоноватьРезультат() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |