|
Подключаемая команда. Передача параметров. | ☑ | ||
---|---|---|---|---|
0
Shalun
24.12.22
✎
14:04
|
Всем привет! Задача простая, нужно из документа "ПоступлениеБДС" открыть отчет "расчеты с клиентами".
В модуле менеджера Документа прописываю: Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) КомандаОтчет = КомандыОтчетов.Добавить(); КомандаОтчет.Менеджер = Метаданные.Отчеты.РасчетыСКлиентами.ПолноеИмя(); КомандаОтчет.Представление = НСтр("ru = 'Расчеты с клиентами'"); КомандаОтчет.МножественныйВыбор = Истина; КомандаОтчет.Важность = "Обычное"; КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "СостояниеРасчетовСКлиентомПоДокументам"); КомандаОтчет.КлючВарианта = "РасчетыСКлиентами"; КонецПроцедуры Да, команда появляется, при нажатии открывается нужный отчет, НО по всем документам! А мне нужно, что бы отчет открылся конкретно по этому документу. Полагаю что в отбор нужно вставить ссылку на этот документ, или реквизит, но вот на каком этапе, как это сделать, что то мозгов не хватает. Видим в предверии НГ не сображают. :-) Если есть кто живой, подскажите, как передать параметр отбора в данном случае? Заранее благодарствую и всех с наступающими праздниками! |
|||
1
asady
24.12.22
✎
14:50
|
(0) что-то типа
КомандаОтчет.ДополнительныеПараметры.Вставить("Отбор", Новый Структура("ИмяДокумента","ПоступлениеБДС")); |
|||
2
eddy_n
25.12.22
✎
03:46
|
В модуле Объекта твоего отчёта придётся рисовать экспортную процедуру ПриСозданииНаСервере, которая будет ловить указанное тобою в ДополнительныхПараметрах ИмяКоманды и в соответствии с этим именем назначать отбор:
ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт Параметры = ЭтаФорма.Параметры; Если Параметры.Свойство("ПараметрКоманды") И Параметры.ОписаниеКоманды.Свойство("ДополнительныеПараметры") Тогда Если Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "СостояниеРасчетовСКлиентомПоДокументам" Тогда ЭтаФорма.ФормаПараметры.Отбор.Вставить("Ссылка", Параметры.ПараметрКоманды); КонецЕсли; Конецесли; КонецПроцедуры |
|||
3
Shalun
10.01.23
✎
15:53
|
(1) Я так понял это в модуль менеджера вставляется? И по идее, в структуре должна содержаться сссылка на документ? Опять не понятно, т.к. этот модуль вызывается как из формы документа так и из списка. Механизм получения ссылок разный. Тогда как Быть?
(2) Да, такая процедура имеется, но она почему то не выполняется. :-( Может из за того что отчет построен на СКД? |
|||
4
eddy_n
11.01.23
✎
13:12
|
(3) Процедура не выполняется, потому что у тебя нет статической формы объекта.
|
|||
5
Shalun
11.01.23
✎
16:09
|
Нашел! Порцедура ПриСозданииНаСервере выполняется в общей форме "ФормаОтчета".
В этой процедуре я пишу следующий код: Если Параметры.Свойство("ПараметрКоманды") И Параметры.ОписаниеКоманды.ДополнительныеПараметры.ИмяКоманды = "СостояниеРасчетовСКлиентомПоДокументам" Тогда Для каждого СтрокаПараметр Из Параметры.ПараметрКоманды Цикл Параметры.Отбор.Вставить("Организация", СтрокаПараметр.Организация); Параметры.Отбор.Вставить("Контрагент", СтрокаПараметр.Контрагнт); КонецЦикла; КонецЕсли; Теперь все работает! :-) Всем спасибо за помощь!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |