Не получается вывести в макет СКД

1. momoiro 11.07.24 03:57 Сейчас в теме
День добрый! Есть отчет, который выводит макет. Мне надо вывести организацию и ответственные лица руководителей, НО почему то не получается, никаких ошибок нет и ничего не выводит. В запросе тоже все добавляю. Третий день голову ломаю. Когда пишу, из того что есть (контрагенты, организация и тд тп), оно выводит, а когда я добавляю, не выводит ничего. Помогите плиз...
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. пользователь 11.07.24 06:39
Сообщение было скрыто модератором.
...
3. muskul 11.07.24 07:15 Сейчас в теме
(2)Всегда интересно как такие не люди (тут не в обиду автору конечно) допускаются до работы с УХ.
синдром самозванца в действии
user1880116; +1 Ответить
4. user1880116 11.07.24 07:36 Сейчас в теме
(3)
как такие не люди
Они купили лозунг, что 1С это доступно и всерьез.
5. momoiro 11.07.24 09:07 Сейчас в теме
6. Bukaska 140 11.07.24 10:18 Сейчас в теме
Выводите через что, если не секрет. Хоть код покажите
7. momoiro 12.07.24 03:00 Сейчас в теме
(6)
Процедура СформироватьОтчет(ПараметрыОтчета, АдресХранилища) Экспорт
	//ЕстьСклад = ?(ПараметрыОтчета.Счет.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады) <> Неопределено, Истина, Ложь);
	ДанныеРасшифровки = Неопределено;	
	Если ПараметрыОтчета.СКД Тогда
		ТабличныйДокумент = Новый ТабличныйДокумент;
			
		ПередКомпоновкойМакета(ПараметрыОтчета, СхемаКомпоновкиДанных, КомпоновщикНастроек); 
		  
		           
		ДанныеРасшифровки = ПараметрыОтчета.ДанныеРасшифровки;
		Если ДанныеРасшифровки = Неопределено Тогда
			ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
		КонецЕсли; 
		КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;      
		//МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровкиОбъект);      
		МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);      
		ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;      
		ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина);
		
		  			
		//Результат.Очистить();
		ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;      
		ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);      
		ПроцессорВывода.НачатьВывод();      
		ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);      
		//ТабличныйДокумент.ПоказатьУровеньГруппировокСтрок(0);//++ webresurs 03.07.2020
		ПроцессорВывода.ЗакончитьВывод();   
		// После окончания процессором вывода отчета, поместим расшифровку во временное хранилище.
		ДанныеДляРасшифровки = Новый Структура("Объект, ДанныеРасшифровки", ПараметрыОтчета, ДанныеРасшифровки);
		ДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеДляРасшифровки, ПараметрыОтчета.ДанныеРасшифровки);
				
		//СкомпоноватьРезультат(ТабличныйДокумент, Новый ДанныеРасшифровкиКомпоновкиДанных);		
	Иначе
		
		//ТЗ = Новый ТаблицаЗначений;
		//	
		////Настройки = КомпоновщикНастроек.ПолучитьНастройки();
		////КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
		//ПередКомпоновкойМакета(ПараметрыОтчета, СхемаКомпоновкиДанных, КомпоновщикНастроек); 
		//  		
		//КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
		//МакетКомпоновки   = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
		//
		//ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
		//ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
		//
		//
		//ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
		//ПроцессорВывода.УстановитьОбъект(ТЗ);
		//ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
		//
		//Для Каждого Строка Из ТЗ Цикл
		//КонецЦикла;
		
		Запрос = Новый Запрос;
		
		МассивСубконто = Новый Массив;
		МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
		МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
		
		//МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);
		
		Запрос.УстановитьПараметр("Счет", 		   ПараметрыОтчета.СписокСчетов);
		
		//Запрос.УстановитьПараметр("Контрагент",    Справочники.Контрагенты.ПустаяСсылка());
		Запрос.УстановитьПараметр("Организация",   ПараметрыОтчета.Организация);
		Запрос.УстановитьПараметр("ДатаНачала",    НачалоДня(ПараметрыОтчета.НачалоПериода));
		//Запрос.УстановитьПараметр("ДатаОкончания", Новый Граница(КонецДня(ПараметрыОтчета.КонецПериода), ВидГраницы.Включая));
		Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ПараметрыОтчета.КонецПериода));
		Запрос.УстановитьПараметр("МассивСубконто",   МассивСубконто);
		Запрос.УстановитьПараметр("СубконтоНоменклатура", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
		//Запрос.УстановитьПараметр("ВидСубконто",   ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
				
		Запрос.Текст =
		"ВЫБРАТЬ
		|	ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
		|	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
		|	ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).ЕдиницаИзмерения КАК ЕдиницаИзмерения,
		|	ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Код КАК НоменклатураКод,
		|	ХозрасчетныйОстаткиИОбороты.Субконто3 КАК Склад,
		|	СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстатокДт) КАК КоличествоНач,
		|	СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт) КАК КоличествоПриход,
		|	СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт) КАК КоличествоРасход,
		|	СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокДт) КАК КоличествоКон,
		|	ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Наименование КАК Наименование,
		|	ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
		|	ХозрасчетныйОстаткиИОбороты.Счет.Порядок КАК СчетПорядок
		|ИЗ
		|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
		|			&ДатаНачала,
		|			&ДатаОкончания,
		|			,
		|			,
		|			Счет В (&СчетНоменклатураСклад),
		|			&МассивСубконто,
		|			ВЫБОР
		|					КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.пустаяСсылка)
		|						ТОГДА ИСТИНА
		|					ИНАЧЕ Организация = &Организация
		|				КОНЕЦ
		|				И ВЫБОР
		|					КОГДА &Склад = ЗНАЧЕНИЕ(Справочник.Склады.пустаяСсылка)
		|						ТОГДА ИСТИНА
		|					ИНАЧЕ Субконто3 В (&Склад)
		|				КОНЕЦ) КАК ХозрасчетныйОстаткиИОбороты
		|
		|СГРУППИРОВАТЬ ПО
		|	ХозрасчетныйОстаткиИОбороты.Субконто1,
		|	ХозрасчетныйОстаткиИОбороты.Организация,
		|	ХозрасчетныйОстаткиИОбороты.Счет,
		|	ХозрасчетныйОстаткиИОбороты.Счет.Порядок,
		|	ХозрасчетныйОстаткиИОбороты.Субконто3
		|
		|УПОРЯДОЧИТЬ ПО
		|	Склад,
		|	СчетПорядок,
		|	Наименование
		|ИТОГИ
		|	СУММА(КоличествоНач),
		|	СУММА(КоличествоПриход),
		|	СУММА(КоличествоРасход),
		|	СУММА(КоличествоКон)
		|ПО
		|	ОБЩИЕ";
		
		//Если Не ЕстьСклад Тогда
		//	Запрос.Текст = СтрЗаменить(Запрос.Текст, "ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Склад,", "");
		//	Запрос.Текст = СтрЗаменить(Запрос.Текст, "И (Субконто2 = &Склад", "");
		//	Запрос.Текст = СтрЗаменить(Запрос.Текст, "ИЛИ Субконто2 = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))", "");
		//	Запрос.Текст = СтрЗаменить(Запрос.Текст, "ХозрасчетныйОстаткиИОбороты.Субконто2,", "");
		//КонецЕсли;
		Запрос1 = Новый Запрос;
		Запрос1.Текст = 
		"ВЫБРАТЬ
		|	Хозрасчетный.Ссылка КАК Ссылка
		|ИЗ
		|	ПланСчетов.Хозрасчетный КАК Хозрасчетный
		|ГДЕ
		|	Хозрасчетный.ВидыСубконто.ВидСубконто В(&СубконтоНоменклатура)
		|	И Хозрасчетный.ВидыСубконто.ВидСубконто В(&СубконтоСклад)
		|	И Хозрасчетный.Ссылка В(&СписокСчетов)
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	Хозрасчетный.Ссылка КАК Ссылка
		|ИЗ
		|	ПланСчетов.Хозрасчетный КАК Хозрасчетный
		|ГДЕ
		|	Хозрасчетный.ВидыСубконто.ВидСубконто = &СубконтоНоменклатура
		|	И НЕ Хозрасчетный.ВидыСубконто.ВидСубконто В (&СубконтоСклад)
		|	И Хозрасчетный.Ссылка В(&СписокСчетов)";
		Запрос1.УстановитьПараметр("СписокСчетов", ПараметрыОтчета.СписокСчетов.ВыгрузитьЗначения());
		Запрос1.УстановитьПараметр("СубконтоНоменклатура",ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
		Запрос1.УстановитьПараметр("СубконтоСклад", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
		
		РезультатЗапроса = Запрос1.ВыполнитьПакет();
		
		//Если Не РезультатЗапроса[0].Пустой() Тогда
			Запрос.УстановитьПараметр("СчетНоменклатураСклад", РезультатЗапроса[0].Выгрузить().ВыгрузитьКолонку("Ссылка"));
		//Иначе
		//	Запрос.УстановитьПараметр("СчетНоменклатураСклад", "");
		//КонецЕсли;
		Запрос.УстановитьПараметр("СчетНоменклатура", РезультатЗапроса[1].Выгрузить().ВыгрузитьКолонку("Ссылка"));
		
		
		ТабличныйДокумент = Новый ТабличныйДокумент;
		
		РезультатЗапроса = Запрос.Выполнить();
		Если РезультатЗапроса.Пустой() Тогда
			ПоместитьВоВременноеХранилище(Новый Структура("Результат,ДанныеРасшифровки", ТабличныйДокумент, ДанныеРасшифровки), АдресХранилища);
			Возврат;
		КонецЕсли;
		
		Макет = ПолучитьМакет("Макет");
		
		// Выведем заголовок
		СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(ПараметрыОтчета.Организация, ПараметрыОтчета.КонецПериода);
		МОЛВыбранногоСклада = ОтветственныеЛицаБП.ОтветственноеЛицоНаСкладе(ПараметрыОтчета.Склад, КонецДня(ПараметрыОтчета.КонецПериода));
		
		ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
		
		ОбластьМакета.Параметры.Склад	 				 = ПараметрыОтчета.Склад;
		//ОбластьМакета.Параметры.ОрганизацияПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе);
		ОбластьМакета.Параметры.ОрганизацияПредставление = СведенияОПокупателе.НаименованиеДляПечатныхФорм;
		ОбластьМакета.Параметры.ДатаСоставления 		 = ТекущаяДата();
		ОбластьМакета.Параметры.ДатаНачала 				 = ПараметрыОтчета.НачалоПериода;
		ОбластьМакета.Параметры.ДатаКонца 				 = ПараметрыОтчета.КонецПериода;
		ОбластьМакета.Параметры.ОрганизацияПоОКПО 		 = СведенияОПокупателе.КодПоОКПО;
		ОбластьМакета.Параметры.МОЛ 					 = ?(НЕ ЗначениеЗаполнено(МОЛВыбранногоСклада), "", МОЛВыбранногоСклада);
		//ОбластьМакета.Параметры.МОЛТабельныйНомер 		 = ?(НЕ ЗначениеЗаполнено(МОЛВыбранногоСклада), "", МОЛВыбранногоСклада.Код);
		ВысотаЗаголовка = ОбластьМакета.ВысотаТаблицы;
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		// Выведем шапку
		ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
		ОбластьМакета.Параметры.ДатаНачала 				 = ПараметрыОтчета.НачалоПериода;
		ОбластьМакета.Параметры.ДатаКонца 				 = ПараметрыОтчета.КонецПериода;
		
		ПовторятьПриПечатиСтроки = ТабличныйДокумент.Область(1 + ВысотаЗаголовка, , 2 + ВысотаЗаголовка);
		
		ТабличныйДокумент.Вывести(ОбластьМакета);
		
		Выборка = РезультатЗапроса.Выбрать();
		Выборка.Следующий();
		ОбластьИтог = Макет.ПолучитьОбласть("Итог");
		ОбластьИтог.Параметры.Заполнить(Выборка);
		ОбластьМакета = Макет.ПолучитьОбласть("СтрокаТаблицы");
		НомерПоПорядку = 1;
		Пока Выборка.Следующий() Цикл
			ОбластьМакета.Параметры.Заполнить(Выборка);
			ОбластьМакета.Параметры.НомерПоПорядку = НомерПоПорядку;
			НомерПоПорядку = НомерПоПорядку + 1;
			ТабличныйДокумент.Вывести(ОбластьМакета);
		КонецЦикла;
		
		// Выведем подвал
		//ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
		Если ЗначениеЗаполнено(ПараметрыОтчета.Организация) Тогда
			Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(ПараметрыОтчета.Организация, ПараметрыОтчета.КонецПериода);
			ОбластьИтог.Параметры.ГлавныйБухгалтерФИО = Руководители.ГлавныйБухгалтерФИО.Представление;
		КонецЕсли;
		ТабличныйДокумент.Вывести(ОбластьИтог);
		

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

		ПоместитьВоВременноеХранилище(Новый Структура("Результат, ДанныеРасшифровки", ТабличныйДокумент, ДанныеРасшифровки), АдресХранилища);
	//Иначе
	//	ПоместитьВоВременноеХранилище(ТабличныйДокумент, АдресХранилища);
	//КонецЕсли;
		
КонецПроцедуры
Показать
8. momoiro 12.07.24 03:01 Сейчас в теме
(6) Мне хотя бы узнать а какую сторону копать. Через код либо через сам СКД
9. Bukaska 140 12.07.24 12:53 Сейчас в теме
(8) Надо для начала отладчиком покопать, выдает ли данные. Данных нет или переменная получена, но не выводится.
Оставьте свое сообщение

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