Как в конфигурации с БСП, во внешний отчет на СКД передать в отбор значение при открытии отчета.

1. marku 63 15.11.21 16:11 Сейчас в теме
Есть отчет на СКД. Как не создавая форм заполнить параметр отбора при запуске
Пытаюсь так, но параметр не заполняется. Может есть еще какие идеи ?


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	ПолеОтветственный = Новый ПолеКомпоновкиДанных("Ответственный");
	Настройки = КомпоновщикНастроек.Настройки;
	ЭлементыОтбора = Настройки.Отбор.Элементы;
	
	Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл
	
		Если ЭлементОтбора.ЛевоеЗначение  = ПолеОтветственный  Тогда
			ЭлементОтбора.ПравоеЗначение =  Пользователи.ТекущийПользователь();
			ЭлементОтбора.Использование = Истина;
		КонецЕсли; 
	
	КонецЦикла; 
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 15.11.21 16:26 Сейчас в теме
наверно так же как по аналогии с Внешними печатными формами!
получили параметры запуска
программно обратились к СКД получили настройки, установили параметры,
программно получили результат в ТабДок
и в коллекции печатных форм вернули

все как в ВПФ, только в функцию Печать под работу с СКД переделать
3. johnnyshut23 75 16.11.21 09:57 Сейчас в теме
Создайте параметры в обработке, при открытии формы передавайте их и обрабатывайте в модуле
4. toypaul 63 16.11.21 13:04 Сейчас в теме
Для начала надо понять в каком месте нужно заполнить. В этом коде отбор заполняется для формирования отчета. Чтобы увидеть отбор глазами, нужно использовать события (БСП), которые определяются в отчете. Типа при загрузке пользовательских настроек и т.п.
5. marku 63 16.11.21 15:09 Сейчас в теме
Подсказали, что нужно проверять настройки пользовательские, они приоритетные

пока так сделал

	Для каждого ЭлементОтбора Из КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
		
		ЭлементОтбора.ПравоеЗначение = Пользователи.ТекущийПользователь();
		ЭлементОтбора.Использование = Истина;
		
	КонецЦикла;
6. marku 63 16.11.21 17:16 Сейчас в теме
(5) немного улучшил

	


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


Показать
7. Obertone 77 12.05.22 08:32 Сейчас в теме
Есть похожий вариант. Там, правда, задача была вывести команду открытия стандартного отчёта в документ, чтобы при его открытии подтягивался из реквизита документа параметр отчёта. Для этого во внешнюю обработку позаимствовал из отчёта все его макеты, реквизиты и форму. А далее определил внешнюю обработку в модуле объекта как печатную форму с вызовом клиентского метода. Там передавал в отчёт параметр из реквизита документа и открывал форму со стандартным заполнением параметра отчёта.
Оставьте свое сообщение

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