Добрый день!
Есть отчет на СКД,не получается вывести результат отчета в таблицу значений. Структура представляет собой 3 группировки, детальных записей нет.
Вывод в ТЗ делаю по кнопке, в дальнейшем хочу вывести в ТЧ. В кнопке прописываю:
ТЗ приходит с пустыми значениями,думаю, что дело в группировках, создаю новый вариант отчета Основной1, в котором вывожу только детальные записи без условного оформления , проверяю в предприятии - данные выводит. В кнопке делаю замену настроек (на настройки варианта Основной1):
ТЗ приходит с одной пустой строчкой.
Пробовала также выгружать в дерево значений(без замены настроек):приходит дерево с пустыми значениями.
Во вложении прикрепила как выглядит структура, по сути мне нужны данные по ДокументРеализации.
Подскажите, что я делаю не так.
Есть отчет на СКД,не получается вывести результат отчета в таблицу значений. Структура представляет собой 3 группировки, детальных записей нет.
Вывод в ТЗ делаю по кнопке, в дальнейшем хочу вывести в ТЧ. В кнопке прописываю:
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки ,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ПоказатьТЗ приходит с пустыми значениями,думаю, что дело в группировках, создаю новый вариант отчета Основной1, в котором вывожу только детальные записи без условного оформления , проверяю в предприятии - данные выводит. В кнопке делаю замену настроек (на настройки варианта Основной1):
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ВариантОтчета = СхемаКомпоновкиДанных.ВариантыНастроек.Основной1;
КомпоновщикНастроек.ЗагрузитьНастройки(ВариантОтчета.Настройки);
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки ,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ПоказатьТЗ приходит с одной пустой строчкой.
Пробовала также выгружать в дерево значений(без замены настроек):приходит дерево с пустыми значениями.
Во вложении прикрепила как выглядит структура, по сути мне нужны данные по ДокументРеализации.
Подскажите, что я делаю не так.
Прикрепленные файлы:
По теме из базы знаний
- Вывод результата СКД в таблицу значений
- Поиск по дереву значений рекурсией, методом НайтиСтроки(), с помощью СКД. Вывод результата поиска в отдельную таблицу. Активация строки в дереве значений при выборе в таблице
- Вывод вариантов СКД в таблицы на управляемой форме
- По-настоящему свои макеты в отчетах СКД. Исследование процесса компоновки и генерация кода отчета
- Печать таблицы значений или таблиц запроса через СКД
Найденные решения
(5)да, дело было в параметрах, не передавались пользовательские настройки
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
СтруктураПользовательскихНастроек = Новый Структура;
Для Каждого Элем ИЗ ПользовательскиеНастройки Цикл
СтруктураПользовательскихНастроек.Вставить(Строка(Элем.Параметр),Элем.Значение)
КонецЦикла;
Настройки = КомпоновщикНастроек.Настройки;
Для каждого Элемент ИЗ СтруктураПользовательскихНастроек Цикл
ЭлементНастройки = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(Элемент.Ключ));
ЭлементНастройки.Использование = Истина;
ЭлементНастройки.Значение = Элемент.Значение;
КонецЦикла;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки ,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ТЗ.Свернуть("ДокументРеализации");
ТЧДокументы.Загрузить(ТЗ);
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Странно как-то
Есть подозрения, что в самой схеме компоновке проблема. Что именно она не выбирает ничего. Ну, там, отбор может стоит какой, или параметры какие-то так выбраны, что запрос ничего не возвращает и в выборку ничего не попадает.
Вот посмотрите, Ваш код без единого изменения работоспособен, если сама СКД что-то выдает, то в таблицу оно совершенно точно попадет, даже с группировками.
Есть подозрения, что в самой схеме компоновке проблема. Что именно она не выбирает ничего. Ну, там, отбор может стоит какой, или параметры какие-то так выбраны, что запрос ничего не возвращает и в выборку ничего не попадает.
Вот посмотрите, Ваш код без единого изменения работоспособен, если сама СКД что-то выдает, то в таблицу оно совершенно точно попадет, даже с группировками.
Прикрепленные файлы:
ВнешнийОтчет1.erf
(5)да, дело было в параметрах, не передавались пользовательские настройки
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
СтруктураПользовательскихНастроек = Новый Структура;
Для Каждого Элем ИЗ ПользовательскиеНастройки Цикл
СтруктураПользовательскихНастроек.Вставить(Строка(Элем.Параметр),Элем.Значение)
КонецЦикла;
Настройки = КомпоновщикНастроек.Настройки;
Для каждого Элемент ИЗ СтруктураПользовательскихНастроек Цикл
ЭлементНастройки = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(Элемент.Ключ));
ЭлементНастройки.Использование = Истина;
ЭлементНастройки.Значение = Элемент.Значение;
КонецЦикла;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки ,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТЗ);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
ТЗ.Свернуть("ДокументРеализации");
ТЧДокументы.Загрузить(ТЗ);
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот