Как в стандартных отчетах Бух 3.0 можно расширением сделать принудительный неотключаемый фильтр для ограничения прав
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Допустим создать роль где сделать роль доступа до контрагентов
Контрагенты ГДЕ (Контрагенты.Расш_ОграничениеПоПользователю = &ТекущийПользователь
ИЛИ Контрагенты.ЭтоГруппа = ИСТИНА)
но это только списки справочников, а как назначить подобный фильтр в выполнение отчета?
Контрагенты ГДЕ (Контрагенты.Расш_ОграничениеПоПользователю = &ТекущийПользователь
ИЛИ Контрагенты.ЭтоГруппа = ИСТИНА)
но это только списки справочников, а как назначить подобный фильтр в выполнение отчета?
При открытии попробовал добавить отбор не выходит
&НаСервере
Процедура СоздатьОтбор()
ЭлементОтбора = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ДоступныеПоляОтбора = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора;
ДоступноеПолеОтбораКонтрагента = ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Покупатель"));
Если ДоступноеПолеОтбораКонтрагента=Неопределено Тогда
//(Новый ПолеКомпоновкиДанных("Контрагент"));
ЭлементОтбора.ИдентификаторПользовательскойНастройки= Новый УникальныйИдентификатор();
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Покупатель");
ЭлементОтбора.Представление = "Покупатель"
Иначе
ЭлементОтбора.ЛевоеЗначение = ДоступноеПолеОтбораКонтрагента.Поле;
КонецЕсли;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("00-000015");
КонецПроцедуры
Показать
получилось сделать через ЭтаФорма
но не могу поймать процедуру которая не затирает настройки,
вот тут срабатывает только при втором формировании отчета
но не могу поймать процедуру которая не затирает настройки,
&НаКлиенте
&Перед("ЗапуститьФормированиеОтчета")
вот тут срабатывает только при втором формировании отчета
НовыйЭлементОтбора = ЭтотОбъект.Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ПолеОтбора = Новый ПолеКомпоновкиДанных("ИмяПоляКомпановки");
НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
НовыйЭлементОтбора.Использование = Истина;
НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлементОтбора.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("00-000015");
СхемаКомпоновкиДанных.НаборыДанных.ВыручкаИСебестоимостьПродаж.Запрос = ТекстЗапроса;
Если Не РольДоступна("ЗапрещеннаяНоменклатура") Тогда
СписокНоменклатуры = СегментыВызовСервера.СписокЗначений(Константы.ЗапрещеннаяНоменклатура.Получить());
ОтборНастройкиОтчета = НастройкиОтчета.Отбор;
НовыйЭлементОтбора = ОтборНастройкиОтчета.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
НовыйЭлементОтбора.Использование = Истина;
НовыйЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
НовыйЭлементОтбора.ПравоеЗначение = СписокНоменклатуры;
НовыйЭлементОтбора.Представление = "Не выводить запрещенную номенклатуру";
КонецЕсли;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ПоказатьУ нас сделано при компоновке результата. тут кусок с УТ
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот