![]() |
|
УФ+СКД. Странное поведение | ☑ | ||
---|---|---|---|---|
0
Анютик
13.05.13
✎
16:44
|
Есть Отчет на СКД. В самом отчете 3 схемы. По 2 формируется ТЗ, передается как внешний объект в третью и выводится на экран.Основная схема - первая, ее же настройки юзаются. Считываю их из пользовательских настроек ПриКомпоновкеРезультата() так Настройки = КомпоновщикНастроек.ПолучитьНастройки().
Однако, почему-то так не считываются параметры данных(у меня они стандартные - НачалоПериода и КонецПериода). Как их считать? |
|||
1
mxs089
13.05.13
✎
16:45
|
КомпоновщикНастроек.Параметры. и т.д.
|
|||
2
Анютик
13.05.13
✎
16:47
|
ПараметрДанныхНачалоПериода = Настройки.ПараметрыДанных.Элементы[0];
ПараметрДанныхНачалоПериода.Значение = НачалоДня(КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Значение); ПараметрДанныхНачалоПериода.Использование = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0].Использование; вот такой код приводит к неадекватному поведению настроек |
|||
3
Анютик
13.05.13
✎
16:47
|
после первого формирования значение параметра очищается, а после второго вообще параметр пропадает
|
|||
4
Анютик
13.05.13
✎
16:47
|
хотя если не УФ в отчете нормально все работало
|
|||
5
mxs089
13.05.13
✎
16:49
|
КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы
|
|||
6
Анютик
13.05.13
✎
16:50
|
а в нем ничего нет) только в пользовательских. вернее, есть нулевая дата с отключенным использованием
|
|||
7
Chin
13.05.13
✎
16:52
|
Так добавь в компановке параметры в пользовательские настройки
|
|||
8
Анютик
13.05.13
✎
16:56
|
не, в пользовательских они есть и заполнены, а в самих настройках - есть, но не заполнены. мне из пользовательских надо их продублировать в основные.
|
|||
9
Chin
13.05.13
✎
17:03
|
А что отладчик в (2) показывает?
|
|||
10
Анютик
13.05.13
✎
17:12
|
при первом нажатии сформировать параметр передается. при втором пропадают оба параметра из элементов
|
|||
11
Chin
13.05.13
✎
17:28
|
(10) А как ты запускаешь схемы? Ты же наверное перезаполняешь настройки компоновщика настроек для каждой схемы? Первый раз прочитала пользовательские, заполнила обыные Параметры данных. Во второй схеме у тебя пользовательские не заполнены, а ты так же их начинаешь читать?
Вообще, если проблема только с Началом и Концом периода - первый раз прочла, занеси в переменные и потом подставляй. Либо вообще сделай жесткую настройку периода на форме с привязкой к реквизитам самого отчета. |
|||
12
Анютик
13.05.13
✎
17:32
|
(11) да, конечно перечитываю для каждой схемы, как иначе-то. Просто непонятно, почему трабла только с периодом. Сейчас вот добавила свои параметры. Пробую, как отработает с моими. Может, глюк какой. Иначе бы с отбором тож проблемы были бы. Ну мне так кажется
|
|||
13
Анютик
13.05.13
✎
17:33
|
не, со своими параметрами то же самое. Т.е. мне при чтении первой схемы их запомнить, а в следующие просто подставлять...сейчас сварганим. А что тогда с отбором? почему он работает?
|
|||
14
fisher
13.05.13
✎
17:34
|
В УФ надо работать не через "Настройки" а через "ПользовательскиеНастройки". Там не совсем тривиально, т.к. они связаны. Как-то так:
Функция ПолучитьПользовательскийПараметр(ИмяПараметра, КомпоновщикНастроек) НайденныйПараметр = Неопределено; НайденныйПараметрВарианта = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра); Если НайденныйПараметрВарианта <> Неопределено Тогда НайденныйПараметр = ПолучитьПредопределенныйЭлементПользовательскихНастроек(НайденныйПараметрВарианта, КомпоновщикНастроек.ПользовательскиеНастройки); КонецЕсли; Возврат НайденныйПараметр; КонецФункции Функция ПолучитьПредопределенныйЭлементПользовательскихНастроек(ЭлементНастроекВарианта, ПользовательскиеНастройки) НайденныйЭлемент = Неопределено; Если ЭлементНастроекВарианта <> Неопределено Тогда НайденныйЭлемент = ПользовательскиеНастройки.Элементы.Найти(ЭлементНастроекВарианта.ИдентификаторПользовательскойНастройки); КонецЕсли; Возврат НайденныйЭлемент; КонецФункции |
|||
15
Chin
13.05.13
✎
17:34
|
(13) Отбор как счтываешь, тоже из пользовательских настроек?
|
|||
16
Анютик
13.05.13
✎
17:37
|
(14) понять бы как
(15) да короче. в 1 и 2 схемах были параметры НачалоПериода и КонецПериода. В третьей их- не было. Добила ручками - заработало. Остался вопрос - как связаны настройки. Почему отбор работает без доп танцев, а параметры - нет. |
|||
17
Chin
13.05.13
✎
17:44
|
(16) Просто повезло. Потому как с учетом (14) я бы не ручался в какой последовательности окажуться настроки отчета в структуре пользовательских настроек. В пользовательских накстройка и параметры и отборы в перемешку, а идентифицируются они по идентификатору. Видимо тебе просто повезло. Но то как ты делаешь, да ёще жестко обращаясь к индексу пользовательской настройки может привести к тому, что при определенных обстоятельствах отчет отработает неправильно.
|
|||
18
Анютик
13.05.13
✎
18:09
|
не, настройки я считываю без обращения к индексу.
Настройки = КомпоновщикНастроек.ПолучитьНастройки(). Вариант из (0) после (16) оказался рабочим |
|||
19
Chin
13.05.13
✎
18:17
|
(18) А вот и с обращением:
КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[0] :) |
|||
20
Анютик
13.05.13
✎
18:43
|
(19) да я уже варианты искала...хоть как-то.
|
|||
21
Анютик
13.05.13
✎
18:43
|
короче, забей. Спасибо за обсуждение!
|
|||
22
Chin
13.05.13
✎
18:47
|
(21) Забил! :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |