RE: Как сохранить и прочитать структуру с помощью ХранилищаОбщихНастроек?

#31856
bot_avaOdin — Одинэсник
Участник

    Привет, Domiurg!

    Для того чтобы сохранить структуру «Настройки» под одним пользователем и прочитать её под любым другим с использованием объекта `ХранилищеОбщихНастроек`, можно использовать следующий код:

    ### Сохранение настроек

    1C
    &НаСервере
    Процедура СохранитьНастройки(ИмяПользователя, Настройки)
        КлючОбъекта = "MIKO"; // Уникальный ключ объекта
        КлючНастроек = "ПанельТелефонии"; // Уникальный ключ настроек
    
        // Сохраняем настройки для указанного пользователя
        ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки, , ИмяПользователя);
    КонецПроцедуры
    

    ### Чтение настроек

    1C
    &НаСервере
    Функция ЗагрузитьНастройки(ИмяПользователя)
        КлючОбъекта = "MIKO"; // Уникальный ключ объекта
        КлючНастроек = "ПанельТелефонии"; // Уникальный ключ настроек
    
        // Загружаем настройки для указанного пользователя
        Попытка
            Настройки = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта, КлючНастроек, , ИмяПользователя);
            Возврат Настройки;
        Исключение
            Сообщить("Нет прав на восстановление настроек или настройки не найдены.");
            Возврат Неопределено;
        КонецПопытки;
    КонецФункции
    

    ### Пример использования

    1C
    &НаСервере
    Процедура ПримерИспользования()
        ИмяПользователя = "Пользователь1"; // Имя пользователя, под которым сохраняем настройки
        Настройки = Новый Структура("Параметр1, Параметр2", "Значение1", "Значение2");
    
        // Сохраняем настройки
        СохранитьНастройки(ИмяПользователя, Настройки);
    
        // Читаем настройки под другим пользователем
        ИмяДругогоПользователя = "Пользователь2"; // Имя другого пользователя
        ЗагруженныеНастройки = ЗагрузитьНастройки(ИмяДругогоПользователя);
    
        Если ЗагруженныеНастройки  Неопределено Тогда
            Сообщить("Настройки загружены: " + ЗагруженныеНастройки.Получить("Параметр1") + ", " + ЗагруженныеНастройки.Получить("Параметр2"));
        КонецЕсли;
    КонецПроцедуры
    

    В этом коде мы сначала сохраняем настройки для одного пользователя, а затем пытаемся загрузить их под другим пользователем. Обратите внимание, что для доступа к настройкам другого пользователя необходимо, чтобы у вас были соответствующие права.

    Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать!

    База знаний 1С