|
Программное открытие отчёта с заполнением параметров. | ☑ | ||
|---|---|---|---|---|
|
0
РыбаАист
19.02.26
✎
10:50
|
Добрый день. Хочу, чтоб отчёт открывался по кнопке.
Сделал общую команду, запихнул куда мне надо, а в команде такой код. ДокДата = ПолучитьДату(ПараметрКоманды); ФормаОтчета = ПолучитьФорму("Отчет.АРС_МойОтчет.ФормаОбъекта"); КомпоновщикНастроек = ФормаОтчета.Отчет.КомпоновщикНастроек; УстановитьОтборСКД(КомпоновщикНастроек, "СдельныйНаряд", ПараметрКоманды); СтПериод = Новый СтандартныйПериод(НачалоМесяца(ДокДата), КонецМесяца(ДокДата)); КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период_", СтПериод); ФормаОтчета.СкомпоноватьРезультат(); ФормаОтчета.Открыть(); И вот отбор (на сдельныйНаряд) работает, а вот параметр Период_ ни в какую не заполняется. Отчёт открывается либо вообще без периода, либо период заполняется последний запомненный в этом отчете. И подозреваю что какие-то запомненные настройки как раз и перекрывают мой параметр при открытии отчёта, но не могу разобраться, где и в каком месте. |
|||
|
1
toypaul
гуру
19.02.26
✎
11:10
|
Не уверен, что с отчетом сработает, но можно попробовать передать все через параметр "Отбор" в параметрах формы. Но только в том случае когда отборы на "равно" (одно значение) или "в списке".
Либо передавать через параметры формы сформированные "ПользовательскиеНастройки". |
|||
|
2
toypaul
гуру
19.02.26
✎
11:12
|
||||
|
3
РыбаАист
19.02.26
✎
11:13
|
(1) Не, если пытаться передать через отбор, он там параметр не находит. Пишет, что поля "период_" нет, что очевидно. Это ведь не поле, чтоб отбор по нему делать.
Второе попробую. |
|||
|
4
РыбаАист
19.02.26
✎
14:32
|
Вопрос всё ещё актуален.
|
|||
|
5
Мультук
гуру
19.02.26
✎
14:36
|
(0)
Поставить в отладчике две точки остановки на строках КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период_", СтПериод);
ФормаОтчета.СкомпоноватьРезультат(); и посмотреть (и нам показать), список из КомпоновщикНастроек.Настройки.ПараметрыДанных с именами, типами и значениями ? До установки параметра и после ? |
|||
|
6
arsik
гуру
19.02.26
✎
14:41
|
(0) БСП в конфигурации есть? Если есть то примерно так
Отбор = Новый Структура;
Отбор.Вставить("Контрагент", Контрагент);
Отбор.Вставить("ДоговорВзаиморасчетов", ДоговорВзаиморасчетов);
ОтчетыПлатформаКлиент.ОткрытьОтчет("Отчет.ВзаиморасчетыСКонтрагентом", "ВзаиморасчетыКомпании",,,, Отбор, ДатаНачалаОтчета, ДатаКонцаОтчета);
|
|||
|
7
Мультук
гуру
19.02.26
✎
14:44
|
(6)
Я думаю, что БСП не в курсе про параметр "Период_" Впрочем, возможно, я чего-то не знаю. |
|||
|
8
РыбаАист
19.02.26
✎
14:49
|
(5)
До https://disk.yandex.ru/i/6oyCc7UTn97Q0w после https://disk.yandex.ru/i/cZDX9TF9xtoB1g НачалоПериода и КонецПериода проставлять отдельно от периода тоже пробовал если что.
|
|||
|
9
РыбаАист
19.02.26
✎
15:10
|
Ладно, пользовательские настройки потрогать всё же помогло.
Заменил: КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период_", СтПериод); на: ПараметрКД = Новый ПараметрКомпоновкиДанных("Период_"); ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКД); ЗначениеПараметра.Значение = СтПериод; ЗначениеПараметра.Использование = Истина; Если ЗначениеЗаполнено(ЗначениеПараметра.ИдентификаторПользовательскойНастройки) Тогда ПользовательскийПараметр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЗначениеПараметра.ИдентификаторПользовательскойНастройки); Если ТипЗнч(ПользовательскийПараметр) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда ПользовательскийПараметр.Значение = ЗначениеПараметра.Значение; ПользовательскийПараметр.использование = истина КонецЕсли; КонецЕсли; |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |