|
Сохранение и восстановление настроек в обработке |
☑ |
0
user925
14.07.14
✎
12:51
|
Подскажите, пожалуйста.
В обычном приложении создаю внешний отчет с макетом СКД и с формой, куда программно выводится результат отчета. На форме есть табличное поле с отбором из СКД (КомпоновщикНастроек) и стандартные кнопки сохранения и восстановления настроек. Все нормально работает.
Возникла необходимость создать внешнюю обработку с аналогичным функционалом; добавил в обработку макет СКД, перед открытием формы добавил код:
СхемаКомпоновки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);
При этом не работает механизм сохранения/восстановления настроек отбора (после открытия отбор пустой). Подскажите, что можно сделать, чтобы работали именно стандартные кнопки сохранить/восстановить значение?
|
|
1
Поpyчик-4
14.07.14
✎
13:08
|
(0) Свойства формы
АвтоматическоеСохранениеДанныхВНастройках
СохранениеДанныхВНастройках
|
|
2
Поpyчик-4
14.07.14
✎
13:13
|
Забей. Не сразу увидел "В обычном приложении"
|
|
3
user925
14.07.14
✎
14:22
|
У обычной формы есть свойства "Сохранять значение", "Сохраняемые значения" и "ВосстанавливатьЗначенияПриОткрытии". Но они не работают в обработке.
|
|
4
overRock
14.07.14
✎
14:25
|
(3) Они работают только с реквизитами, а не с параметрами запросов и СКД.
|
|
5
user925
14.07.14
✎
14:31
|
Это не параметры. У обработки есть реквизит КомпоновщикНастроек с типом КомпоновщикНастроекКомпоновкиДанных. В отчете такое сохранение работает. А в обработке почему-то нет.
|
|
6
vincekrafter
14.07.14
✎
15:22
|
(5) так у тебя же в коде при открытии устанавливаются настройки по-умолчанию
|
|
7
user925
14.07.14
✎
15:31
|
(6) я пробовал комментировать эту строку
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновки.НастройкиПоУмолчанию);
чтобы при открытии формы загружалась сохраненная прежде настройка, но настройка отбора не восстановилась.
Хочется, чтобы работал стандартный механизм (или с минимальным кодом) без функций СохранитЗначение(ВосстановитьЗначение).
|
|
8
user925
15.07.14
✎
11:53
|
Сделал так:
Создал вспомогательный реквизит обработки КомпоновщикНастроекНастройки (произвольный тип)
Добавил обработчики формы:
Процедура ПередСохранениемЗначений(Отказ)
КомпоновщикНастроекНастройки = КомпоновщикНастроек.Настройки;
КонецПроцедуры
Процедура ПослеВосстановленияЗначений()
Попытка
СхемаКомпоновки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));
КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроекНастройки);
Исключение
КонецПопытки;
КонецПроцедуры
В форме в свойство Сохраняемые значения добавил реквизит КомпоновщикНастроекНастройки для сохранения.
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой