1. Главная страница » Компьютеры

1С хранилище вариантов отчета

Автор: | 16.12.2019

Сохранение пользовательских настроек — достаточно важный момент в любой информационной системе, ведь иногда на настройку определенного функционала уходит большое количество времени и сил.

Специально для этого в платформе 1С были созданы 2 объекта — стандартные общие хранилища и хранилища настроек 1С, созданные разработчиком на стадии разработки конфигурации.

Стандартное хранилище настроек платформы 1С

Данная функция появилась вместе с платформой 1С версии 8.2. Она позволяет сохранить любые данные настроек в разрезе объекта, определенной настройки 1С, пользователя.

  • Записать настройки можно при помощи метода ХранилищеОбщихНастроек.Сохранить().
  • Потом для прочтения нужно использовать ХранилищеОбщихНастроек.Загрузить() с теми же параметрами.
  • Если настройка стала не актуальной, её можно удалить методом ХранилищеОбщихНастроек.Удалить().
  • Также в разрезе объекта можно получить список сохраненных настроек с помощью метода ХранилищеОбщихНастроек.ПолучитьСписок().

Получите 267 видеоуроков по 1С бесплатно:

Сохраненные настройки хранятся в отдельной сводной таблице БД.

Хранилище настроек, создаваемое в конфигураторе

Хранилище настроек может создать и сам разработчик в конфигураторе 1С:

Вместо стандартных хранилищ можно назначить хранилище, созданное разработчиком. Эта настройка производится в палитре свойств конфигурации:

Создание своих настроек может понадобиться в том случае, если:

  • необходима миграции настроек между базами данных;
  • необходим ссылочный контроль данных настроек.

Использование хранилищ настроек в отчетах и обработках 1С

Хранилище настроек можно указать для определенного отчета из конфигурации, указывается в свойствах отчета:

Флаг Сохраняемые данные данные позволяет автоматически сохранить значение при закрытии обработки:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Пользователь при работе с программами 1С задает массу разнообразнейших настроек, начиная с настроек какой-либо сервисной обработки и до формирования отчетов любых видов. Чтобы постоянно не тратить время на повторяющиеся действия, все заданные параметры можно сохранять для дальнейшего использования их в работе. Платформа 1С:Предприятие снабжена необходимым функционалом для сохранения и, в случае необходимости, быстрого восстановления заданных параметров с помощью коротких команд. Купив 1С:Бухгалтерия и правильно установив настройки самостоятельно, следуя нашей инструкции, можно серьезно сэкономить время при работе с программой.


Существуют хранилища двух видов. Рассмотрим их использование на примере программы «1С:Бухгалтерия предприятия 3.0».

Стандартное хранилище настроек пользователя 1С

В решениях 1С:Предприятие предусмотрено стандартное хранение, предустановленное на уровне разработки. При таком варианте сделанные установки хранятся в таблицах ИБ.

Администратор может это изменить, задав новые места хранения и определив их в свойствах конфигурации. Это актуально при необходимости контроля ссылочной целостности, перемещении настроек между информационными базами, когда необходима определенная структура хранения настроек и другие ситуации. Если вы не уверены в своих знаниях, наши специалисты с радостью помогут вам в рамках услуг по доработке типовой конфигурации 1С.

Если поля хранилищ оставить пустыми, то система будет использовать стандартное хранилище.


К настройкам из предустановленных хранилищ администратор имеет возможность обратиться как к свойству глобального контекста:

ХранилищеВариантовОтчетов – для установленных параметров вариантов отчетов, сохраненных пользователем.

Пример использования в коде.


ХранилищеПользовательскихНастроекОтчетов – ориентирован на организацию доступа к сохраненным настройкам отчетов пользователя.

Пример использования в коде.


ХранилищеНастроекДанныхФорм – хранит пользовательские установки данных форм.

Пример использования в коде.


ХранилищеОбщихНастроек – с его помощью организовано хранение и доступ к общим настройкам программы. Этот вид хранилища не используется платформой самостоятельно. Он может использоваться разработчиком, чтобы хранить параметры, заданные пользователем. Пример использования в коде.


ХранилищеСистемныхНастроек – для организации хранения системных установок программы и доступа к ним.


ХранилищеПользовательскихНастроекДинамическихСписков – с его помощью осуществляется хранение пользовательских установок динамических списков.


Механизм работы

Механизм «Хранилища настроек» как объект метаданных описывает порядок хранения настроек некоторых объектов. Откроем для примера программу «1С:Бухгалтерия предприятия 3.0» в конфигурационном режиме и развернем дерево метаданных. Нас интересует узел в разделе «Общие-Хранилища настроек».


Так, разработчиком может быть организовано хранение параметров. В свойствах конфигурации или объекта указывается, что оно будет использовано для хранения установок формы.

Использование в отчетах и обработках

Если мы откроем в режиме конфигурирования свойства любого отчета, то на закладке «Прочее» мы увидим параметр, определяющий, какое хранилище задано для хранения установок выбранного объекта.


В управляемых формах имеется два варианта:

  • Сохранение параметров в предустановленное хранилище при закрытии формы автоматом и при открытии – восстановление из него;
  • В настройках. Чтобы воспользоваться этим вариантом, установим в списке реквизитов формы галку напротив сохраняемого реквизита в колонке «Сохранять».


Реквизиты формы отчета

С помощью вышеописанного механизма можно сохранить данные не в системных таблицах, а отдельных объектах конфигурации. Для его реализации программист описывает алгоритмы, по которым идет процесс сохранения/восстановления настроек.

Хранилища настроек дают возможность сохранить и, если надо посмотреть, настройки параметров формируемых отчетов, что позволяет автоматически заполнять формы настроек, тем самым оптимизируя работу. Если у вас остались вопросы, обращайтесь на линию консультаций 1С 8.3, наши специалисты с радостью вам помогут.

1. Общие принципы работы хранилища настроек

Объект метаданных ХранилищеНастроек предназначен для обеспечения хранения прикладных настроек конфигурации. За счет реализации обработчиков событий и создания форм объекта выполняется модификация механизма работы с настройками таким образом, что изменяется место хранения настроек (вместо системных таблиц используются объекты конфигурации, которые создал разработчик) и визуальные механизмы работы с настройками.
В конфигурации может быть определено произвольное количество хранилищ настроек.
Хранилище настроек может использоваться как только для программной работы, так и для программной и интерактивной работы. В первом случае для обеспечения необходимой функциональности требуется обязательная реализация обработчиком модуля объекта ХранилищеНастроек:
● ОбработкаСохранения – содержит реализацию метода Сохранить() . В данном обработчике необходимо выполнить сохранение настройки в некоторый объект. Например, в элемент справочника.
● ОбработкаЗагрузки – содержит реализацию метода Загрузить() . В данном обработчике необходимо получить настройки из некоторого объекта.
Например, из элемента справочника.
ВНИМАНИЕ! Если не реализовать тот или иной обработчик, то будет недоступно выполнение действия, которое обработчик реализует. Например, если не реализовать обработчик ОбработкаСохранения , будет недоступно сохранение настроек.
В процессе разработки хранилища разработчик самостоятельно определяет, каким образом будет идентифицироваться объект хранилища, тем самым определяя тип параметра. Например, если настройки сохраняются в справочнике, то в качестве ключа настройки можно использовать поле Код или значение Ссылка (элемента справочника).
Если для работы с настройками требуется интерактивность (формы сохранения и восстановления настроек), то необходимо реализовать формы сохранения и восстановления настроек и заполнить соответствующие свойства объекта ХранилищеНастроек (Основная форма сохранения и Основная форма загрузки).
ВНИМАНИЕ! Реализация форм сохранения и восстановления настроек является обязательной для выполнения интерактивных операций.
Программное сохранение и восстановление настроек возможно и без реализации этих форм.
Когда пользователь применяет команды сохранения или загрузки настроек, система получает соответствующую форму объекта хранилища настроек и отображает ее на экране. Например, при сохранении настроек отчета система будет использовать форму сохранения того объекта метаданных, который указан в качестве хранилища настроек отчетов (непосредственно у самого отчета или у всей конфигурации). При этом форме будут переданы параметры, более подробную информацию о которых можно получить в описании объекта ОписаниеНастроек в синтакс-помощнике.
При создании формы с помощью конструктора необходимые параметры будут автоматически добавлены в список параметров формы.
В формах следует использовать переданные параметры и соответствующим образом фильтровать список настроек. Так, следует отображать только настройки для указанного в параметре КлючОбъекта объекта настройки (например, отчета).
Если пользователь выбрал настройку, то результатом работы формы должно быть значение типа ВыборНастроек. В этом значении, в свойстве КлючНастроек , должен находиться ключ выбранной настройки (например, код элемента справочника или другой, идентифицирующий настройку параметр), а в свойстве Д ополнительныеСвойства – дополнительная информация, которую пользователь мог указать в форме:

