Объект этого типа возвращается методом ВыбратьНастройкиПоУмолчанию объекта типа СтандартноеХранилищеНастроекМенеджер и представляет собой специализированный способ перебора настроек по умолчанию, содержащихся в хранилище. Обход выборки выполняется системой динамически. Это означает, что использование выборки не считывает все настройки по умолчанию из хранилища сразу, а выбирает их порциями из базы данных. Такой подход позволяет достаточно быстро обходить с помощью выборки хранилища, содержащие большие количества настроек по умолчанию и не загружает в память всю выборку.
Полное описание, параметры и ограничения
СтандартноеХранилищеНастроекВыборкаНастроекПоУмолчанию (StandardSettingsStorageDefaultSettingsSelection)
СтандартноеХранилищеНастроекВыборкаНастроекПоУмолчанию (StandardSettingsStorageDefaultSettingsSelection)
Доступен, начиная с версии 8.3.26.
Свойства:
ДатаИзменения (ChangeDate)
КлючОбъекта (ObjectKey)
Настройки (Settings)
Методы:
Следующий (Next)
Описание:
Объект этого типа возвращается методом ВыбратьНастройкиПоУмолчанию объекта типа СтандартноеХранилищеНастроекМенеджер и представляет собой специализированный способ перебора настроек по умолчанию, содержащихся в хранилище. Обход выборки выполняется системой динамически. Это означает, что использование выборки не считывает все настройки по умолчанию из хранилища сразу, а выбирает их порциями из базы данных. Такой подход позволяет достаточно быстро обходить с помощью выборки хранилища, содержащие большие количества настроек по умолчанию и не загружает в память всю выборку.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Использование в версии:
Доступен, начиная с версии 8.3.26.
Методическая информация
Практические примеры
Сохранить собственное значение по умолчанию в системном хранилище
Отдельный новый ключ, методы по умолчанию и особая выборка. Это не массовое изменение пользовательских настроек.
Где и как запускать
Полный серверный общий модуль только собственной отдельной учебной базы; сохранение здесь реальное.
Подготовка
Только собственная отдельная учебная база 8.5.1.1343 с конфигурацией УчебнаяКонфигурацияСинтаксиса. Не запускайте уроки сохранения в КА2/УНФ/УТ/БП или их рабочем сеансе.
В своей учебной базе создайте пользователя с точным именем guide-owned-user и войдите под ним. В собственной учебной роли разрешите СохранениеДанныхПользователя. Не расширяйте права рабочего пользователя.
Создайте общий модуль УчебноеХранилищеНастроек с флагом Сервер. Каждый урок — отдельный полный модуль с ВыполнитьПример() Экспорт, вызванный из серверной учебной команды.
Уроки сохранения действительно пишут настройки в учебную базу. Новый ключ объекта содержит собственный UUID; перед записью проверяется отсутствие записи, после опыта удаляется только созданная запись.
Личный вариант использует стандартное хранилище общих настроек текущего учебного пользователя; вариант по умолчанию — только ХранилищеСистемныхНастроек.
При ошибке очистки сохраните сообщение с собственным ключом для точечной проверки в этой учебной базе. Не удаляйте все настройки и не подставляйте Неопределено в аргументы удаления.
Процедура ВыполнитьПример() Экспорт
ПользовательУрока = ИмяПользователя();
Если ПользовательУрока <> "guide-owned-user" Тогда
ВызватьИсключение "Войдите под собственным учебным пользователем guide-owned-user";
КонецЕсли;
КлючОбъекта = "guide-owned-settings-" + Строка(Новый УникальныйИдентификатор);
КлючНастроек = "guide-book-view";
Хранилище = ХранилищеСистемныхНастроек;
Отбор = Новый Структура("КлючОбъекта", КлючОбъекта);
Проверка = Хранилище.ВыбратьНастройкиПоУмолчанию(Отбор);
Если Проверка.Следующий() Тогда
ВызватьИсключение "Новый ключ уже занят: никакая существующая настройка не заменяется";
КонецЕсли;
Настройки = Новый Структура("Товар,Количество,ПоказыватьСумму", "Книга", 3, Истина);
Создано = Ложь;
ОшибкаОперации = "";
ОшибкаОчистки = "";
Попытка
Хранилище.СохранитьНастройкуПоУмолчанию(КлючОбъекта, Настройки);
Создано = Истина;
Загружено = Хранилище.ЗагрузитьНастройкуПоУмолчанию(КлючОбъекта);
Если ТипЗнч(Загружено) <> Тип("Структура") Тогда
ВызватьИсключение "Не получена собственная настройка по умолчанию";
КонецЕсли;
Сообщить(Загружено.Товар = "Книга");
Сообщить(Загружено.Количество = 3);
Сообщить(Загружено.ПоказыватьСумму);
ВыборкаПоУмолчанию = Хранилище.ВыбратьНастройкиПоУмолчанию(Отбор);
Строк = 0;
Пока ВыборкаПоУмолчанию.Следующий() Цикл
Строк = Строк + 1;
Сообщить(ВыборкаПоУмолчанию.КлючОбъекта = КлючОбъекта);
Сообщить(ТипЗнч(ВыборкаПоУмолчанию.ДатаИзменения) = Тип("Дата"));
Сообщить(ВыборкаПоУмолчанию.Настройки.Количество = 3);
КонецЦикла;
Сообщить(Строк = 1);
Исключение
ОшибкаОперации = ОписаниеОшибки();
КонецПопытки;
Если Создано Тогда
Попытка
Хранилище.УдалитьНастройкуПоУмолчанию(КлючОбъекта);
Сообщить(Хранилище.ЗагрузитьНастройкуПоУмолчанию(КлючОбъекта) = Неопределено);
Исключение
ОшибкаОчистки = ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Если НЕ ПустаяСтрока(ОшибкаОперации) ИЛИ НЕ ПустаяСтрока(ОшибкаОчистки) Тогда
ВызватьИсключение "Ошибка учебной настройки " + КлючОбъекта + "/" + КлючНастроек
+ ": " + ОшибкаОперации + " Очистка: " + ОшибкаОчистки
+ " При неопределённом результате записи проверьте только этот собственный ключ в учебной базе";
КонецЕсли;
Сообщить("Собственная настройка удалена. Другие ключи и пользователи не затронуты");
КонецПроцедурыРазбор по шагам
Точная собственная конфигурация и учебный пользователь проверяются до обращения к хранилищу.
Для методов по умолчанию выбираем именно ХранилищеСистемныхНастроек; общие настройки предыдущих уроков здесь не подходят.
Выборка проверки ограничена только собственным новым КлючОбъекта. Пока записи нет, сохранение не заменяет старое значение.
Сохраняем структуру и загружаем её штатным методом ЗагрузитьНастройкуПоУмолчанию.
Особая выборка имеет только ДатаИзменения, КлючОбъекта и Настройки — не читаем у неё Пользователь/КлючНастроек.
Удаляем только собственное значение по умолчанию. Этот ключ не является зарезервированным ключом настоящей формы или интерфейса.
Как проверить результат
Семь проверок данных/особой выборки и контроль удаления — Истина.
Под собственным ключом временно находится Книга / 3 / Истина; после удаления загрузка возвращает Неопределено.
Стандартные виды форм, настройки других пользователей и их ключи не меняются.
Ожидаемый результат
Показан полный отдельный цикл настройки по умолчанию с точечной очисткой.
На что обратить внимание
Методы по умолчанию допускаются только системным хранилищем; сам класс менеджера у других хранилищ такой же.
УдалитьНастройкуПоУмолчанию(Неопределено) удаляет все значения по умолчанию — такой вызов здесь запрещён.
Не сохраняйте под ключом рабочей формы: собственный непредусмотренный ключ не применяется к её интерфейсу автоматически.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.