Объединить СКД с табличным документом.

1. nyra 17.11.23 13:39 Сейчас в теме
Имеется отчет СКД и табличный документ, нужно чтобы в табличный документ вводились данные из СКД. Подскажите, пожалуйста. как это реализовать. Я в тупике.
По теме из базы знаний
Найденные решения
8. user779438 20.11.23 15:23 Сейчас в теме
Вам надо вывести отчет в две колонки в свой макет? Если это так, то в процедуре ПриКомпоновкеДанных надо написать что-то вроде
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ДокументРезультат.Очистить();
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки, , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина);
	
	ТЗ = Новый ТаблицаЗначений;
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	ПроцессорВывода.УстановитьОбъект(ТЗ);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
	ДокументРезультат.Очистить();
	Макет = ПолучитьМакет("МакетТабличногоДокумента");
	КоличествоПолВыборки = Цел((ТЗ.Количество() + 1) /  2);
	Для НомерСтроки = 0 По КоличествоПолВыборки Цикл 
		ТекСтрока = ТЗ[НомерСтроки];
		Область = Макет.ПолучитьОбласть("Строка");
		Область.Параметры.Заполнить(ТекСтрока);
		ДокументРезультат.Вывести(Область);
		
		Область = Макет.ПолучитьОбласть("Строка");
		Если ТекСтрока + КоличествоПолВыборки + 1 < ТЗ.Количество() Тогда
			ТекСтрока = ТЗ[НомерСтроки + КоличествоПолВыборки + 1];
			Область.Параметры.Заполнить(ТекСтрока);
		КонецЕсли;
		ДокументРезультат.Присоединить(Область);
	КонецЦикла;

КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Vinzor 110 17.11.23 18:18 Сейчас в теме
(1) Ну надо просто иметь (знать) индексы ячеек табличного документа, и в них передать значения из выборки СКД.

Примерно так
ТабличныйДокумент.Область("R25C5:R25C6").Текст = "Ваше значение строкой"
4. user1322470 20.11.23 07:55 Сейчас в теме
спасибо, буду пробовать.
2. nyra 17.11.23 13:42 Сейчас в теме
Табличный документ был создан намеренно, тк. иначе не получалось разделить отчет на две части и выводить на экран.
5. Nigmatul 20.11.23 12:30 Сейчас в теме
ТД в ТЗ, ТЗ как источник в скд, соединить с чем надо и нарисовать итоговый ТД?
6. user1322470 20.11.23 12:51 Сейчас в теме
в общем, задача вообще состоит в том, чтобы данные в отчете разделить на две части. И чтобы данные во второй таблице были продолжением первой таблице. Отчет создан в СКД.
7. user1322470 20.11.23 12:56 Сейчас в теме
вид должен иметь такой:
Прикрепленные файлы:
8. user779438 20.11.23 15:23 Сейчас в теме
Вам надо вывести отчет в две колонки в свой макет? Если это так, то в процедуре ПриКомпоновкеДанных надо написать что-то вроде
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	ДокументРезультат.Очистить();
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки, , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина);
	
	ТЗ = Новый ТаблицаЗначений;
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
	ПроцессорВывода.УстановитьОбъект(ТЗ);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
	ДокументРезультат.Очистить();
	Макет = ПолучитьМакет("МакетТабличногоДокумента");
	КоличествоПолВыборки = Цел((ТЗ.Количество() + 1) /  2);
	Для НомерСтроки = 0 По КоличествоПолВыборки Цикл 
		ТекСтрока = ТЗ[НомерСтроки];
		Область = Макет.ПолучитьОбласть("Строка");
		Область.Параметры.Заполнить(ТекСтрока);
		ДокументРезультат.Вывести(Область);
		
		Область = Макет.ПолучитьОбласть("Строка");
		Если ТекСтрока + КоличествоПолВыборки + 1 < ТЗ.Количество() Тогда
			ТекСтрока = ТЗ[НомерСтроки + КоличествоПолВыборки + 1];
			Область.Параметры.Заполнить(ТекСтрока);
		КонецЕсли;
		ДокументРезультат.Присоединить(Область);
	КонецЦикла;

КонецПроцедуры
Показать
9. user1322470 20.11.23 15:39 Сейчас в теме
(8)большое спасибо. сейчас попробую!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот