Как в стандартных отчетах Бух 3.0 можно расширением сделать принудительный неотключаемый фильтр для ограничения прав

1. zoeh 31 07.03.23 04:34 Сейчас в теме
Хочу сделать расширение ограничение доступа к контрагентам.
Дак вот вопрос как эти "чудо" штатные отчеты заставить работать в принудительном фильтре по нужному списку?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. RustamZz 07.03.23 11:45 Сейчас в теме
(1) Посмотрите как надо делать правильно на Ютубе
2. zoeh 31 07.03.23 05:01 Сейчас в теме
Допустим создать роль где сделать роль доступа до контрагентов
Контрагенты ГДЕ (Контрагенты.Расш_ОграничениеПоПользователю = &ТекущийПользователь
ИЛИ Контрагенты.ЭтоГруппа = ИСТИНА)
но это только списки справочников, а как назначить подобный фильтр в выполнение отчета?
3. zoeh 31 07.03.23 06:46 Сейчас в теме
При открытии попробовал добавить отбор не выходит

&НаСервере
Процедура СоздатьОтбор()
	
	ЭлементОтбора = Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	
	ДоступныеПоляОтбора = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляОтбора;
	ДоступноеПолеОтбораКонтрагента = ДоступныеПоляОтбора.НайтиПоле(Новый ПолеКомпоновкиДанных("Покупатель"));
	Если ДоступноеПолеОтбораКонтрагента=Неопределено Тогда 
		//(Новый ПолеКомпоновкиДанных("Контрагент"));
		ЭлементОтбора.ИдентификаторПользовательскойНастройки= Новый УникальныйИдентификатор();
		ЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Покупатель");
		ЭлементОтбора.Представление = "Покупатель"
	Иначе
		ЭлементОтбора.ЛевоеЗначение  = ДоступноеПолеОтбораКонтрагента.Поле;
	КонецЕсли;
	ЭлементОтбора.Использование = Истина;
	ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементОтбора.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("00-000015");

	
КонецПроцедуры
Показать
4. zoeh 31 07.03.23 08:10 Сейчас в теме
получилось сделать через ЭтаФорма


но не могу поймать процедуру которая не затирает настройки,
&НаКлиенте
&Перед("ЗапуститьФормированиеОтчета")


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

НовыйЭлементОтбора = ЭтотОбъект.Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	
	ПолеОтбора = Новый ПолеКомпоновкиДанных("ИмяПоляКомпановки");
	
	НовыйЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Контрагент");
	НовыйЭлементОтбора.Использование  = Истина;
	НовыйЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
	НовыйЭлементОтбора.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("00-000015");
5. zoeh 31 07.03.23 09:25 Сейчас в теме
Не хватает какой то кнопки обновить, т.к. если добавить блок в процедуру
&Перед("ЗапуститьФормированиеОтчета")

нужно сформировать отчет дважды тогда отчет сформируется с нужным отбором
7. muskul 07.03.23 11:51 Сейчас в теме
при компоновке вроде бы отбор добавлять нужно
8. zoeh 31 07.03.23 11:53 Сейчас в теме
(7)ЭтотОбъект.Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить
это разве не оно?
9. muskul 07.03.23 12:03 Сейчас в теме
СхемаКомпоновкиДанных.НаборыДанных.ВыручкаИСебестоимостьПродаж.Запрос = ТекстЗапроса;	
	

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

		СписокНоменклатуры = СегментыВызовСервера.СписокЗначений(Константы.ЗапрещеннаяНоменклатура.Получить());
		
		ОтборНастройкиОтчета = НастройкиОтчета.Отбор;
		
		НовыйЭлементОтбора = ОтборНастройкиОтчета.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		
		НовыйЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.НеВСписке;
		НовыйЭлементОтбора.Использование  = Истина;
		НовыйЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Номенклатура");
		НовыйЭлементОтбора.ПравоеЗначение = СписокНоменклатуры;
		НовыйЭлементОтбора.Представление  = "Не выводить запрещенную номенклатуру";
		
	КонецЕсли;


	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Показать

У нас сделано при компоновке результата. тут кусок с УТ
10. zoeh 31 07.03.23 14:15 Сейчас в теме
(9)в какую процедуру лучше вставить расширением?
Интересно попробую, я сегодня вариаций 50 перепробовал.
11. zoeh 31 07.03.23 16:15 Сейчас в теме
НастройкиОтчета
совершенно другая переменная там нет параметра отбор
не получилось не формтануло
12. zoeh 31 09.03.23 07:04 Сейчас в теме
может седня кто подскажет?
13. zoeh 31 09.03.23 11:35 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот