В начало

Ограничения в отчете «Реестр решений»

 

            Ограничения по текущему пользователю в отчете «Реестр решений». Ограничения устанавливаем в модуле объекта отчета.

 

Листинг. Модуль объекта отчета

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

                       

            Настройки = КомпоновщикНастроек.Настройки.Отбор;

           

//Перед установкой отборов удаляем ранее созданные

//с заданными идентификаторами

            Для Каждого Отб Из Настройки.Элементы Цикл

                        Если Отб.ИдентификаторПользовательскойНастройки = "КРКЦ" ИЛИ

                                    Отб.ИдентификаторПользовательскойНастройки = "НедоступныеГорода" Тогда

                                   Настройки.Элементы.Удалить(Отб);

                        КонецЕсли;                                                

            КонецЦикла;

                       

//Отбор для рядовых сотрудников,

//они видят только свои решения,

//ограничения по полю «Представитель истца»  

Если НЕ РольДоступна("АдминистраторСистемы") И

             НЕ РольДоступна("F1_ЗаместительПоГороду") Тогда

                       

            Отб1 = Настройки.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

            Отб1.ИдентификаторПользовательскойНастройки = "КРКЦ";

            Отб1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПредставительИстца");

    Отб1.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;

    Отб1.ПравоеЗначение = Пользователи.ТекущийПользователь();

            Отб1.Представление = Пользователи.ТекущийПользователь().Наименование;

            Отб1.Использование = Истина;

            Отб1.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

КонецЕсли;                       

 

//Отборы для руководителей подразделений,

//они видят в отчете только свои города,

//ограничения по полю «Город»

Если РольДоступна("F1_ЗаместительПоГороду") И

             НЕ Пользователи.ТекущийПользователь().Наименование = "Кузнецова Татьяна Сергеевна" Тогда

            Отб2 = Настройки.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

            Отб2.ИдентификаторПользовательскойНастройки = "НедоступныеГорода";

            Отб2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Город");

            Отб2.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;

           

            //Список запрещенных городов для просмотра в отчете

            СЗГ = Новый СписокЗначений;

                                                                   

            Если Пользователи.ТекущийПользователь().Наименование = "Понасенкова Ольга Алексеевна" Тогда

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Королев"));   

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Балашиха"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Пуршево"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Федурново"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Новый Милет"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Черное"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Рассказово"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("мкр Саввино"));

                       

            ИначеЕсли Пользователи.ТекущийПользователь().Наименование = "Корнаухова Елена Ивановна" или

                                      Пользователи.ТекущийПользователь().Наименование = "Романенко Ольга Владимировна"Тогда

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Реутов")); 

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Балашиха"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Пуршево"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Федурново"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Новый Милет"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Черное"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Рассказово"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("мкр Саввино"));

                       

            ИначеЕсли Пользователи.ТекущийПользователь().Наименование = "Семенова Анастасия Михайловна" Тогда

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Королев"));

                        СЗГ.Добавить(Справочники.F1_Города.НайтиПоНаименованию("Реутов"));                          

            КонецЕсли;                                                            

           

            Отб2.Использование = Истина;

            Отб2.ПравоеЗначение = СЗГ;

            Отб2.Представление = СЗГ;

           

            Отб2.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

             

КонецЕсли;

                       

КонецПроцедуры