Имя: Пароль:
1C
1С v8
Программно получить результат отчета СКД в таблицу значений
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
Недавно похожую проблему решали:
СКД. Удалить Выражение из Параметра. Как?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн