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