Имя: Пароль:
1C
1С v8
Установка и отображение значений параметров СКД
,
0 zippygrill
 
08.04.24
10:26
Всем привет,
Отчет Т-2, в процедуре ПриКомпоновкиРезультата заполняю параметры поля Работник кадровой службы.
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
ПараметрРаботникКадровойСлужбы = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("РаботникКадровойСлужбы"));
НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра(
        Новый ПараметрКомпоновкиДанных("РаботникКадровойСлужбы"), РаботникКадровойСлужбы);

Отладчиком видно что параметр заполнился, но если зайти в Настройках, то там они как были пустые, так и остались.
Пробовал заполнять это же параметр, только в ПользовательскиеНастройки, в ФиксированныеНастройки, через СхемакомпоновкиДанные.Настройки.ПараметрыДанных. Однако если зайти в Настройках отчета, все равно поле пустое.
1 zippygrill
 
08.04.24
11:22
апну
2 MaximSh
 
08.04.24
13:35
(0) ПользовательскиеНастройки перекрывают Настройки

Добавляй сюда
КомпоновщикНастроек.ПользовательскиеНастройки.Элементы
3 youalex
 
08.04.24
13:42
(0) настройки СКД, которые ты получаешь  через КомпоновщикНастроек.ПолучитьНастройки() - это самостоятельный объект, не связанный с Компоновщиком (собственно это объединение настроек и пользовательских настроек, и их логично использовать при компоновке макета в соответствующем методе)
4 lEvGl
 
гуру
08.04.24
13:49
ну так загрузить настройки обратно пробовали?
5 lEvGl
 
гуру
08.04.24
13:52
да и зачем это все
КомпоновщикНастроек.Найстроки тут и меняем, не надо ничего никуда ни получать ни загружать
6 lEvGl
 
гуру
08.04.24
13:58
вобщем так это происходит, одна строка
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", Ссылка);
+ отобразится должно само, в настройки - параметры
7 zippygrill
 
08.04.24
15:30
(2) нифига не перекрываются
(6) также никакого результата

КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("РаботникКадровойСлужбы", РаботникКадровойСлужбы);
    КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДолжностьРаботникаКадровойСлужбы", ДолжностьРаботникаКадровойСлужбы);
    
    НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра(
        Новый ПараметрКомпоновкиДанных("РаботникКадровойСлужбы"), РаботникКадровойСлужбы);
    НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра(
            Новый ПараметрКомпоновкиДанных("ДолжностьРаботникаКадровойСлужбы"), ДолжностьРаботникаКадровойСлужбы);
    Если ЗначениеЗаполнено(ПараметрРаботникКадровойСлужбы.ИдентификаторПользовательскойНастройки) Тогда
        
        ПользовательскийПараметр = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(
            ПараметрРаботникКадровойСлужбы.ИдентификаторПользовательскойНастройки);
        Если ТипЗнч(ПользовательскийПараметр) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
            ПользовательскийПараметр.Значение = РаботникКадровойСлужбы;
        КонецЕсли;
        
    КонецЕсли;
8 zippygrill
 
08.04.24
15:39
(4) после изменения делаю КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета). видны заполненные параметры в отладчике, а вот на форме также пустые..
9 lEvGl
 
гуру
08.04.24
16:11
а что это такое

НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра(Новый ПараметрКомпоновкиДанных("РаботникКадровойСлужбы"), РаботникКадровойСлужбы);

просто поставили параметр и все, зачем еще новый параметр компоновки не пойму
10 zippygrill
 
08.04.24
16:45
(9) Это просто один из вариантов который тоже заполняет ппараметр, но на форму все равно пустой. к тому же ключевое слово Новый - тут просто конструктор такой, новый параметр как таковой не добавляется в ПараметрыДанных..он уже там есть.
11 lEvGl
 
гуру
08.04.24
16:52
(10) ну так если этот код выполняется в такой последовательности как написано, то одно же перетирает другое. поставьте одну строчку

КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("РаботникКадровойСлужбы", РаботникКадровойСлужбы);

больше ничего не надо
12 zippygrill
 
08.04.24
16:58
(10) с учетом даже
НастройкиОтчета.ПараметрыДанных.УстановитьЗначениеПараметра(Новый ПараметрКомпоновкиДанных("РаботникКадровойСлужбы"), РаботникКадровойСлужбы);

решил перед формированием отчета - изменить дату. В итоге на форме заполнилось моими значениями. Ощущения что это был привет от кэша..
13 lEvGl
 
гуру
08.04.24
17:04
и зачем делать одно и тоже дважды..
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший