Как программно перехватить запрос в СКД

1. NatalkaBal 28 30.06.20 10:54 Сейчас в теме
Доброго времени суток. Возможно ли программно перехватить запрос СКД, для дальнейшего изменения его методом
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, " = &Организация", " в (&Организация)");
По теме из базы знаний
Найденные решения
5. MuxaH 30.06.20 11:09 Сейчас в теме
(3) Примерно так:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
СхемаКомпоновкиДанных.НаборыДанных.ОсновнойНабор.Запрос = "";//ТекстЗапроса, который надо модифицировать
	
	НастройкиОтч = КомпоновщикНастроек.ПолучитьНастройки();
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтч, ДанныеРасшифровки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
	
КонецПроцедуры
Показать
NatalkaBal; +1 Ответить
11. toypaul 63 30.06.20 15:07 Сейчас в теме
Вот целую статью написал про это https://infostart.ru/public/1222743/
NatalkaBal; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. nomad_irk 72 30.06.20 11:06 Сейчас в теме
(1)Эта замена не имеет смысла, т.к. "в (&Организация)" будет работать в любом случае.
NatalkaBal; +1 Ответить
6. NatalkaBal 28 30.06.20 11:16 Сейчас в теме
(4)Тут планируется передавать список Организаций. Надо попробовать без изменения самого запроса в параметр вставить список
7. nomad_irk 72 30.06.20 11:25 Сейчас в теме
(6)Говорю ж, при "в (&Организация)" будет работать и в случае списка/массива и в случае единственной ссылки.
alex-l19041; +1 Ответить
8. NatalkaBal 28 30.06.20 12:19 Сейчас в теме
(7)ясно) но в запросе установлено = &Организация, а требуется в (&Организация). Меня чуток смутило
Эта замена не имеет смысла

СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>)
9. nomad_irk 72 30.06.20 12:30 Сейчас в теме
(8)Исправьте текст запроса один раз или в чем сложность?
10. NatalkaBal 28 30.06.20 12:44 Сейчас в теме
(9)сложность в том чтобы не снимать конфигурацию с поддержки. Речь идет о статистической отчетности, которая постоянно меняется. И чтобы не менять постоянно запросы в СКД было решено попробовать перехватить запрос из изменить условия на список Организаций
2. MuxaH 30.06.20 10:56 Сейчас в теме
Возможно. В предопределенной процедуре модуля объекта отчета ПриКомпоновкеРезультата
3. NatalkaBal 28 30.06.20 11:03 Сейчас в теме
(2)Это я поняла что в этой процедуре надо. А вот как вопрос)
5. MuxaH 30.06.20 11:09 Сейчас в теме
(3) Примерно так:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
СхемаКомпоновкиДанных.НаборыДанных.ОсновнойНабор.Запрос = "";//ТекстЗапроса, который надо модифицировать
	
	НастройкиОтч = КомпоновщикНастроек.ПолучитьНастройки();
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтч, ДанныеРасшифровки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки, Истина);
	
КонецПроцедуры
Показать
NatalkaBal; +1 Ответить
11. toypaul 63 30.06.20 15:07 Сейчас в теме
Вот целую статью написал про это https://infostart.ru/public/1222743/
NatalkaBal; +1 Ответить
Оставьте свое сообщение

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