Приветствую Вас ГостьСуббота, 18.05.2024, 21:56

Каталог статей


Программное копирование вариантов отчета и пользовательских настроек

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

Пользовательские настройки - это отдельный механизм, введенный в 1С. В них сохраняются параметры и другие настройки отчета, которые сделал пользователь для данного варианта отчета. Чтобы получить список пользовательских настроек надо в форме отчета выбрать "Все действия \ Выбрать настройки..."

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

В качестве ключа объекта для вариантов отчета используется полное имя отчета, например, строка Отчет.ОстаткиНоменклатуры. В качестве ключа объекта для пользовательских настроек вариантов отчета используется полное имя отчета плюс через флеш (/) ключ варианта отчета.

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

                        ХранилищеПользовательскихНастроекОтчетов.Сохранить(КлючВариантаОтчета, КлючНастройкиВарианта, НастройкаВариантаОтчета, ОписаниеНастройкиВарианта, ТекущийПользователь);
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
            
        КонецЕсли;                    
    КонецЦикла;
    
КонецПроцедуры

 

Категория: СКД | Добавил: leshic (06.01.2022)
Просмотров: 383 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Вход на сайт
Поиск
Категории раздела
СКД [48]
Регистры [7]
Формы [41]
Администрирование [35]
Запросы [10]
Объекты конфигурации и типы данных [20]
Взаимодействие с другими базами, приложениями и источниками данных [16]
Программирование [29]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0