Имя: Пароль:
1C
1С v8
Как сохранить настройки с неколькими схемами СКД?
, ,
0 camomile
 
14.08.12
16:53
Людт добрые, помогите девушке разобраться с этим вопросом,  кому не жалко. На форме есть список вариантов отчетов, подскажите как сохранить настройки вместе с вариантом? гуглила, мистила, нашла подобное здесь v8: Сохранение параметров при использовании нескольких схем , но так и не поняла как сделать.
вот код:
//выбрали вариант отчета из списка
Процедура СписокВариантовПриИзменении(Элемент)
           СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет(Элемент.Значение);
       Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
       КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

//если при открытии нужно восстановить настройку
Процедура ПриОткрытии()
   СтруктураНастройки = Новый Структура;
   СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь"));
   СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект));

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


//если при закрытии нужно сохранить настройку
Процедура ПриЗакрытии()

   Если мТекущаяНастройка <> Неопределено И мТекущаяНастройка.НаименованиеНастройки <> Неопределено
       И мТекущаяНастройка.Свойство("СохранятьАвтоматически") И мТекущаяНастройка.СохранятьАвтоматически Тогда

       ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
       Если ТекПользователь<> мТекущаяНастройка.Пользователь Тогда
           Ответ = Вопрос("Вы восстановили настройку другого пользователя, сохранить ее в
           |ваших настройках?", РежимДиалогаВопрос.ДаНет);
           Если Ответ = КодВозвратаДиалога.Да Тогда
               Если ВвестиСтроку(мТекущаяНастройка.НаименованиеНастройки,
                   "Укажите наименование сохраняемой настройки") Тогда
                   мТекущаяНастройка.Пользователь = ТекПользователь;
                   УниверсальныеМеханизмы.СохранитьНастройку(мТекущаяНастройка);
               КонецЕсли;
           КонецЕсли;
       Иначе
           УниверсальныеМеханизмы.СохранитьНастройку(мТекущаяНастройка);
       КонецЕсли;
   КонецЕсли;

КонецПроцедуры


КонецПроцедуры

//переопеределние кнопки Сохранить значения
Процедура СохранитьНастройки() Экспорт
   Перем СохраненнаяНастройка;
   
   
   Если мТекущаяНастройка<>Неопределено Тогда
       СтруктураНастройки = мТекущаяНастройка;
   Иначе
       СтруктураНастройки = Новый Структура;
       СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект));
       СтруктураНастройки.Вставить("НаименованиеНастройки", Неопределено);
       СтруктураНастройки.Вставить("ИспользоватьПриОткрытии", Ложь);
       СтруктураНастройки.Вставить("СохранятьАвтоматически", Ложь);
   КонецЕсли;

   СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь"));
   СохраненнаяНастройка = Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки());
   СтруктураНастройки.Вставить("СохраненнаяНастройка", СохраненнаяНастройка);

   ВозвращаемаяСтруктура = УниверсальныеМеханизмы.СохранениеНастроек(СтруктураНастройки);

   Если ВозвращаемаяСтруктура <> Неопределено Тогда
       мТекущаяНастройка = ВозвращаемаяСтруктура;
   Иначе
       мТекущаяНастройка = СтруктураНастройки;
   КонецЕсли;

КонецПроцедуры

//переопеределние кнопки Восстановить значение
Процедура ВосстановитьНастройки() Экспорт    
   
   СтруктураНастройки = Новый Структура;
   СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь"));
   СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект));
   СтруктураНастройки.Вставить("НаименованиеНастройки", ?(мТекущаяНастройка = Неопределено, Неопределено, мТекущаяНастройка.НаименованиеНастройки));

   ВозвращаемаяСтруктура = УниверсальныеМеханизмы.ВосстановлениеНастроек(СтруктураНастройки);

   Если ВозвращаемаяСтруктура <> Неопределено Тогда
       мТекущаяНастройка = ВозвращаемаяСтруктура;
       КомпоновщикНастроек.ЗагрузитьНастройки(мТекущаяНастройка.СохраненнаяНастройка.Получить());
   КонецЕсли;
КонецПроцедуры




т.е сохранение настроек самих схем работает нормально, но как к ним еще пристроить и вариант самой схемы не пойму
1 camomile
 
14.08.12
17:09
ну пожааалуйста, не жадничайте , сама то разберусь, но с подсказкой быстрее )
2 Новенький_2009
 
14.08.12
17:14
А что за конфа?
3 camomile
 
14.08.12
17:17
это 8.1
4 camomile
 
14.08.12
17:17
конфа Консолидация
5 sanja26
 
14.08.12
17:19
перейти на управляемые формы и хотя бы 8.2
6 camomile
 
14.08.12
17:24
(5) это в ближайшем будущем, а без УФ и в 8.1 есть варианты?
7 GenV
 
14.08.12
17:24
(0) Добавляй к ИмяОбъекта имена схем.
8 camomile
 
14.08.12
17:34
(7)  т.е сюда СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект))?
непонимаю,   каким образом?
9 GenV
 
14.08.12
17:37
Например так:
СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект)) + ИмяТекущейСхемы
10 camomile
 
14.08.12
17:44
давайте только без вредных советов обойдемся
11 GenV
 
14.08.12
18:51
(10) Скобку переставить не догадался ?!
12 GenV
 
14.08.12
18:52
11+ лась
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший