Подскажите как вызвать уже сохраненный отчет СКД
Подскажите пожалуйста как вызвать настроенный и сохраненный СКД,
там есть уже готовые отборы
стандартный "Лимиты денежных средств" вызывается , но мне нужно именно мой вариант
там есть уже готовые отборы
стандартный "Лимиты денежных средств" вызывается , но мне нужно именно мой вариант
процедура yz_ВызватьМойСКД() экспорт
СхемаКомпоновкиДанных = Отчеты.ЛимитыРасходаДенежныхСредств.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ДобавитьПараметрКомпоновки(МакетКомпоновки, "НачалоПериода", НачалоМесяца(ТекущаяДата()) );
ДобавитьПараметрКомпоновки(МакетКомпоновки, "КонецПериода", КонецМесяца(ТекущаяДата()) );
ДобавитьПараметрКомпоновки(МакетКомпоновки, "ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ПустаяСсылка() );
МакетКомпоновки.ЗначенияПараметров.НачалоПериода.Значение = НачалоМесяца(ТекущаяДата());
МакетКомпоновки.ЗначенияПараметров.КонецПериода.Значение = КонецМесяца(ТекущаяДата());
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
//Очищаем поле табличного документа
РезультатТД = Новый ТабличныйДокумент;
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(РезультатТД);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
РезультатТД.записать("C:\123.xls", ТипФайлаТабличногоДокумента.XLS);
КонецПроцедуры
Процедура ДобавитьПараметрКомпоновки(МакетКомпоновки, Имя, Значение)
Если МакетКомпоновки.ЗначенияПараметров.Найти(Имя) = Неопределено Тогда
ПараметрКомпоновки = МакетКомпоновки.ЗначенияПараметров.Добавить();
ПараметрКомпоновки.Имя = Имя;
ПараметрКомпоновки.Значение = Значение;
КонецЕсли;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) что то не пойму как, я вызываю из своей обработки
ругается на синтаксис , тут имя отчета видимо ? все равно ругается
УстановитьТекущийВариант("Лимиты денежных средств") ;
{ВнешняяОбработка.yz_ОтчетРасчетыРасходаДенежныхСредств.МодульОбъекта(60,5)}: Процедура или функция с указанным именем не определена (УстановитьТекущийВариант)
<<?>>УстановитьТекущийВариант("Лимиты денежных средств") ; (Проверка: Сервер)
ругается на синтаксис , тут имя отчета видимо ? все равно ругается
УстановитьТекущийВариант("Лимиты денежных средств") ;
{ВнешняяОбработка.yz_ОтчетРасчетыРасходаДенежныхСредств.МодульОбъекта(60,5)}: Процедура или функция с указанным именем не определена (УстановитьТекущийВариант)
<<?>>УстановитьТекущийВариант("Лимиты денежных средств") ; (Проверка: Сервер)
Если я правильно понимаю , есть вариант зачитать стандартные настройки и заполнить реквизиты самостоятельно.
но у меня не получается заполнить отбор.
но у меня не получается заполнить отбор.
процедура yz_ОтчетРассылкаЛимитыРасходаДенежныхСредств() Экспорт
//Получаем схему из макета
СхемаКомпоновкиДанных = Отчеты.ЛимитыРасходаДенежныхСредств.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
////ФильтрСКД = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
////
////ПолеОтбора = Новый ПолеКомпоновкиДанных("Статья ДДС");
////ФильтрСКД.ЛевоеЗначение = ПолеОтбора;
////ФильтрСКД.Использование = Истина;
////
////ФильтрСКД.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
////СписокДляОтбора = Новый СписокЗначений;
////СписокДляОтбора.Добавить("Покупка валюты");
////СписокДляОтбора.Добавить("Выплата депозита");
////СписокДляОтбора.Добавить("депозит");
////СписокДляОтбора.Добавить("Поступление денежных средств по депозитам");
////ФильтрСКД.ПравоеЗначение = СписокДляОтбора;
//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
// Формируем параметры
Если МакетКомпоновки.ЗначенияПараметров.Найти("ХозяйственнаяОперация") = Неопределено Тогда
ПараметрКомпоновки = МакетКомпоновки.ЗначенияПараметров.Добавить();
ПараметрКомпоновки.Имя = "ХозяйственнаяОперация";
ПараметрКомпоновки.Значение = Перечисления.ХозяйственныеОперации.ПустаяСсылка();
КонецЕсли;
МакетКомпоновки.ЗначенияПараметров.НачалоПериода.Значение = НачалоМесяца(ТекущаяДата());
МакетКомпоновки.ЗначенияПараметров.КонецПериода.Значение = КонецМесяца(ТекущаяДата());
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
//Очищаем поле табличного документа
РезультатТД = Новый ТабличныйДокумент;
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(РезультатТД);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
// Формируем в файл для дальнейшей рассылки
РезультатТД.записать("C:\123.xls", ТипФайлаТабличногоДокумента.XLS);
конецпроцедуры
ПоказатьПрикрепленные файлы:
Попытка вызвать отчет и сформировать свои параметры настройки
даты и ХозяйственнаяОперация задаются нормально
при формировании отбора тоже вроде как нет ошибок
но при выполнении вылетает на этом месте
{ВнешняяОбработка.yz_ОтчетРаччылкаЛимитыРасходаДенежныхСредств.МодульОбъекта(182)}: Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "[Статья ДДС]"
даты и ХозяйственнаяОперация задаются нормально
// Формируем параметры
Если МакетКомпоновки.ЗначенияПараметров.Найти("ХозяйственнаяОперация") = Неопределено Тогда
ПараметрКомпоновки = МакетКомпоновки.ЗначенияПараметров.Добавить();
ПараметрКомпоновки.Имя = "ХозяйственнаяОперация";
ПараметрКомпоновки.Значение = Перечисления.ХозяйственныеОперации.ПустаяСсылка();
КонецЕсли;
МакетКомпоновки.ЗначенияПараметров.НачалоПериода.Значение = НачалоМесяца(ТекущаяДата());
МакетКомпоновки.ЗначенияПараметров.КонецПериода.Значение = КонецМесяца(ТекущаяДата());
Показатьпри формировании отбора тоже вроде как нет ошибок
но при выполнении вылетает на этом месте
{ВнешняяОбработка.yz_ОтчетРаччылкаЛимитыРасходаДенежныхСредств.МодульОбъекта(182)}: Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "[Статья ДДС]"
процедура yz_ОтчетРаccылкаЛимитыРасходаДенежныхСредств() Экспорт
//Получаем схему из макета
СхемаКомпоновкиДанных = Отчеты.ЛимитыРасходаДенежныхСредств.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
Настройки.Отбор.Элементы.Очистить();
ФильтрСКД = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ПолеОтбора = Новый ПолеКомпоновкиДанных("Статья ДДС");
ФильтрСКД.ЛевоеЗначение = ПолеОтбора;
ФильтрСКД.Использование = Истина;
ФильтрСКД.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
ФильтрСКД.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
// Формируем свой список
СписокДляОтбора = Новый СписокЗначений;
СписокДляОтбора.Добавить("Покупка валюты");
СписокДляОтбора.Добавить("Выплата депозита");
СписокДляОтбора.Добавить("депозит");
СписокДляОтбора.Добавить("Поступление денежных средств по депозитам");
ФильтрСКД.ПравоеЗначение = СписокДляОтбора;
//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
/////////********* ВОТ ТУТ ВЫЛЕТАЕТ!!! ***********
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);[
// Формируем параметры
Если МакетКомпоновки.ЗначенияПараметров.Найти("ХозяйственнаяОперация") = Неопределено Тогда
ПараметрКомпоновки = МакетКомпоновки.ЗначенияПараметров.Добавить();
ПараметрКомпоновки.Имя = "ХозяйственнаяОперация";
ПараметрКомпоновки.Значение = Перечисления.ХозяйственныеОперации.ПустаяСсылка();
КонецЕсли;
МакетКомпоновки.ЗначенияПараметров.НачалоПериода.Значение = НачалоМесяца(ТекущаяДата());
МакетКомпоновки.ЗначенияПараметров.КонецПериода.Значение = КонецМесяца(ТекущаяДата());
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
//Очищаем поле табличного документа
РезультатТД = Новый ТабличныйДокумент;
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(РезультатТД);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
// Формируем в файл для дальнейшей рассылки
РезультатТД.записать("C:\123.xls", ТипФайлаТабличногоДокумента.XLS);
конецпроцедуры
Показать
(8) Можно так:
ВыборкаВарианты = ХранилищеВариантовОтчетов.Выбрать();
Пока ВыборкаВарианты.Следующий() Цикл
// Вариант 1. По представлению.
Если ВыборкаВарианты.Представление = "Название моего варианта" Тогда
НастройкиМоегоВариантаОтчета = ВыборкаВарианты.Настройки;
КонецЕсли;
// Вариант 2. По ключу.
Если ВыборкаВарианты.КлючНастроек = "568eef44-6de7-48d1-8f3f-c1f879e6e858" Тогда
НастройкиМоегоВариантаОтчета = ВыборкаВарианты.Настройки;
КонецЕсли;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот