Объект 1С "Хранилище настроек" - это общий объект конфигурации 1С, который позволяет разработчику создавать собственные механизмы хранения настроек в тех случаях, когда возможности стандартного механизма хранения настроек недостаточны.
Хранилища настроек позволяют разработчику хранить пользовательские настройки не в системных таблицах информационной базы, а в объектах конфигурации (например, в специальных справочниках или в регистрах сведений). Благодаря этому разработчик может реализовать собственный формат хранения этих настроек и собственные алгоритмы работы с этими настройками в случаях:
- когда требуется особенная структура хранения настроек;
- когда необходимо обеспечить передачу настроек в пределах распределенной информационной базы;
- когда существуют особенные требования к администрированию настроек и т.д.
Создание своих настроек может понадобиться в том случае, если:
- необходима миграция настроек между базами данных;
- необходим ссылочный контроль настроек.
В свойствах конфигурации, отчетов, обработок или форм можно переопределить сохранение настроек в хранилище, добавленное разработчиком. А в формах загрузки и сохранения настроек описать алгоритмы, в соответствии с которыми настройки будут сохраняться/восстанавливаться.
Использование стандартных хранилищ настроек 1С
Стандартное хранилище настроек 1С используется платформой по умолчанию в тонком клиенте для сохранения настроек 1С пользователя в следующих механизмах платформы:
- командный управляемый интерфейс;
- формы;
- настройки и варианты отчетов.
По умолчанию в конфигурации имеются следующие хранилища настроек:
- ХранилищеВариантовОтчетов — для доступа к настройкам вариантов отчетов.
- ХранилищеПользовательскихНастроекОтчетов — для доступа к пользовательским настройкам отчетов.
- ХранилищеНастроекДанныхФорм — для доступа к пользовательским настройкам данных форм.
- ХранилищеОбщихНастроек — для доступа к общим настройкам.
- ХранилищеСистемныхНастроек — для доступа к системным настройкам.
- ХранилищеПользовательскихНастроекДинамическихСписков — для доступа к пользовательским настройкам динамических списков.
К каждому из этих хранилищ можно обратиться как к свойству глобального контекста.
Стандартные хранилище разработчик может использовать для своих нужд, сохраняя различные настройки в разрезе пользователя, объекта и самой настройки.
Настройка объекта 1С "Хранилище настроек" в конфигураторе
Хранилище настроек в конфигураторе 1С может создать разработчик.
Использование Хранилища настроек, созданного разработчиком:
- В тонком клиенте 1С возможно автоматическое использование хранилища.
- В управляемой форме - настройкой параметров:
- АвтоматическоеСохранениеДанныхВНастройках – автоматически в стандартное хранилище настроек форм;
- СохранениеДанныхВНастройках – "Использовать список" – в списке реквизитов формы появится колонка флагов "Сохранение"; а ниже параметра - поле "Хранилище настроек", в котором можно указать созданное хранилище настроек.
- В отчете (в том числе внешнем) - настройкой параметров "Хранилище вариантов" и "Хранилище настроек" (для выбора созданного хранилища).
- В толстом клиенте - необходимо прописать непосредственный вызов сохранения настроек 1С:
1ХранилищаНастроек.ИмяХранилища.Сохранить()
При добавлении в конфигурацию собственного хранилища настроек 1С требуется прописать обработчики загрузки и сохранения значений, иначе хранилище работать не будет.
Программные методы работы с хранилищами настроек 1С
Для работы с хранилищами настроек (как со стандартными, так и с добавленными программистом) используются следующие методы.
Запись и получение настройки:
1 2 |
ХранилищеОбщихНастроек.Сохранить(НазваниеОбъекта, НазваниеНастройки, ЗначениеНастройки, ОписаниеНастройки, ИмяПользователя); ЗначениеНастройки = ХранилищеОбщихНастроек.Загрузить(НазваниеОбъекта, НазваниеНастройки, ОписаниеНастройки, ИмяПользователя); |
Удаление настройки:
1 |
ХранилищеОбщихНастроек.Удалить(НазваниеОбъекта, НазваниеНастройки, ИмяПользователя); |
Получение списка настроек:
1 |
СписокЗначенийНастроек = ХранилищеОбщихНастроек.ПолучитьСписок(ИмяОбъекта, ИмяПользователя); |
ВАЖНО! Параметры НазваниеОбъекта, НазваниеНастройки и ИмяПользователя должны строковой тип.