Имя: Пароль:
1C
1С v8
программно передать период отчета в пользовательские настройки
,
0 Новый1сник2
 
06.06.23
12:15
Добрый день!

программно формирую не типовой отчет на СКД, как программно передать период в пользовательские настройки?
1 Новый1сник2
 
06.06.23
12:16
+ Бухгалтерия 3.0
2 azernot
 
06.06.23
12:41
Что-то типа такого:

    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
    Если Параметр <> Неопределено Тогда
        Параметр.Значение = МоёЗначениеНачалоПериода;
        Параметр.Использование = Истина;
    КонецЕсли;
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("КонецПериода");
    Если Параметр <> Неопределено Тогда
        Параметр.Значение = МоёЗначениеКонецПериода;
        Параметр.Использование = Истина;
    КонецЕсли;
3 Fish
 
06.06.23
12:44
А можно так:
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ИмяПараметра", ЗначениеПараметра);
4 Новый1сник2
 
06.06.23
12:48
у меня сейчас так заполняется

ФормаОтчёта = ПолучитьФорму("Отчет.мОтчетПоСчетамВРезерве.Форма");
    КомпоновщикНастроек = ФормаОтчёта.Отчет.КомпоновщикНастроек;
    
    мУстановитьПользовательскийОтборСКД(КомпоновщикНастроек, "Номенклатура", Номенклатура);
    мУстановитьПользовательскийОтборСКД(КомпоновщикНастроек, "СкладРезерва", СкладРезерва);
5 Новый1сник2
 
06.06.23
12:48
&НаКлиенте
Процедура мУстановитьПользовательскийОтборСКД(КомпоновщикНастроек, ИмяОтбора, Значение)
    
    Перем    ПолеКД, Элем, ЭлементОтбора, Настройки,
            ПользовательскиеНастройки, ПользовательскийОтбор;
    
    Настройки = КомпоновщикНастроек.Настройки;
    
    ПолеКД = Новый ПолеКомпоновкиДанных(ИмяОтбора);
    
    Для Каждого Элем Из Настройки.Отбор.Элементы Цикл
        
        Если Элем.ЛевоеЗначение = ПолеКД Тогда
            ЭлементОтбора = Элем;
            Прервать;
        КонецЕсли;
    КонецЦикла;
    
    Если ЭлементОтбора = Неопределено Тогда
        Возврат;        
    КонецЕсли;        
    
    Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда
        
        ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки;
        ПользовательскийОтбор = ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки);
        ПользовательскийОтбор.Использование = Истина;
        ПользовательскийОтбор.ВидСравнения =  ВидСравненияКомпоновкиДанных.Равно;
        ПользовательскийОтбор.ПравоеЗначение  = Значение;
    КонецЕсли;

КонецПроцедуры //  УстановитьПользовательскийОтборСКД
6 Новый1сник2
 
06.06.23
12:55
если так добавляю не работает, показывает сохраненные значения

мУстановитьПользовательскийОтборСКД(КомпоновщикНастроек, "НачалоПериода", ТекущаяДата());
    мУстановитьПользовательскийОтборСКД(КомпоновщикНастроек, "КонецПериода", ТекущаяДата());
7 Новый1сник2
 
06.06.23
13:08
Так тоже не работает, ошибка Параметр с указанным именем не найден

Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачалоПериода", ТекущаяДата());
8 Новый1сник2
 
06.06.23
13:11
в коллекции пользовательских настроек есть параметр "ПериодОтчета", можно его как то заполнить ?
9 Новый1сник2
 
06.06.23
13:41
(2) нету этих параметров, в отладчике "Неопределено"
10 Новый1сник2
 
06.06.23
16:51
в пользовательских настройках, нет параметра "ПериодОтчета", как можно добавить? как заполнить я разобрался
11 Новый1сник2
 
07.06.23
09:18
такой код тоже не работает, подскажите почему
    
    КомпоновщикНастроек = ФормаОтчёта.Отчет.КомпоновщикНастроек;
    
    ПериодОтчета = Новый СтандартныйПериод;
    ПериодОтчета.ДатаНачала     = НачалоДня(НачалоДня(ТекущаяДата()) - (44*3600*24));
    ПериодОтчета.ДатаОкончания  = КонецДня(ТекущаяДата());

    
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ПериодОтчета");
    Параметр.Значение = ПериодОтчета;
    Параметр.Использование = Истина;
12 Новый1сник2
 
07.06.23
09:19
так тоже пробовал
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПериодОтчета", ПериодОтчета);