Закрыть ( Новый ВыборНастроек ( КлючСохраняемойНастройки ));
ВНИМАНИЕ! Не поддерживается сохранение настройки в стандартном хранилище настроек, если длина ключа объекта превышает 256 символов; длина ключа настроек превышает 128 символов; длина имени пользователя превышает 64 символа.

2. Создание объекта метаданных

Для создания Хранилища настроек следует создать одноименный объект конфигурации. Это можно сделать в ветке Общие, пункт Хранилища настроек.

Рис. 1. Создание хранилища настроек

3. Стандартное хранилище настроек

Стандартное хранилище настроек представляется во встроенном языке объектом СтандартноеХранилищеНастроекМенеджер. Данный объект реализует тот
же набор методов, что и объект ХранилищеНастроекМенеджер, и дополнительно реализует методы:
● ПолучитьСписок() – метод получения списка настроек для выбранного объекта настройки;
● Удалить() – удаление определенной настройки выбранного объекта настройки.
Стандартное хранилище сохраняет настройки в системных таблицах информационной базы.
В качестве ключа объекта настройки и в качестве ключа настройки системное хранилище настроек принимает строку.
В качестве настроек системное хранилище принимает любое значение, которое может быть помещено в хранилище значений.
Примечание. При использовании методов Сохранить() , Удалить() и УстановитьОписание() объекта СтандартноеХранилищеНастроекМенеджер следует учитывать, что если объект, к которому относятся настройки (например, форма), в текущем сеансе уже использовался, то изменения произойдут только в следующем сеансе.
Совет. При существенном программном изменении настроек (например, при копировании настроек от одного пользователя другому) рекомендуется предложить пользователю выполнить перезапуск клиентского приложения.

4. Сохранение настроек форм

Разработчик может управлять сохранением данных форм в настройках. Для этого при разработке формы ему необходимо воспользоваться следующими свойствами формы:
● Сохранение данных формы в настройках – при помощи данного свойства разработчик формы может включить возможность сохранения данных формы (с возможностью выбора настройки, в которую будут сохраняться данные). Если у формы включена необходимость сохранения, то форма предоставляет команды сохранения/загрузки настроек.
● Автоматическое сохранение данных в настройках – указывает необходимость автоматического сохранения настроек при закрытии формы и восстановлении при открытии формы. При этом не важно, используется или нет список настроек.
Если для формы установлена возможность сохранения данных, то необходимо указать, какие реквизиты формы должны сохраняться (колонка Сохранение на закладке Реквизиты редактора формы).
При сохранении настроек в качестве ключа объекта используется полное имя формы. В настройках сохраняется объект типа Соответствие, в котором в качестве ключей находятся пути к сохраняемым реквизитам, а в качестве значений – их (реквизитов) значения.

5. Сохранение настроек отчетов

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

6. Сохранение настроек динамических списков

