Как программно вывести отчет на СКД?

1. user1194102 24.02.20 22:01 Сейчас в теме
Хочу разобраться как программно можно вывести отчет в СКД. (Причина в том, что нужен был многоступенчатый отчет по всему производственному циклу изготовления продукции. И на скд одним запросом сделать не получилось. Получалось сделать табличный ручной отчет через макет. А сам запрос пакетный, через менеджер запросов.) Интересно попробовать сделать тоже самое программно в скд с группировками и расшифровками. Нашел курсы по скд с программной настройкой СКД, написал простой запрос и вывел в отчет. А вот программный код не пошел В чем ошибка подскажете?

ВЫБРАТЬ
	ТоварыНаСкладахОстатки.Склад,
	ТоварыНаСкладахОстатки.Номенклатура,
	ТоварыНаСкладахОстатки.КоличествоОстаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки


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


ошибка
{Отчет.Отчет7.Форма.ФормаОтчета.Форма(6)}: Ошибка при вызове метода контекста (Выполнить)
	МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);
по причине:
Ошибка компоновки макета
по причине:
Ошибка генерации макета
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(7, 2)}: Таблица не найдена "РегистрНакопления.ТоварныеЗапасы.Обороты"
<<?>>РегистрНакопления.ТоварныеЗапасы.Обороты КАК ТоварныеЗапасыОбороты
Показать


каким боком тут
Таблица не найдена "РегистрНакопления.ТоварныеЗапасы.Обороты"
<<?>>РегистрНакопления.ТоварныеЗапасы.Обороты КАК ТоварныеЗапасыОбороты
в отчете об этом регистре нет совсем ни строчки

<?xml version="1.0" encoding="UTF-8"?>
<DataCompositionSchema xmlns="http://v8.1c.ru/8.1/data-composition-system/schema" xmlns:dcscom="http://v8.1c.ru/8.1/data-composition-system/common" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<dataSource>
		<name>ИсточникДанных1</name>
		<dataSourceType>Local</dataSourceType>
	</dataSource>
	<dataSet xsi:type="DataSetQuery">
		<name>НаборДанных1</name>
		<field xsi:type="DataSetFieldField">
			<dataPath>Склад</dataPath>
			<field>Склад</field>
			<role>
				<dcscom:dimension>true</dcscom:dimension>
			</role>
			<appearance/>
			<inputParameters/>
		</field>
		<field xsi:type="DataSetFieldField">
			<dataPath>Номенклатура</dataPath>
			<field>Номенклатура</field>
			<role>
				<dcscom:dimension>true</dcscom:dimension>
			</role>
			<appearance/>
			<inputParameters/>
		</field>
		<field xsi:type="DataSetFieldField">
			<dataPath>КоличествоОстаток</dataPath>
			<field>КоличествоОстаток</field>
			<appearance/>
			<inputParameters/>
		</field>
		<dataSource>ИсточникДанных1</dataSource>
		<query>ВЫБРАТЬ
	ТоварыНаСкладахОстатки.Склад,
	ТоварыНаСкладахОстатки.Номенклатура,
	ТоварыНаСкладахОстатки.КоличествоОстаток
ИЗ
	РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки</query>
	</dataSet>
	<parameter>
		<name>Период</name>
		<title xsi:type="v8:LocalStringType">
			<v8:item>
				<v8:lang>ru</v8:lang>
				<v8:content>Период</v8:content>
			</v8:item>
		</title>
		<valueType>
			<v8:Type>xs:dateTime</v8:Type>
			<v8:DateQualifiers>
				<v8:DateFractions>DateTime</v8:DateFractions>
			</v8:DateQualifiers>
		</valueType>
		<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
		<useRestriction>false</useRestriction>
		<inputParameters/>
	</parameter>
	<settingsVariant>
		<dcsset:name>Основной</dcsset:name>
		<dcsset:presentation xsi:type="xs:string">Основной</dcsset:presentation>
		<dcsset:settings xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows">
			<dcsset:selection>
				<dcsset:item xsi:type="dcsset:SelectedItemField">
					<dcsset:field>Склад</dcsset:field>
				</dcsset:item>
				<dcsset:item xsi:type="dcsset:SelectedItemField">
					<dcsset:field>Номенклатура</dcsset:field>
				</dcsset:item>
				<dcsset:item xsi:type="dcsset:SelectedItemField">
					<dcsset:field>КоличествоОстаток</dcsset:field>
				</dcsset:item>
			</dcsset:selection>
			<dcsset:dataParameters/>
			<dcsset:outputParameters/>
			<dcsset:item xsi:type="dcsset:StructureItemGroup">
				<dcsset:order>
					<dcsset:item xsi:type="dcsset:OrderItemAuto"/>
				</dcsset:order>
				<dcsset:selection>
					<dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
				</dcsset:selection>
				<dcsset:outputParameters/>
			</dcsset:item>
		</dcsset:settings>
	</settingsVariant>
</DataCompositionSchema>
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Comrade88 7 24.02.20 23:56 Сейчас в теме
Схема компоновки получается из отчетов конфигурации, а конкретно ОтчетПоСкладам.
СхемаКомпоновки = Отчеты.ОтчетПоСкладам.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
user1194102; MuxaH; +2 Ответить
3. user1194102 25.02.20 15:03 Сейчас в теме
А без пути к отчету будет работать? Если например это внешний отчет и он не зарегистрирован как внешний в программе
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");


Например по аналогии с простыми отчетами и так работает
Макет = ПолучитьМакет("Макет");
4. @Fancy 26.02.20 08:21 Сейчас в теме
(3)СхемаКомпоновкиДанных = РеквизитФормыВЗначение("Отчет").СхемаКомпоновкиДанных;
user1194102; +1 Ответить
5. user1194102 26.02.20 15:40 Сейчас в теме
Вот так работает, но частично, на экран выводится только шапка отчета без данных.
СхемаКомпоновки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ТабДок=Новый ТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДок);
    
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    ТабДок.Показать();
Показать

а полный отчет с шапкой и с данными выводится на форму как обычно в СКД.

Как добиться чтобы в ТабДок программно выходили и данные тоже?
Оставьте свое сообщение

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