СКД: Вывод результата в ТЗ

1. _Vanda_ 07.05.20 21:32 Сейчас в теме
Добрый день!
Есть отчет на СКД,не получается вывести результат отчета в таблицу значений. Структура представляет собой 3 группировки, детальных записей нет.
Вывод в ТЗ делаю по кнопке, в дальнейшем хочу вывести в ТЧ. В кнопке прописываю:

ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
	СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;

	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

	МакетКомпоновки   = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки ,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
		
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	ТЗ = Новый ТаблицаЗначений;
	ПроцессорВывода.УстановитьОбъект(ТЗ);
	
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
	
Показать


ТЗ приходит с пустыми значениями,думаю, что дело в группировках, создаю новый вариант отчета Основной1, в котором вывожу только детальные записи без условного оформления , проверяю в предприятии - данные выводит. В кнопке делаю замену настроек (на настройки варианта Основной1):

 ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
	СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;

	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	ВариантОтчета = СхемаКомпоновкиДанных.ВариантыНастроек.Основной1;
	КомпоновщикНастроек.ЗагрузитьНастройки(ВариантОтчета.Настройки);
	МакетКомпоновки   = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки ,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
		
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	ТЗ = Новый ТаблицаЗначений;
	ПроцессорВывода.УстановитьОбъект(ТЗ);
	
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	

Показать


ТЗ приходит с одной пустой строчкой.
Пробовала также выгружать в дерево значений(без замены настроек):приходит дерево с пустыми значениями.
Во вложении прикрепила как выглядит структура, по сути мне нужны данные по ДокументРеализации.
Подскажите, что я делаю не так.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
6. _Vanda_ 08.05.20 18:47 Сейчас в теме
(5)да, дело было в параметрах, не передавались пользовательские настройки

 ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
	СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;
	
	ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
	СтруктураПользовательскихНастроек = Новый Структура;
	Для Каждого Элем ИЗ ПользовательскиеНастройки Цикл
		СтруктураПользовательскихНастроек.Вставить(Строка(Элем.Параметр),Элем.Значение)
	КонецЦикла;	

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

Показать
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Salavat 13 07.05.20 21:42 Сейчас в теме
(1) отчёт (хотябы каркас его) выложите и - назовите конфигурацию.
Ответ - гораздо быстрее получите.
4. _Vanda_ 07.05.20 22:53 Сейчас в теме
(2) Сделала каркас отчета и в нем все работает как надо, то есть код, который прописан в кнопке отрабатывает корректно, дело в чем то другом)) Спасибо за идею, буду копать дальше)
3. dhurricane 07.05.20 21:42 Сейчас в теме
(1) Попробуйте отказаться от промежуточного компоновщика настроек. При компоновке макета сразу укажите "ВариантОтчета.Настройки".

P.S. Либо для первого примера сразу "СхемаКомпновкиДанных.НастройкиПоУмолчанию".
5. ab_initio 95 08.05.20 05:38 Сейчас в теме
Странно как-то
Есть подозрения, что в самой схеме компоновке проблема. Что именно она не выбирает ничего. Ну, там, отбор может стоит какой, или параметры какие-то так выбраны, что запрос ничего не возвращает и в выборку ничего не попадает.
Вот посмотрите, Ваш код без единого изменения работоспособен, если сама СКД что-то выдает, то в таблицу оно совершенно точно попадет, даже с группировками.
Прикрепленные файлы:
ВнешнийОтчет1.erf
6. _Vanda_ 08.05.20 18:47 Сейчас в теме
(5)да, дело было в параметрах, не передавались пользовательские настройки

 ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
	СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;
	
	ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
	СтруктураПользовательскихНастроек = Новый Структура;
	Для Каждого Элем ИЗ ПользовательскиеНастройки Цикл
		СтруктураПользовательскихНастроек.Вставить(Строка(Элем.Параметр),Элем.Значение)
	КонецЦикла;	

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

Показать
7. ab_initio 95 08.05.20 20:42 Сейчас в теме
(6) Сейчас всё работает?
8. _Vanda_ 08.05.20 21:11 Сейчас в теме
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день