Пользовательские настройки динамических списков сохраняются в хранилище, которое указано в свойствах конфигурации ( ХранилищеПользовательскихНастроекДинамическихСписков ). Если в свойствах конфигурации не указано хранилище настроек, то используется системное хранилище.
Возможностью автоматического сохранения пользовательских настроек динамического списка управляет свойство Автоматическое сохранение пользовательских настроек реквизита формы типа ДинамическийСписок . Когда свойство установлено в значение Истина, пользовательские настройки автоматически сохраняются при закрытии формы и загружаются при ее открытии.
Форма динамического списка предоставляет команды сохранения и загрузки пользовательских настроек. Также динамический список предоставляет команду для установки стандартных настроек. В случае выполнения данной команды в динамический список попадут настройки, которые находятся в свойстве Список.КомпоновщикНастроек.Настройки.
Для динамического списка возможен вызов события ПриОбновленииСоставаПользовательскихНастроекНаСервере в следующих случаях:
● При открытии формы динамического списка;
● После завершения редактирования пользовательских настроек, если изменился состав настроек.

7. Порядок разработки хранилища настроек

Далее приводится рекомендованный порядок разработки хранилищ настроек:
1. Определяется, какое хранилище (см. начало раздела) будет использоваться. Например, будет реализовано хранилище настроек данных форм конфигурации.
2. Определяется перечень объектов метаданных, которые будут использовать это хранилище, и определяется перечень хранимой в хранилище информации, ее структура и типы. Эта информация поможет нам правильно выбрать объект метаданных, в данных которого будут храниться наши настройки.
3. На основании информации из п. 2 создается объект (и его структура), который будет хранить настройки. Пусть наши настройки хранятся в элементах справочника. Так как в нашем случае структура сохраняемых данных крайне разнородна, то нет смысла реализовывать отдельный набор реквизитов для хранения настроек каждой формы. Поэтому настройки будут храниться в реквизите справочника типа ХранилищеЗначения .
4. Создается объект типа ХранилищеНастроек , и для него выполняется реализация форм сохранения и загрузки. Тем самым обеспечивается интерактивность при сохранении и восстановлении настроек.
5. Для созданного объекта ХранилищеНастроек выполняется реализация обработчиков событий, связанных с сохранением и восстановлением настроек. Если не выполнить эту операцию, то не будут происходить собственно операции чтения/записи настроек. Для решения этой задачи нужно реализовать обработчики событий ОбработкаСохранения и ОбработкаЗагрузки в модуле созданного объекта типа ХранилищеНастроек.
6. В объектах, выделенных в п. 2 (или в свойствах конфигурации), заполняются соответствующие свойства, тем самым указывая объектам, в каких хранилищах будут храниться настройки. В нашем примере необходимо заполнить свойство конфигурации Хранилище настроек данных форм ссылкой на объект, созданный на шаге 4.
7. При необходимости выполняется реализация обработчиков событий, связанных с сохранением и восстановлением настроек в тех прикладных объектах, где это необходимо.

8. Работа с хранилищем настроек из встроенного языка

В данном примере рассматривается копирование настроек текущего пользователя другим пользователям системы. В качестве источника настроек используется ХранилищеСистемныхНастроек .
ПРИМЕЧАНИЕ. Пример, приведенный ниже, не является законченным. Он предназначен для демонстрации работы с стандартным хранилищем настроек.
Список имен пользователей передается параметром процедуры СкопироватьНастройки() в виде массива.

Процедура СкопироватьНастройки(СписокПользователей )
ОписаниеНастроек = Новый ОписаниеНастроек ;
ВыборкаНастроек = ХранилищеСистемныхНастроек.Выбрать ();
Пока ВыборкаНастроек.Следующий() Цикл
Для каждого Пользователь Из СписокПользователей Цикл
ОписаниеНастроек.Представление = ВыборкаНастроек.Представление ;
ХранилищеНастроек.Сохранить(ВыборкаНастроек.КлючОбъекта, ВыборкаНастроек.КлючНастроек, ВыборкаНастроек.Настройки, ОписаниеНастроек);
КонецЦикла;
КонецЦикла;
КонецПроцедуры

Читайте также:  Intel core i3 2365m

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *