1С СКД как передать параметры отчёта в расшифровку?

1. eLeMeNtaLe 28.08.20 12:07 Сейчас в теме
Всем добрый день.
Есть внешний отчет, обычное приложение. Параметры отчета заполняются на форме (Скрин 1) и передаются в СКД программно (Скрины 2). При формировании расшифровки отчёт не формируется, т.к. в расшифровку не передаются заполненные параметры в форме отчёта. Как передать параметры в расшифровку?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dandykry 11 28.08.20 12:58 Сейчас в теме
(1) Покажите код формирования отчета. Что-то идет не так
4. eLeMeNtaLe 28.08.20 13:01 Сейчас в теме
(2)Кода формирования отчета нет, всё через СКД.
Если удаляю форму объекта, и она формируется программно, то всё работает, но тогда приходится для заполнения параметров лезть в настройки.
7. dandykry 11 28.08.20 15:21 Сейчас в теме
(4)
передаются в СКД программно
- вот это интересует.
Я просто не понимаю куда вы их потом засовываете.
Настройки = КомпановщикНастроек.ПолучитьНастройки();
Настройки.параметры..............

Сюда?
8. eLeMeNtaLe 28.08.20 16:06 Сейчас в теме
(7)Код написанный ручками весь на скрине, этого достаточно чтоб отчёт сформировался правильно, остальное делает СКД. Не формируется расшифровка, не берёт параметры из первоначального отчёта.
3. BackinSoda 28.08.20 13:01 Сейчас в теме
(1) По идее параметры передаются по умолчанию.
Если программно свою расшифровку делать, то может эта ссылка поможет.
5. starik-2005 3088 28.08.20 13:12 Сейчас в теме
А зачем вообще параметры? Они в прекрасно визуализируются в форме отчета, если в настройке варианта указать нужные слова и выражения.
6. eLeMeNtaLe 28.08.20 14:37 Сейчас в теме
(5)Не понял о чём вы. Можно поподробней?
9. starik-2005 3088 28.08.20 17:22 Сейчас в теме
(6) в старых неуправляемых формах на форму отчета можно добавить таблицу, в данных указать путь к пользовательским настройкам, в параметрах сделать один параметр с типом "период", в параметры начала и окончания периода прописать &Период.ДатаНачала и ДатаКонца (подробнее к справке 1С - я не запоминаю детали), в параметре "период" сделать видимость в пользовательских настройках. В итоге при открытии формы будет одна строчка с параметром "Период" и возможностью внести туда любые данные.

С другой стороны, можно проверять, есть ли данные расшифровки при компоновке результата и не помещать туда параметры - они там и так должны быть.

Да, на старых никчемных формах все это сложно. На управляемых формах просто создаешь вариант, добавляешь туда параметры и прочие элементы и они сами отрисуются на форме.

Про период писал тут: https://infostart.ru/1c/articles/372132/
10. eLeMeNtaLe 28.08.20 17:33 Сейчас в теме
(9)Да, этот способ я знаю. Но нашим пользователям, как и мне, не очень нравится таблица параметров на форме. По этому и пытался изобразить нечто схожее с управляемым приложением. ))
11. Bas_ERP_UX 01.11.21 09:09 Сейчас в теме
Проблема была та же: два поля на форме Сценарий и Период, при открытии расшифровки не заполненные поля на форме не позволяли сформировать отчет, пока по новому не заполнить.
Решение:
- Создал два параметра на форме: Параметр1 (тип Сценарий) и Параметр2 (тип Период)
-
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Если ЗначениеЗаполнено(Параметры.Параметр1) Тогда
		Отчет.Сценарий = Параметры.Параметр1;
	КонецЕсли;
	Если ЗначениеЗаполнено(Параметры.Параметр2) Тогда 
		Отчет.ПериодПланирования = Параметры.Параметр2;
	КонецЕсли;
КонецПроцедуры
Показать

- на Форме в Реквизите Результат

&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
	СтандартнаяОбработка = Ложь;
        Оп = Новый ОписаниеОповещения("РезультатОбработкаРасшифровки_Продолжение", ЭтаФорма, Расшифровка);
	ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет));
    ОбработкаРасшифровки.ПоказатьВыборДействия(Оп, Расшифровка);
КонецПроцедуры


- и Обработка Оповещения
&НаКлиенте
Процедура РезультатОбработкаРасшифровки_Продолжение(ВыполненноеДействие, ПараметрВыполненногоДействия, ДополнительныеПараметры) Экспорт
	Если ВыполненноеДействие <> ДействиеОбработкиРасшифровкиКомпоновкиДанных.Нет Тогда
		Парам = Новый Структура;
		Парам.Вставить("Параметр1", Отчет.Сценарий);
		Парам.Вставить("Параметр2", Отчет.ПериодПланирования);
		Парам.Вставить("СформироватьПриОткрытии", Истина);
		Парам.Вставить("Расшифровка", Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, ДополнительныеПараметры, ПараметрВыполненногоДействия));
		ОткрытьФорму("Отчет.МойОтчет.Форма", Парам, , Истина);
	КонецЕсли;	
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот