Если в настройках конфигурации или отчета не определено хранилище вариантов и пользовательских настроек,то они хранятся в стандартном хранилище, при этом пользователям доступны только те варианты и настройки, которые они создали сами.
Пользовательские настройки - это отдельный механизм, введенный в 1С. В них сохраняются параметры и другие настройки отчета, которые сделал пользователь для данного варианта отчета. Чтобы получить список пользовательских настроек надо в форме отчета выбрать "Все действия \ Выбрать настройки..."
Пример кода процедуры,которая копирует все варианты отчета и пользовательских настроек для всех отчетов. Исключается копирование вариантов и настроек самому себе.
В качестве ключа объекта для вариантов отчета используется полное имя отчета, например, строка Отчет.ОстаткиНоменклатуры. В качестве ключа объекта для пользовательских настроек вариантов отчета используется полное имя отчета плюс через флеш (/) ключ варианта отчета.
Процедура СкопироватьНастройкиОтчетов()
СписокПользователей = ПользователиИнформационнойБазы.ПолучитьПользователей();
СписокОтчетов = Метаданные.Отчеты;
Для Каждого Пользователь Из СписокПользователей Цикл
ТекущийПользователь = Пользователь.Имя;
Если ТекущийПользователь <> ИмяПользователя() Тогда
Сообщить("Копирование настроек для пользователя: " + ТекущийПользователь);
Для Каждого Отчет Из СписокОтчетов Цикл
ИмяОтчета = "Отчет." + Отчет.Имя;
СписокВариантовОтчета = ХранилищеВариантовОтчетов.ПолучитьСписок(ИмяОтчета);
Для Каждого Вариант Из СписокВариантовОтчета Цикл
КлючВарианта = Вариант.Значение;
Сообщить("Вариант отчета: " + Вариант.Представление);
ОписаниеВарианта = ХранилищеВариантовОтчетов.ПолучитьОписание(ИмяОтчета, КлючВарианта);
// Третьим параметром данного метода можно установить имя пользователя, чьи настройки надо получить. Правильнее будет задать этот параметр.
ВариантОтчета = ХранилищеВариантовОтчетов.Загрузить(ИмяОтчета, КлючВарианта);
ХранилищеВариантовОтчетов.Сохранить(ИмяОтчета, КлючВарианта, ВариантОтчета, ОписаниеВарианта, ТекущийПользователь);
КлючВариантаОтчета = ИмяОтчета + "/"+ КлючВарианта;
СписокНастроекВарианта = ХранилищеПользовательскихНастроекОтчетов.ПолучитьСписок(КлючВариантаОтчета);
Для Каждого Настройка Из СписокНастроекВарианта Цикл
КлючНастройкиВарианта = Настройка.Значение;
Сообщить("Пользовательская настройка:" + Настройка.Представление);
ОписаниеНастройкиВарианта = ХранилищеПользовательскихНастроекОтчетов.ПолучитьОписание(КлючВариантаОтчета, КлючНастройкиВарианта);
// Лучше так же установить третьим параметром имя пользователя чьи настройки хотим получить
//Сообщить(ОписаниеНастройкиВарианта.Представление);
НастройкаВариантаОтчета = ХранилищеПользовательскихНастроекОтчетов.Загрузить(КлючВариантаОтчета, КлючНастройкиВарианта);
ХранилищеПользовательскихНастроекОтчетов.Сохранить(КлючВариантаОтчета, КлючНастройкиВарианта, НастройкаВариантаОтчета, ОписаниеНастройкиВарианта, ТекущийПользователь);
КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|