Очистка хранилища настроек пользователей. Работа с хранилищем конфигурации удаленно

  • 28.06.2023

Настройки пользователя в 1С обычно разделены на три части.

Во-первых, платформа 1С позволяет каждому пользователю делать свои собственные настройки 1С для удобства. Например, настройки 1С отчетов СКД.

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

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

Где хранить все эти настройки в 1С?

Как настройки 1С сохраняли раньше

В платформа предлагала следующий стандартный вариант:

  • Когда требуется запомнить настройку 1С, программист использует функцию
    СохранитьЗначение(«ИмяНастройки», Значение);
  • Чтобы прочитать настройку 1С, используется функция
    Значение = ВосстановитьЗначение(«ИмяНастройки», Значение);

Соответственно программист создает кнопки сохранения и восстановления настроек 1С, а пользователь использует этот механизм (ну или программист сохраняет их автоматически).

В качестве значения можно использовать не только число или строку, но и например Структуру – тип, который позволяет хранить в себе множество значений с их наименованиями, например:
Настройки = Новый Структура();
Настройки.Вставить(«ИмяНастройки», Значение);
Значение = Настройки.ИмяНастройки;

Настройка 1С сохраняется для того пользователя, который нажал разработанную программистом кнопку сохранения настроек 1С (или под которым эти действия выполнились автоматически). Настройки 1С хранятся при этом в текстом файле в папке с базой данных (при использовании файловой базы данных).

Также программист был волен разрабатывать свои произвольные методы хранения настроек 1С с использованием обычных методов – например, с помощью работы с текстовыми и XML файлами – сохранять настройки 1С произвольным образом в файл.

В типовых конфигурациях настройки 1С отчетов сохранялись в регистр сведений. А настройки 1С отчетов СКД можно сохранить в файл XML.

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

Все эти возможности остались и в новой платформе 8.2, но появился наконец некий «стандартный метод» сохранения настроек – Хранилище настроек 1С.

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

Стандартное хранилище настроек 1С используется платформой по умолчанию в тонком клиенте для сохранения настроек 1С пользователя в следующих механизмах платформы:

  • Командный управляемый интерфейс
  • Формы
  • Настройки и варианты отчетов.

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

  • Когда требуется запомнить настройку
    ХранилищеОбщихНастроек.Сохранить("ИмяОбъекта", "ИмяНастроек", Значение);
  • Чтобы прочитать настройку
    Значение = ХранилищеОбщихНастроек.Загрузить("ИмяОбъекта", "ИмяНастроек", Значение);
  • Чтобы получить список настроек
    Список = ХранилищеОбщихНастроек.ПолучитьСписок("ИмяОбъекта");

Настройки 1С сохраняются непосредственно в базе данных, в специальных таблицах.

Как видно, по сравнению со старым механизмом, добавился дополнительный разрез – имя объекта. Платформа, при автоматическом сохранении используется имя объекта 1С в метаданных с указанием вида, например:
Отчет.Продажи

Также появилась возможность управлять именем пользователя, для которого будут сохранены настройки 1С, указав его последним параметром.

Существуют следующие стандартные хранилища настроек 1С:

  • ХранилищеСистемныхНастроек
  • ХранилищеОбщихНастроек
  • ХранилищеНастроекДанныхФорм
  • ХранилищеПользовательскихНастроекОтчетов и ХранилищеВариантовОтчетов.

Хранилище настроек 1С

Программист может создать собственные хранилища настроек – в конфигураторе.

Это предполагается делать в следующих случаях:

  • Ссылочный контроль при хранении настроек 1С
  • Миграция настроек 1С при использовании
  • Специальная структура настроек 1С (для автоматического ее соблюдения)
  • Переопределение стандартных хранилищ.

Для создания собственного хранилища настроек 1С – необходимо добавить таковое в конфигураторе в окне конфигурации в ветке Общие/Хранилища настроек 1С.

Переопределить стандартные хранилища настроек 1С, используемые платформой можно в свойствах конфигурации (корневой ветки конфигурации, которую программисты обычно называют Корень или Голова).

Если в свойствах пустая строка – используется стандартное хранилище настроек 1С, иначе – используется выбранное, а стандартное не используется.

В использование хранилища возможно автоматически:


В толстом клиенте для использования требуется в коде на языке 1С прописывать непосредственный вызов сохранения настроек 1С:
ХранилищаНастроек.ИмяХранилища.Сохранить();

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

Собственно в этих функциях Вы самостоятельно пишете код сохранения значения (в стандартное хранилище или в файл или в справочник или в регистр сведений и т.п.), и загрузки значения.

Настройки пользователя в 1С обычно разделены на три части.

Во-первых, платформа 1С позволяет каждому пользователю делать свои собственные настройки 1С для удобства. Например, настройки 1С отчетов СКД.

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

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

Где хранить все эти настройки в 1С?

Как настройки 1С сохраняли раньше

В толстом клиенте 1С платформа предлагала следующий стандартный вариант:

Когда требуется запомнить настройку 1С, программист использует функцию

Значение = ВосстановитьЗначение(«ИмяНастройки», Значение);

Соответственно программист создает кнопки сохранения и восстановления настроек 1С, а пользователь использует этот механизм (ну или программист сохраняет их автоматически).

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

Настройки = Новый Структура(); Настройки.Вставить(«ИмяНастройки», Значение); Значение = Настройки.ИмяНастройки;

Настройка 1С сохраняется для того пользователя, который нажал разработанную программистом кнопку сохранения настроек 1С (или под которым эти действия выполнились автоматически). Настройки 1С хранятся при этом в текстом файле в папке с базой данных (при использовании файловой базы данных).

Также программист был волен разрабатывать свои произвольные методы хранения настроек 1С с использованием обычных методов – например, с помощью работы с текстовыми и XML файлами – сохранять настройки 1С произвольным образом в файл.

В типовых конфигурациях настройки 1С отчетов сохранялись в регистр сведений. А настройки 1С отчетов СКД можно сохранить в файл XML.

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

Все эти возможности остались и в новой платформе 8.2, но появился наконец некий «стандартный метод» сохранения настроек – Хранилище настроек 1С.

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

Стандартное хранилище настроек 1С используется платформой по умолчанию в тонком клиенте для сохранения настроек 1С пользователя в следующих механизмах платформы:

Командный управляемый интерфейс
Формы
Настройки и варианты отчетов.

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

Когда требуется запомнить настройку

Значение = ХранилищеОбщихНастроек.Загрузить("ИмяОбъекта", "ИмяНастроек", Значение);

Чтобы получить список настроек

Список = ХранилищеОбщихНастроек.ПолучитьСписок("ИмяОбъекта");

Настройки 1С сохраняются непосредственно в базе данных, в специальных таблицах.

Как видно, по сравнению со старым механизмом, добавился дополнительный разрез – имя объекта. Платформа, при автоматическом сохранении используется имя объекта 1С в метаданных с указанием вида, например:
Отчет.Продажи

Также появилась возможность управлять именем пользователя, для которого будут сохранены настройки 1С, указав его последним параметром.

Существуют следующие стандартные хранилища настроек 1С:

  • ХранилищеСистемныхНастроек
  • ХранилищеОбщихНастроек
  • ХранилищеНастроекДанныхФорм
  • ХранилищеПользовательскихНастроекОтчетов
  • и ХранилищеВариантовОтчетов.

Хранилище настроек 1С.

Программист может создать собственные хранилища настроек – в конфигураторе.

Это предполагается делать в следующих случаях:

Ссылочный контроль при хранении настроек 1С
Миграция настроек 1С при использовании УРБД
Специальная структура настроек 1С (для автоматического ее соблюдения)
Переопределение стандартных хранилищ.

Для создания собственного хранилища настроек 1С – необходимо добавить таковое в конфигураторе в окне конфигурации в ветке Общие/Хранилища настроек 1С.

Переопределить стандартные хранилища настроек 1С, используемые платформой можно в свойствах конфигурации (корневой ветки конфигурации, которую программисты обычно называют Корень или Голова).

Если в свойствах пустая строка – используется стандартное хранилище настроек 1С, иначе – используется выбранное, а стандартное не используется.

В тонком управляемом клиенте 1С использование хранилища возможно автоматически:

В управляемой форме есть два параметра
o Автоматическое сохранение данных – будет проводиться автоматически, в стандартное хранилище настроек форм
o Сохранение данных в настройках 1С – использовать список – в списке реквизитов формы появится колонка Сохранение, в которой можно проставить галочки, который будут сохраняться, а также можно указать созданное хранилище настроек

В отчете (в том числе внешнем), появились параметры – Хранилище вариантов (отчетов) и Хранилище настроек 1С – в них нужно выбрать созданное хранилище 1С.

В толстом клиенте для использования требуется в коде на языке 1С прописывать непосредственный вызов сохранения настроек 1С:
ХранилищаНастроек.ИмяХранилища.Сохранить();

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

Собственно в этих функциях Вы самостоятельно пишете код сохранения значения (в стандартное хранилище или в файл или в справочник или в регистр сведений и т.п.), и загрузки значения.

Назначение объекта конфигурации «Хранилище настроек» понятно из названия — хранить различные пользовательские настройки. Область применения данного объекта широка — в любой, хоть сколь-нибудь серьезной конфигурации требуется хранить какие-либо пользовательские настройки.

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

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

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

Итак, по умолчанию, в конфигурации имеются следующие хранилища настроек:

  • ХранилищеВариантовОтчетов — для доступа к настройкам вариантов отчетов.
  • ХранилищеПользовательскихНастроекОтчетов — для доступа к пользовательским настройкам отчетов.
  • ХранилищеНастроекДанныхФорм — для доступа к пользовательским настройкам данных форм.
  • ХранилищеОбщихНастроек — для доступа к общим настройкам.
  • ХранилищеСистемныхНастроек — для доступа к системным настройкам.
  • ХранилищеПользовательскихНастроекДинамическихСписков — для доступа к пользовательским настройкам динамических списков.

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

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

Для работы с хранилищами настроек (как со стандартными, так и с добавленными программистом) используются следующие методы.

Запись и получение настройки:

ХранилищеОбщихНастроек.Сохранить(НазваниеОбъекта, НазваниеНастройки, ЗначениеНастройки, ОписаниеНастройки, ИмяПользователя); ЗначениеНастройки = ХранилищеОбщихНастроек.Загрузить(НазваниеОбъекта, НазваниеНастройки, ОписаниеНастройки, ИмяПользователя);

Удаление лишней/ненужной настройки:

ХранилищеОбщихНастроек.Удалить(НазваниеОбъекта, НазваниеНастройки, ИмяПользователя);

Получение списка настроек:

СписокЗначенийНастроек = ХранилищеОбщихНастроек.ПолучитьСписок(ИмяОбъекта, ИмяПользователя);

Параметры «НазваниеОбъекта», «НазваниеНастройки» и «ИмяПользователя» должны строковой тип.

В базе данных, все настройки хранятся в отдельно таблице.

Хранилища настроек создаваемые программистом

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

  • необходимо перемещение настроек между базами данных;
  • необходим ссылочный контроль при хранении настроек;
  • требуется особая структура настроек 1С.

Хранилища настроек добавляют в соответствующем разделе конфигурации.

Ключевой особенностью хранилищ настроек, созданных программистом является необходимость ручной реализации методов записи и получения значений (Сохранить() и Загрузить()). В этих методах программист должен описать сохранение (в регистры сведений, файлы, справочники и тд.) и загрузку настроек при помощи встроенного языка.

В остальном же, принципы работы с созданным хранилищем практически не отличается от работы со стандартными хранилищами настроек.

Доступ к созданному хранилищу можно получить таким образом:

ХранилищаНастроек.НазваниеХранилища.Загрузить();

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

Управляемые формы имеют два свойства:

  • Автоматическое сохранение данных — если выбрано значение «Использовать», то данные будут сохраняться автоматически в стандартное хранилище настроек данных форм;
  • Сохранение данных в настройках — если выбрано значение «Использовать список», то в окне реквизитов формы появится столбец «Сохранение», с помощью которого можно указать какие реквизиты формы должны сохраняться, а также появиться возможность выбрать хранилище настроек для этих данных.

На этом все, надеюсь данная статья Вам помогла.

Не секрет, что периодически, в 1С нужно чистить настройки пользователей!

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

Тут же хранятся настройки печатных форм документов, если документ не печатается из 1С или печатается криво, то нужно очистить настройки 1C .

Обработка очистки настроек пользователя работает в 2-х режимах:

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

2. Выборочно - Нажмите Получить настройки всех пользователей - отметьте галочками то - что нужно удалить и нажмите Удалить помеченные. Данный способ позволяет удалить только те настройки, которые вы считаете проблемными или не нужными.

Довольно часто работая с 1с-кой и разбираясь с проблемами пользователей, обнаруживаю, что они не умеют пользоваться элементарными приемами для облегчения своей повседневной работы. Одним из таких приемов является сохранение настроек. Если в стандартных отчетах такая возможность, как правило, встроена то, разрабатывая свои отчеты, программисты часто забывают про эту возможность, хотя она реализуется довольно просто. В данной статье, мы постараемся рассмотреть, какие возможности предусматривает система для сохранения настроек с позиции программиста.

Многим хватит двух функций: СохранитьЗначение(<Имя>, <Значение>) и парную к ней ВосстановитьЗначение(<Имя>) . но это только для толстого клиента. Если почитать справку, то видно, что настройка сохраняется для пары база-пользователь. Нужно не забывать, что сохранять можно не только простые типы данных, но сложные, например структуру или даже таблицу значений.

Также программисты пользовались функциями ЗначениеВФайл(<ИмяФайла>, <Значение>) и ЗначениеИзФайла(<ИмяФайла>).

Начиная с версии 8.2, точный релиз не скажу, в дереве метаданных появилась ветка «Хранилище настроек» про которую нужно рассказать подробнее.

Механизм можно разделить на две части: стандартный механизм и пользовательский механизм.

В тонком клиенте механизм сохранения настроек активирован по умолчанию и доступен через кнопку «Все действия»

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

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

И соответственно восстановить

ХранилищеОбщихНастроек.Загрузить(<КлючОбъекта>, <КлючНастроек>, <ОписаниеНастроек>, <ИмяПользователя>)

Детально все параметры описаны в справке.

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

Сначала в форме укажем возможность сохранять значения реквизитов обработки и реквизитов формы, укажем значения, каких реквизитов мы хотим сохранять.

Также желательно отметить флажок восстанавливать значения при открытии.

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

Механизмы простые, но действенные, пользователь будут вам благодарны.