Имя: Пароль:
1C
 
Добавление отбора при формировании отчета СКД.
0 AlexPypok
 
19.06.24
11:00
Таб = Новый ТабличныйДокумент;
Попытка
//Получаем схему из макета
СхемаКомпоновкиДанных = Отчеты.НазваниеОтчета.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
//Помещаем в переменную данные о расшифровке данных
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки.НастройкиЭлемента(, Расшифровка);
//ВнешниеПараметры = Новый Структура;
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , Расшифровка, ИСТИНА);
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Таб);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Результат.Вывести(Таб);
Возврат Таб;

Исключение
ТекстПисьма = ТекстПисьма + "Ошибка при создании отчета! " + ОписаниеОшибки() + Символы.ПС;
Возврат ТекстПисьма;
КонецПопытки;

Как установить свой отбор в данном случае? И каким образом изменить порядок вывода элементов?
или каким образом я могу программно выбрать вариант отчета?
1 spiller26
 
19.06.24
11:10
(0) вот кусок как выбрать "Вариант настроек", который уже есть в макете.
    //3.2 Меняем вариант настроек
    ВариантНастроек_Дополнительный = СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Дополнительный");
    Если НЕ ВариантНастроек_Дополнительный = Неопределено Тогда
        КомпоновщикНастроек.ЗагрузитьНастройки(ВариантНастроек_Дополнительный.Настройки);
    КонецЕсли;
    
    //4. готовим макет
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки);
    //5. исполняем макет
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки);
    //6. выводим результат
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
2 spiller26
 
19.06.24
11:13
(0) "Как установить свой отбор в данном случае?" - Отбор чего?
"Каким образом изменить порядок вывода элементов?" - программный вывод своей настройки.
Ошибка? Это не ошибка, это системная функция.