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