|
Программно получить результат отчета СКД в таблицу значений |
☑ |
0
ac13
04.09.19
✎
12:13
|
Есть отчет на СКД, где у нескольких параметров установлен флажок - Ограничение доступности
и в выражении этих параметров определены подобные значения: "Справочники.Пользователи.НайтиПоКоду("00001")"
Нужно программно получить результат такого отчета.
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
ВариантНастройки = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Основной");
Настройки = ВариантНастройки.Настройки;
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("... // заполняю параметры
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакетаОСКД.Выполнить(СхемаКомпоновкиДанных, Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТаблицаЗначений = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
При инициализации выдает ошибку о том, что такие параметры не найдены (с флагом ограничения доступности), либо синтаксическую ошибку на выражение таких параметров: Справочники.Пользователи.НайтиПоКоду("00001")
Как получить результат в таблицу значений подобного отчета?
|
|
1
Вафель
04.09.19
✎
12:15
|
очевидно что параметры заполняешь как то не так
|
|
2
ac13
04.09.19
✎
12:17
|
(1) как заполнять такие параметры?
|
|
3
ac13
04.09.19
✎
12:27
|
Пользователь = Настройки.ПараметрыДанных.Элементы.Найти("Пользователь");
Пользователь.Значение = Справочники.Пользователи.НайтиПоКоду("ПП0987");
Пользователь.Использование = Истина;
при этом в СКД для этого параметра задано выражение "Справочники.Пользователи.НайтиПоКоду("ПП0987")" и получаю ошибку:
Ошибка при вызове метода контекста (Инициализировать) Синтаксическая ошибка "Справочники.Пользователи.НайтиПоКоду"
|
|
4
ac13
04.09.19
✎
12:34
|
все оказалось просто: ПроцессорКомпоновки.Инициализировать(Макет,,,Истина)
|
|
5
aleks_default
04.09.19
✎
12:37
|
Да там внешние функции нужно включать
|
|
6
GGDots
04.09.19
✎
12:39
|
|
|