Вход | Регистрация
 

Как в отчете в процедуре "ПриКомпоновкеРезультата" получить значение параметра СКД ?

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.