Не загружает данные в отчете (либо падает с ошибкой)

1. user2016706 19.03.25 10:36 Сейчас в теме
Добрый день, прошу помощи знающих людей. Есть внешний отчет в УПП "Отчет по заказанным ЗЧ", требуется к полученным данным в этом отчете, присоединить данные из другой самописной базы. (А именно подтянуть количество документов, в которых фигурирует определенный артикул и количество в штуках в этих документах).
Вложил 2 файла, в одном из них, при формировании отчета, выскакивает ошибка (скрин приложил), во втором случае от ошибки избавились, предварительно передавая в качестве внешних данных пустую таблицу, но в таком случае, по итогу, формируется пустой отчет (скрин приложил).
Таблицу с данными из другой базы получаю, это отрабатывает, проверено.
Подскажите, пожалуйста, что не так делаю?

Код отчета, в котором выскакивает ошибка:

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

#Область ПодготовкаДанныхДляОтправкиВЗЧ

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

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


#КонецОбласти
	
	Если ЗначениеЗаполнено(ДатаНачала) и ЗначениеЗаполнено(ДатаОкончания) Тогда
	
#Область ПолучениеТаблицыИзЗЧ

		Прокси  =  TR_РегламентныеЗадания.ПолучитьПрокси(Справочники.НастройкиИнтеграции.НайтиПоНаименованию("Веб сервис (soap) ЗЧprice"));
		СтрокаТаб = Прокси.ZaprosPartNumber(СтруктураДляПередачиДат, СтруктураДляПередачи);

		Если СтрокаТаб <> Неопределено Тогда 
			ТЗ_Запросов = ЗначениеИзСтрокиВнутр(СтрокаТаб); // получаем ТЗ из удаленной базы
		КонецЕсли;

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

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


КонецПроцедуры

////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­///////

Код отчета, в котором отчет выгружается пустым:

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

#Область ПодготовкаДанныхДляОтправкиВЗЧ

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

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


#КонецОбласти
	
	Если ЗначениеЗаполнено(ДатаНачала) и ЗначениеЗаполнено(ДатаОкончания) Тогда
	
#Область ПолучениеТаблицыИзЗЧ

		Прокси  =  TR_РегламентныеЗадания.ПолучитьПрокси(Справочники.НастройкиИнтеграции.НайтиПоНаименованию("Веб сервис (soap) ЗЧprice"));
		СтрокаТаб = Прокси.ZaprosPartNumber(СтруктураДляПередачиДат, СтруктураДляПередачи);

		Если СтрокаТаб <> Неопределено Тогда 
			ТЗ_Запросов = ЗначениеИзСтрокиВнутр(СтрокаТаб); // получаем ТЗ из удаленной базы
		КонецЕсли;

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

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


КонецПроцедуры
Показать
Прикрепленные файлы:
Отчет по заказанным ЗЧ пустой отчет.erf
Отчет по заказанным ЗЧ с ошибкой.erf
По теме из базы знаний
Найденные решения
3. user2016706 19.03.25 23:58 Сейчас в теме
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	Настройки = КомпоновщикНастроек.ПолучитьНастройки(); // копия настроек из компоновки данных
	//СхемаКомпоновкиДанных = ПолучитьМакет("Макет"); // получение макета компоновки данных
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //объект для создания макета компоновки данных
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); // компоновка макета
	ТЗ_Запросов = Новый ТаблицаЗначений;
	ТЗ_Запросов.Колонки.Добавить("Артикул", Новый ОписаниеТипов("Строка"));
	ТЗ_Запросов.Колонки.Добавить("КоличествоЗапросов", Новый ОписаниеТипов("Число"));
	ТЗ_Запросов.Колонки.Добавить("КоличествоВЗапросах", Новый ОписаниеТипов("Число"));
	ВнешнийНаборДанных = Новый Структура;
	ВнешнийНаборДанных.Вставить("ЗапросыИзЗЧ", ТЗ_Запросов);	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; //Объект, выполняющий компоновку данных
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных); //инициализация компоновщика

#Область ПодготовкаДанныхДляОтправкиВЗЧ

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

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


#КонецОбласти
	
	Если ЗначениеЗаполнено(ДатаНачала) и ЗначениеЗаполнено(ДатаОкончания) Тогда
	
#Область ПолучениеТаблицыИзЗЧ

		Прокси  =  TR_РегламентныеЗадания.ПолучитьПрокси(Справочники.НастройкиИнтеграции.НайтиПоНаименованию("Веб сервис (soap) ЗЧprice"));
		СтрокаТаб = Прокси.ZaprosPartNumber(СтруктураДляПередачиДат, СтруктураДляПередачи);

		Если СтрокаТаб <> Неопределено Тогда 
			ТЗ_Запросов = ЗначениеИзСтрокиВнутр(СтрокаТаб); // получаем ТЗ из удаленной базы
		КонецЕсли;

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

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


КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2016706 19.03.25 10:36 Сейчас в теме
Еще скрин
Прикрепленные файлы:
3. user2016706 19.03.25 23:58 Сейчас в теме
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	Настройки = КомпоновщикНастроек.ПолучитьНастройки(); // копия настроек из компоновки данных
	//СхемаКомпоновкиДанных = ПолучитьМакет("Макет"); // получение макета компоновки данных
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; //объект для создания макета компоновки данных
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); // компоновка макета
	ТЗ_Запросов = Новый ТаблицаЗначений;
	ТЗ_Запросов.Колонки.Добавить("Артикул", Новый ОписаниеТипов("Строка"));
	ТЗ_Запросов.Колонки.Добавить("КоличествоЗапросов", Новый ОписаниеТипов("Число"));
	ТЗ_Запросов.Колонки.Добавить("КоличествоВЗапросах", Новый ОписаниеТипов("Число"));
	ВнешнийНаборДанных = Новый Структура;
	ВнешнийНаборДанных.Вставить("ЗапросыИзЗЧ", ТЗ_Запросов);	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; //Объект, выполняющий компоновку данных
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных); //инициализация компоновщика

#Область ПодготовкаДанныхДляОтправкиВЗЧ

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

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


#КонецОбласти
	
	Если ЗначениеЗаполнено(ДатаНачала) и ЗначениеЗаполнено(ДатаОкончания) Тогда
	
#Область ПолучениеТаблицыИзЗЧ

		Прокси  =  TR_РегламентныеЗадания.ПолучитьПрокси(Справочники.НастройкиИнтеграции.НайтиПоНаименованию("Веб сервис (soap) ЗЧprice"));
		СтрокаТаб = Прокси.ZaprosPartNumber(СтруктураДляПередачиДат, СтруктураДляПередачи);

		Если СтрокаТаб <> Неопределено Тогда 
			ТЗ_Запросов = ЗначениеИзСтрокиВнутр(СтрокаТаб); // получаем ТЗ из удаленной базы
		КонецЕсли;

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

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


КонецПроцедуры
Показать
Оставьте свое сообщение

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