![]() |
![]() |
![]() |
|
Параметры для набора данных-объект из СКД | ☑ | ||
---|---|---|---|---|
0
inkvizitr
12.07.17
✎
15:28
|
Есть вот такой код, где программно генерирую текст запроса, в запросе буду реализовывать параметры, как из СКД передать их в запрос?
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = ЛОЖЬ; //ФОрмирую текст запроса ВсегоДокументов = Метаданные.Документы; КоличествоДокументов = ВсегоДокументов.Количество(); Сч = 1; ТекстЗапроса = ""; Для Каждого Док Из ВсегоДокументов Цикл Ответственный = Док.Реквизиты.Найти("Ответственный"); Если Док.ДлинаНомера = 0 Тогда ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ | Док.Дата КАК Дата, | NULL КАК Номер, | """ + Док.Имя + """ КАК ВидДокумента,"; Если Ответственный = Неопределено Тогда ТекстЗапроса = ТекстЗапроса + " """" КАК Отвественный "; Иначе ТекстЗапроса = ТекстЗапроса + " Док." + Ответственный + " КАК Отвественный "; КонецЕсли; ТекстЗапроса = ТекстЗапроса + "ИЗ | Документ." + Док.Имя + " КАК Док"; Иначе ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ | Док.Дата КАК Дата, | Док.Номер КАК Номер, | """ + Док.Имя + """ КАК ВидДокумента,"; Если Ответственный = Неопределено Тогда ТекстЗапроса = ТекстЗапроса + " """" КАК Отвественный "; Иначе ТекстЗапроса = ТекстЗапроса + " Док." + Ответственный + " КАК Отвественный "; КонецЕсли; ТекстЗапроса = ТекстЗапроса + "ИЗ | Документ." + Док.Имя + " КАК Док"; КонецЕсли; Если Сч < КоличествоДокументов Тогда ТекстЗапроса = ТекстЗапроса + " |ОБЪЕДИНИТЬ ВСЕ |"; КонецЕсли; Сч = Сч + 1; КонецЦикла; Запрос = Новый Запрос; //Отрабатываю запрос Запрос.Текст = ТекстЗапроса; Результат = Запрос.Выполнить(); Выборка = Результат.Выгрузить(); //Вывожу ТЗ в макет СКД СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = КомпоновщикНастроек.ПолучитьНастройки(); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ВнешнийНаборДанных = Новый Структура("ПримерТаблицыЗначений", Выборка); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки); ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры |
|||
1
aleks_default
12.07.17
✎
15:33
|
ПараметрОтчета = Новый ПараметрКомпоновкиДанных(ИмяПараметра);
ЗначениеПараметра = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрОтчета).Значение; |
|||
2
inkvizitr
12.07.17
✎
15:34
|
(1) щас попробую
|
|||
3
kittystark
12.07.17
✎
16:08
|
(0) так на всякий, ащипка вищел:
КАК Отвественный буквку Т потерял |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |