Имя: Пароль:
1C
 
Как в отчете в процедуре "ПриКомпоновкеРезультата" получить значение параметра СКД ?
0 Grekos2
 
14.08.19
11:21
Управляемые формы.

  А = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода")).Значение
  А = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("НачалоПериода");
  П = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти("НачалоПериода");
  
  Вот так не получается. Выдается пустая дата, хотя она на форме установлена не пустой.
1 НадюшаЯ
 
14.08.19
11:28
КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(КомпоновщикНастроек, "Организация").Значение
2 НадюшаЯ
 
14.08.19
11:28
Функция ПолучитьПараметр(ОбъектНастройки, Параметр) Экспорт
    
    ЗначениеПараметра = Неопределено;
    ПолеПараметр = ?(ТипЗнч(Параметр) = Тип("Строка"), Новый ПараметрКомпоновкиДанных(Параметр), Параметр);
    
    Если ТипЗнч(ОбъектНастройки) = Тип("НастройкиКомпоновкиДанных") Тогда
        ЗначениеПараметра = ОбъектНастройки.ПараметрыДанных.НайтиЗначениеПараметра(ПолеПараметр);
    ИначеЕсли ТипЗнч(ОбъектНастройки) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда
        Для Каждого ЭлементНастройки Из ОбъектНастройки.Элементы Цикл
            Если ТипЗнч(ЭлементНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") И ЭлементНастройки.Параметр = ПолеПараметр Тогда
                ЗначениеПараметра = ЭлементНастройки;
                Прервать;
            КонецЕсли;
        КонецЦикла;
    ИначеЕсли ТипЗнч(ОбъектНастройки) = Тип("КомпоновщикНастроекКомпоновкиДанных") Тогда
        Для Каждого ЭлементНастройки Из ОбъектНастройки.ПользовательскиеНастройки.Элементы Цикл
            Если ТипЗнч(ЭлементНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") И ЭлементНастройки.Параметр = ПолеПараметр Тогда
                ЗначениеПараметра = ЭлементНастройки;
                Прервать;
            КонецЕсли;
        КонецЦикла;
        Если ЗначениеПараметра = Неопределено Тогда
            ЗначениеПараметра = ОбъектНастройки.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПолеПараметр);
        КонецЕсли;
        Если ЗначениеПараметра = Неопределено Тогда
            ЗначениеПараметра = ОбъектНастройки.ФиксированныеНастройки.ПараметрыДанных.НайтиЗначениеПараметра(ПолеПараметр);
        КонецЕсли;
    ИначеЕсли ТипЗнч(ОбъектНастройки) = Тип("НастройкиВложенногоОбъектаКомпоновкиДанных") Тогда
        ЗначениеПараметра = ОбъектНастройки.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПолеПараметр);
    ИначеЕсли ТипЗнч(ОбъектНастройки) = Тип("ДанныеРасшифровкиКомпоновкиДанных") Тогда
        ЗначениеПараметра = ОбъектНастройки.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПолеПараметр);
    ИначеЕсли ТипЗнч(ОбъектНастройки) = Тип("КоллекцияЗначенийПараметровКомпоновкиДанных") Тогда
        ЗначениеПараметра = ОбъектНастройки.Найти(ПолеПараметр);
    ИначеЕсли ТипЗнч(ОбъектНастройки) = Тип("ОформлениеКомпоновкиДанных") Тогда
        ЗначениеПараметра = ОбъектНастройки.НайтиЗначениеПараметра(ПолеПараметр);
    КонецЕсли;
    
    Возврат ЗначениеПараметра;
    
КонецФункции
3 Cyberhawk
 
14.08.19
11:30
КомпоновщикНастроек.ПолучитьНастройки()
4 Kashey
 
14.08.19
11:41
(0) А если обратиться к пользовательским настройкам компоновщика? Т.е:
КомпоновщикНастроек.ПользовательскиеНастройки.Элементы ....
5 Kashey
 
14.08.19
11:44
>>  П = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти("НачалоПериода");
в найти нужно передавать ИД пользовательских настроек, не имя поля
6 Grekos2
 
14.08.19
11:47
Спасибо.
Функция в (2) решает проблемму. :)