СтандартноеХранилищеНастроекВыборкаНастроекПоУмолчанию

Типы · StandardSettingsStorageDefaultSettingsSelection

Объект этого типа возвращается методом ВыбратьНастройкиПоУмолчанию объекта типа СтандартноеХранилищеНастроекМенеджер и представляет собой специализированный способ перебора настроек по умолчанию, содержащихся в хранилище. Обход выборки выполняется системой динамически. Это означает, что использование выборки не считывает все настройки по умолчанию из хранилища сразу, а выбирает их порциями из базы данных. Такой подход позволяет достаточно быстро обходить с помощью выборки хранилища, содержащие большие количества настроек по умолчанию и не загружает в память всю выборку.

Полное описание, параметры и ограничения

СтандартноеХранилищеНастроекВыборкаНастроекПоУмолчанию (StandardSettingsStorageDefaultSettingsSelection)

СтандартноеХранилищеНастроекВыборкаНастроекПоУмолчанию (StandardSettingsStorageDefaultSettingsSelection)

Доступен, начиная с версии 8.3.26.

Свойства:
ДатаИзменения (ChangeDate)
КлючОбъекта (ObjectKey)
Настройки (Settings)

Методы:
Следующий (Next)

Описание:

Объект этого типа возвращается методом ВыбратьНастройкиПоУмолчанию объекта типа СтандартноеХранилищеНастроекМенеджер и представляет собой специализированный способ перебора настроек по умолчанию, содержащихся в хранилище. Обход выборки выполняется системой динамически. Это означает, что использование выборки не считывает все настройки по умолчанию из хранилища сразу, а выбирает их порциями из базы данных. Такой подход позволяет достаточно быстро обходить с помощью выборки хранилища, содержащие большие количества настроек по умолчанию и не загружает в память всю выборку.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Использование в версии:

Доступен, начиная с версии 8.3.26.

Методическая информация

Практические примеры

Сохранить собственное значение по умолчанию в системном хранилище

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

Где и как запускать

Полный серверный общий модуль только собственной отдельной учебной базы; сохранение здесь реальное.

Подготовка

  1. Только собственная отдельная учебная база 8.5.1.1343 с конфигурацией УчебнаяКонфигурацияСинтаксиса. Не запускайте уроки сохранения в КА2/УНФ/УТ/БП или их рабочем сеансе.

  2. В своей учебной базе создайте пользователя с точным именем guide-owned-user и войдите под ним. В собственной учебной роли разрешите СохранениеДанныхПользователя. Не расширяйте права рабочего пользователя.

  3. Создайте общий модуль УчебноеХранилищеНастроек с флагом Сервер. Каждый урок — отдельный полный модуль с ВыполнитьПример() Экспорт, вызванный из серверной учебной команды.

  4. Уроки сохранения действительно пишут настройки в учебную базу. Новый ключ объекта содержит собственный UUID; перед записью проверяется отсутствие записи, после опыта удаляется только созданная запись.

  5. Личный вариант использует стандартное хранилище общих настроек текущего учебного пользователя; вариант по умолчанию — только ХранилищеСистемныхНастроек.

  6. При ошибке очистки сохраните сообщение с собственным ключом для точечной проверки в этой учебной базе. Не удаляйте все настройки и не подставляйте Неопределено в аргументы удаления.

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

Разбор по шагам

  1. Точная собственная конфигурация и учебный пользователь проверяются до обращения к хранилищу.

  2. Для методов по умолчанию выбираем именно ХранилищеСистемныхНастроек; общие настройки предыдущих уроков здесь не подходят.

  3. Выборка проверки ограничена только собственным новым КлючОбъекта. Пока записи нет, сохранение не заменяет старое значение.

  4. Сохраняем структуру и загружаем её штатным методом ЗагрузитьНастройкуПоУмолчанию.

  5. Особая выборка имеет только ДатаИзменения, КлючОбъекта и Настройки — не читаем у неё Пользователь/КлючНастроек.

  6. Удаляем только собственное значение по умолчанию. Этот ключ не является зарезервированным ключом настоящей формы или интерфейса.

Как проверить результат

  1. Семь проверок данных/особой выборки и контроль удаления — Истина.

  2. Под собственным ключом временно находится Книга / 3 / Истина; после удаления загрузка возвращает Неопределено.

  3. Стандартные виды форм, настройки других пользователей и их ключи не меняются.

Ожидаемый результат

Показан полный отдельный цикл настройки по умолчанию с точечной очисткой.

На что обратить внимание

  1. Методы по умолчанию допускаются только системным хранилищем; сам класс менеджера у других хранилищ такой же.

  2. УдалитьНастройкуПоУмолчанию(Неопределено) удаляет все значения по умолчанию — такой вызов здесь запрещён.

  3. Не сохраняйте под ключом рабочей формы: собственный непредусмотренный ключ не применяется к её интерфейсу автоматически.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.