Имя: Пароль:
1C
1С v8
Помогите разобраться с восстановлением значений
0 hawksib
 
26.08.16
07:30
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПриОткрытииНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПриОткрытииНаСервере()
    Настройки = ХранилищеСистемныхНастроек.Загрузить("НастройкиОтчетаПоДокументам_slids90s30");
    Если Настройки <> Неопределено Тогда
        ЗначениеВРеквизитФормы(Настройки.ПараметрыПодключения, "Объект.ПараметрыПодключения");
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии()
    ПриЗакрытииНаСервере();
КонецПроцедуры

&НаСервере
Процедура ПриЗакрытииНаСервере()
    Настройки = Новый Структура;
    Настройки.Вставить("ПараметрыПодключения", РеквизитФормыВЗначение("Объект").ПараметрыПодключения.Выгрузить());
    
    ХранилищеСистемныхНастроек.Сохранить("НастройкиОтчетаПоДокументам_slids90s30", , Настройки);
КонецПроцедуры

не могу понять почему пишет
Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)
        ЗначениеВРеквизитФормы(Настройки.ПараметрыПодключения, "Объект.ПараметрыПодключения");
по причине:
Недопустимое значение параметра (параметр номер '2')

ведь:
Синтаксис:

ЗначениеВРеквизитФормы(<Значение>, <ИмяРеквизита>)
Параметры:

<Значение> (обязательный)

Тип: Произвольный.
Значение прикладного типа, которое необходимо преобразовать в реквизит формы и для которого определено преобразование в данные формы.
<ИмяРеквизита> (обязательный)

Тип: <u><b>Строка</b>.</u>
Имя реквизита формы, в который необходимо поместить преобразованное значение.

что сделал не так?
1 Lexey_
 
26.08.16
07:36
(0) как звучит имя твоего реквизита?
2 Mauser
 
26.08.16
07:38
(1) Громко, раскатисто и немного угрожающе.
3 hawksib
 
26.08.16
07:43
все спасибо, переделал процедуру восстановления значения

Настройки = ХранилищеСистемныхНастроек.Загрузить("НастройкиОтчетаПоДокументам_slids90s3");
    Если Настройки <> Неопределено Тогда
        Для Каждого Настройка Из Настройки.ПараметрыПодключения Цикл
            Строка = Объект.ПараметрыПодключения.Добавить();
            Для Каждого Колонка Из Настройки.ПараметрыПодключения.Колонки Цикл
                Если Колонка.Имя = "НомерСтроки" ИЛИ Колонка.Имя = "LineNumber" ИЛИ Колонка.Имя = "ИсходныйНомерСтроки" ИЛИ Колонка.Имя = "SourceLineNumber"  Тогда
                    Продолжить
                Иначе
                    Строка[Колонка.Имя] = Настройка[Колонка.Имя];
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    КонецЕсли;
4 Mauser
 
26.08.16
07:44
(3) Если сделать Выгрузить(), то наоборот будет Загрузить(). Так-то!
5 hawksib
 
26.08.16
07:51
(4) ага, так тоже работает =)

    Настройки = ХранилищеСистемныхНастроек.Загрузить("НастройкиОтчетаПоДокументам_slids90s3");
    Если Настройки <> Неопределено Тогда
        Объект.ПараметрыПодключения.Загрузить(Настройки.ПараметрыПодключения);
    КонецЕсли;