Имя: Пароль:
1C
1С v8
Сохранение и восстановление настроек в обработке
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
Сделал так:

Создал вспомогательный реквизит обработки КомпоновщикНастроекНастройки (произвольный тип)

Добавил обработчики формы:

Процедура ПередСохранениемЗначений(Отказ)
    
    КомпоновщикНастроекНастройки = КомпоновщикНастроек.Настройки;
    
КонецПроцедуры

Процедура ПослеВосстановленияЗначений()
    Попытка
        СхемаКомпоновки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
        КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновки));
        КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроекНастройки);
    Исключение
    КонецПопытки;
КонецПроцедуры

В форме в свойство Сохраняемые значения добавил реквизит КомпоновщикНастроекНастройки для сохранения.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан