![]() |
|
Обновить поля для вывода после программного выбора макета СКД | ☑ | ||
---|---|---|---|---|
0
kIR
21.06.18
✎
15:46
|
Доброго дня!
СКД на обычных формах В зависимости от выбранных галок на форме по нажатию кнопки "Сформировать" выбирается та или иная схема компоновки данных. Но, почему то, выводятся только те поля, которые есть в макете по умолчанию. Как можно обновить набор выводимых полей при выводе того или иного макета? При этом на форме указываются параметры, которые формируют отборы в КомпоновщикНастроек.Настройки.Отбор, они тоже должны сохраняться Спасибо |
|||
1
kIR
21.06.18
✎
16:01
|
Пробовал использовать код
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); Но при этом параметры, внесенные пользователем - затираются |
|||
2
aleks_default
21.06.18
✎
16:10
|
ну правильно, это ж настройки по умолчанию
вот тут пользовательские КомпоновщикНастроек.ПолучитьНастройки() |
|||
3
kIR
21.06.18
✎
16:29
|
(2) так там же и поля ненужные мне(
|
|||
4
aleks_default
21.06.18
✎
16:49
|
тогда я не понял ничего. Тебе нужно чтобы для одного отчета сохранялись пользовательские настройки двух разных схем?
|
|||
5
kIR
21.06.18
✎
17:14
|
(4) да. Там по сути галками выбираются увеличенные схемы, с большей информацией
|
|||
6
kIR
21.06.18
✎
17:44
|
Не знаю, может кривое решение, но тогда подскажите,как оптимизировать. Пока так сделал
|
|||
7
kIR
21.06.18
✎
17:44
|
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); Для Каждого Элемент из Настройки.ПараметрыДанных.Элементы Цикл Если Не Элемент.Использование Тогда Продолжить; КонецЕсли; КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра(Элемент.Параметр,Элемент.Значение); КонецЦикла; Для каждого Элемент из Настройки.Отбор.Элементы Цикл Если Не Элемент.Использование Тогда Продолжить; КонецЕсли; Для Каждого ЭлементОтбора из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Если ЭлементОтбора.ЛевоеЗначение = Элемент.ЛевоеЗначение Тогда ЭлементОтбораДанных = Элемент.ЛевоеЗначение; ЭлементОтбора.ВидСравнения = Элемент.ВидСравнения; ЭлементОтбора.Использование = Истина; ЭлементОтбора.ПравоеЗначение = Элемент.ПравоеЗначение; КонецЕсли; КонецЦикла; Если ЭлементОтбораДанных = Неопределено Тогда ЭлементОтбораДанных = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораДанных.ЛевоеЗначение = Элемент.ЛевоеЗначение; ЭлементОтбораДанных.ВидСравнения = Элемент.ВидСравнения; ЭлементОтбораДанных.ПравоеЗначение = Элемент.ПравоеЗначение; КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |