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