Возникает при получении описания настроек. В данном обработчике необходимо реализовать получение описания настроек.
Синтаксис
ОбработкаПолученияОписания(<КлючОбъекта>, <КлючНастроек>, <ОписаниеНастроек>, <Пользователь>)Полное описание, параметры и ограничения
ХранилищеНастроекМенеджер.<Имя хранилища>.ОбработкаПолученияОписания (SettingsStorageManager.<Storage name>.GetDescriptionProcessing)
ХранилищеНастроекМенеджер.<Имя хранилища> (SettingsStorageManager.<Storage name>)
ОбработкаПолученияОписания (GetDescriptionProcessing)
Доступен, начиная с версии 8.2.
Синтаксис:
ОбработкаПолученияОписания(<КлючОбъекта>, <КлючНастроек>, <ОписаниеНастроек>, <Пользователь>)
Параметры:
<КлючОбъекта>
Тип: Произвольный.
Ключ объекта, для которого получается описание.
<КлючНастроек>
Тип: Произвольный.
Ключ настроек.
<ОписаниеНастроек>
Тип: ОписаниеНастроек.
Описание настроек.
<Пользователь>
Тип: Строка.
Идентификатор пользователя, для которого получается описание.
Если не указан или представляет пустую строку, то следует загружать настройки для текущего пользователя.
Описание:
Возникает при получении описания настроек.
В данном обработчике необходимо реализовать получение описания настроек.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Замечание:
Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
ОбработкаПолученияОписания: собственные настройки книг
Полный небольшой адаптер: свой ключ отделён префиксом, данные действительно сохраняются / загружаются штатным внутренним хранилищем, а публичный менеджер вызывает нужное событие.
Где и как запускать
Модуль менеджера собственного УчебныеНастройкиКниг, сервер / толстый клиент.
Подготовка
В своей отдельной учебной конфигурации Общие → Хранилища настроек создайте УчебныеНастройкиКниг. Все четыре процедуры и функцию ключа разместите в его модуле менеджера. Это самостоятельное собственное хранилище, его не нужно назначать глобальным хранилищем конфигурации.
Пример работает только со своим строковым ключом объекта УчебныеКниги. В стандартном внутреннем хранилище используется отдельное пространство СинтаксисУчебный.УчебныеКниги; чужие системные ключи не читаются и не перезаписываются.
Дополнительный блок выполните в собственной серверной обработке или кнопке обычной формы, толстый клиент. Пользователю нужно право СохранениеДанныхПользователя. Параметр другого пользователя не задаётся; стандартное хранилище само проверяет АдминистрированиеДанных, если такой параметр передан.
Каждый обработчик вызывается своим публичным методом менеджера. Не вызывайте процедуру ОбработкаСохранения напрямую для имитации сохранения. Прямой ПолучитьСтандартноеХранилищеОбщихНастроек исключает возврат в настроенный пользовательский обработчик и рекурсию.
BSL, изменение своих настроек и запись в хранилище при сборке HTML не выполнялись. Показанный ручной опыт сохраняет только собственные учебные ключи.
Процедура ОбработкаПолученияОписания(КлючОбъекта, КлючНастроек, ОписаниеНастроек, Пользователь)
Пользователь = ПользовательУчебногоХранилища(Пользователь);
БазовыйКлюч = КлючУчебногоХранилища(КлючОбъекта);
База = ПолучитьСтандартноеХранилищеОбщихНастроек();
ОписаниеНастроек = База.ПолучитьОписание(БазовыйКлюч, КлючНастроек, Пользователь);
КонецПроцедурыТот же модуль: пространство собственных ключей
Функция КлючУчебногоХранилища(КлючОбъекта)
Если КлючОбъекта <> "УчебныеКниги" Тогда
ВызватьИсключение "Этот учебный пример обслуживает только ключ УчебныеКниги";
КонецЕсли;
Возврат "СинтаксисУчебный." + КлючОбъекта;
КонецФункцииТот же модуль: пустое имя означает текущего пользователя
Функция ПользовательУчебногоХранилища(Пользователь)
Если ПустаяСтрока(Пользователь) Тогда
Возврат ИмяПользователя();
КонецЕсли;
Возврат Пользователь;
КонецФункцииТот же модуль: ОбработкаСохранения
Процедура ОбработкаСохранения(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, Пользователь)
Пользователь = ПользовательУчебногоХранилища(Пользователь);
БазовыйКлюч = КлючУчебногоХранилища(КлючОбъекта);
База = ПолучитьСтандартноеХранилищеОбщихНастроек();
Если ОписаниеНастроек = Неопределено Тогда
База.Сохранить(БазовыйКлюч, КлючНастроек, Настройки, , Пользователь);
Иначе
База.Сохранить(БазовыйКлюч, КлючНастроек, Настройки, ОписаниеНастроек, Пользователь);
КонецЕсли;
КонецПроцедурыТот же модуль: ОбработкаЗагрузки
Процедура ОбработкаЗагрузки(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, Пользователь)
Пользователь = ПользовательУчебногоХранилища(Пользователь);
БазовыйКлюч = КлючУчебногоХранилища(КлючОбъекта);
База = ПолучитьСтандартноеХранилищеОбщихНастроек();
Если ОписаниеНастроек = Неопределено Тогда
Настройки = База.Загрузить(БазовыйКлюч, КлючНастроек, , Пользователь);
Иначе
Настройки = База.Загрузить(БазовыйКлюч, КлючНастроек, ОписаниеНастроек, Пользователь);
КонецЕсли;
КонецПроцедурыТот же модуль: ОбработкаУстановкиОписания
Процедура ОбработкаУстановкиОписания(КлючОбъекта, КлючНастроек, ОписаниеНастроек, Пользователь)
Пользователь = ПользовательУчебногоХранилища(Пользователь);
БазовыйКлюч = КлючУчебногоХранилища(КлючОбъекта);
Если КлючНастроек = Неопределено Тогда
КлючНастроек = Строка(Новый УникальныйИдентификатор);
КонецЕсли;
База = ПолучитьСтандартноеХранилищеОбщихНастроек();
База.УстановитьОписание(БазовыйКлюч, КлючНастроек, ОписаниеНастроек, Пользователь);
КонецПроцедурыСвоя серверная обработка: полный публичный цикл собственных настроек
Хранилище = ХранилищаНастроек.УчебныеНастройкиКниг;
Описание = Новый ОписаниеНастроек;
Описание.Представление = "Собственные книги: первоначальный вариант";
Настройки = Новый Структура("Количество,ПоказыватьСумму", 3, Истина);
Хранилище.Сохранить("УчебныеКниги", "Основной", Настройки, Описание);
Получено = Хранилище.Загрузить("УчебныеКниги", "Основной");
Если Получено = Неопределено Тогда
ВызватьИсключение "Собственные настройки не загрузились";
КонецЕсли;
Сообщить("Сохранённое количество: " + Строка(Получено.Количество));
Описание.Представление = "Собственные книги: уточнённое название";
Хранилище.УстановитьОписание("УчебныеКниги", "Основной", Описание);
ПрочитанноеОписание = Хранилище.ПолучитьОписание("УчебныеКниги", "Основной");
Сообщить(ПрочитанноеОписание.Представление);Разбор по шагам
Создайте собственное хранилище и разместите весь модуль из блоков.
В своей обработке выполните публичное сохранение / загрузку / изменение описания.
Проверьте количество 3 и новое представление, затем повторно загрузите свой ключ в следующем сеансе.
Как проверить результат
В ОбработкаЗагрузки результат передаётся параметру Настройки; Возврат из процедуры не заменяет этот выходной параметр.
Изменение представления не заменяет сохранённую структуру настроек. Для стандартного хранилища из ОписаниеНастроек используется Представление.
Новый ключ в ОбработкаУстановкиОписания возвращается изменением КлючНастроек, если передано Неопределено. Основной опыт использует явный ключ Основной.
Ожидаемый результат
Собственный публичный менеджер выполняет полный цикл на реальном внутреннем хранилище, не в фиктивном глобальном словаре.
На что обратить внимание
ПолучитьСтандартноеХранилищеОбщихНастроек не зависит от назначения пользовательского хранилища конфигурации.
Ключ объекта в этом учебном контракте строковый и заранее известен; не преобразуйте произвольные ссылки в строку ради универсального ключа.
Проверка пространства своего ключа не является проверкой имени конфигурации или версии платформы.
Сборка HTML не исполняет сохранение и не подтверждает запуск BSL.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.