Имя: Пароль:
1C
1С v8
Перенос параметров между вариантами отчета
0 Kurosawa45yo
 
30.09.25
13:11
Вводные - свой отчет на БСПшной форме, есть подключаемая команда в общем клиентском модуле, которая должна менять вариант отчета. По минимуму работает через ФормаОтчета.УстановитьТекущийВариант(КлючНовогоВарианта);

Но хотелось бы, хотя бы значения параметров, перетащить в новый вариант.

Накидал примерно вот такое :
ПредыдущиеНастройки = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки;    ФормаОтчета.УстановитьТекущийВариант(КлючНовогоВарианта);
    
ТекущиеНастройки = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки;
Для Каждого СохраненнаяНастройка Из ПредыдущиеНастройки.ПараметрыДанных.Элементы Цикл
Параметр = ТекущиеНастройки.ПараметрыДанных.Элементы.Найти(СохраненнаяНастройка.Параметр);
Если Параметр <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Параметр, СохраненнаяНастройка);
КонецЕсли;
КонецЦикла;
    
ФормаОтчета.СкомпоноватьРезультат();

Но оно работает некорректно, значения параметров подставляются из текущего варианта, но не те что в шапке, а те что "сохраненные" (если задать параметры, перезайти в отчет, тогда второй вариант открывается правильно, а если просто поменять в шапке первого параметры, то второй вариант откроется так будто их не меняли)

Как сделать лучше?
1 Волшебник
 
30.09.25
13:12
Будет лучше, если добавите лесенку в программный код
2 Мультук
 
гуру
30.09.25
13:21
(0)
В этом варианте "ПредыдущиеНастройки", как и "ТекущиеНастройки" смотрят в одни и те же данные.
ПредыдущиеНастройки = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки;    
ФормаОтчета.УстановитьТекущийВариант(КлючНовогоВарианта);
ТекущиеНастройки = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки;


Наверное, всё же вот так

ПредыдущиеНастройки = ФормаОтчета.Отчет.КомпоновщикНастроек.ПолучитьНастройки(); //Получаем копию настроек    
ФормаОтчета.УстановитьТекущийВариант(КлючНовогоВарианта); //Настройки поменялись
ТекущиеНастройки = ФормаОтчета.Отчет.КомпоновщикНастроек.Настройки;