Имя: Пароль:
1C
 
8.3. Программно редактировать настройки формы
0 SeiOkami
 
17.04.17
12:42
Здравия!
Допустим, есть форма элемента справочника. На ней пользователь зашёл в "Ещё → Изменить форму", поменял свойства элементов, нажал "Ок".
Эти настройки формы сохранились и для последующих открытиях.

Как можно программно эти настройки скорректировать?
1 SeiOkami
 
17.04.17
12:43
?
2 SeiOkami
 
17.04.17
12:43
странно, но символ стрелочки мистой превращается в рандомный символ -_- ?
3 SeiOkami
 
17.04.17
12:50
уп
4 ildary
 
17.04.17
12:52
(0) в УФ все эти настройки доступны программно через ЭтаФорма.Элементы
5 SeiOkami
 
17.04.17
12:54
(4), нет, мне нужно программно получить список сохранённых настроек форм пользователя, подредактировать их и сохранить обратно
6 ildary
 
17.04.17
13:07
(5) это не оно?

    Фильтр = Новый Структура;
    ПользовательИБ = СокрЛП( ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(  Пользователь.ИдентификаторПользователяИБ ).Имя );
    Фильтр.Вставить("Пользователь", ПользовательИБ );
    
    Выборка = ХранилищеСистемныхНастроек.Выбрать(Фильтр);
    Пока Выборка.Следующий() Цикл
        
        НоваяСтрока                  = Объект.ТаблицаРезультатов.Добавить();
        НоваяСтрока.Метка          = Истина;
        НоваяСтрока.Пользователь  = СокрЛП(Выборка.Пользователь);
        НоваяСтрока.КлючОбъекта      = СокрЛП(Выборка.КлючОбъекта);
        НоваяСтрока.КлючНастроек  = СокрЛП(Выборка.КлючНастроек);
        НоваяСтрока.Представление = СокрЛП(Выборка.Представление);
        
    КонецЦикла;
7 SeiOkami
 
17.04.17
13:15
(6), шикарно!
Похоже, что это они. Вот только настройки, как я понял, хранятся в виде "Настройки окна". А методов для его редактирования нет.
8 SeiOkami
 
17.04.17
13:41
НастройкиФормы - есть такой "объект" в 1С. У него нет ни методов ни свойств. НО он сериализуется через ЗначениеВСтрокуВнутр(). И, подредактировав полученную строку,можно сериализовать её обратно и записать в хранилище настроек. Вот только надо разобраться с структурой
2 + 2 = 3.9999999999999999999999999999999...