Расшифровка в отчете

1. Jane1508 4 22.07.19 20:41 Сейчас в теме
1С УПП. Создала внешний отчет "Консолидированный баланс", но не получается сделать расшифровку. Подскажите,пожалуйста.
Расшифровка нужна как в оборотно-сальдовой ведомости,т.е. если нажимаем на цифру по 60 счету(или сам счет),------>то открывается ведомость по 60 счету,
если в ведомости нажимаем на цифру,-------> то открывается карточка счета 60.
Как прописать в процедуре кнопки остальное?Через
ЗаполнитьПараметрыРасшифровкиОборотноСальдовойВедомости
,но правильно у меня не получилось это сделать.Помогите решить этот вопрос,пожалуйста.
Вот часть кода отчета.



  
Процедура КнопкаСформироватьНажатие(Кнопка)
  ............
.............
         
        //Запрос "Касса"
	Запрос = новый Запрос;
	Запрос.УстановитьПараметр("Счет50",ПланыСчетов.Хозрасчетный.НайтиПоКоду("50"));
	Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(НачалоПериода));
	Запрос.УстановитьПараметр("КонецПериода",КонецДня(КонецПериода));
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК Касса_Н,
	               |	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК Касса_К
	               |ИЗ
	               |	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Счет В ИЕРАРХИИ (&Счет50), , ) КАК ХозрасчетныйОстаткиИОбороты";
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		Касса_Н = 0; 
		Касса_К = 0;
		Касса_Н = Выборка.Касса_Н;
		Касса_К = Выборка.Касса_К;
		ОбластьДанные.Параметры.Касса_Н = Касса_Н;
		ОбластьДанные.Параметры.Касса_К = Касса_К;
	КонецЦикла;
	
	//  Запрос Денежные средства под отчетом
	Запрос = новый Запрос;
	Запрос.УстановитьПараметр("Счет60",ПланыСчетов.Хозрасчетный.НайтиПоКоду("60"));
	Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(НачалоПериода));
	Запрос.УстановитьПараметр("КонецПериода",КонецДня(КонецПериода));
	
	Запрос.УстановитьПараметр("Субконто1_1",Справочники.Контрагенты.НайтиПоКоду("БП-000431"));
	Запрос.УстановитьПараметр("Субконто1_2",Справочники.Контрагенты.НайтиПоКоду("БП-000433"));
	Запрос.УстановитьПараметр("Субконто1_3",Справочники.Контрагенты.НайтиПоКоду("БП-000432"));
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
	               |	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт КАК СуммаКонечныйОстатокДт
	               |ИЗ
	               |	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
	               |			&НачалоПериода,
	               |			&КонецПериода,
	               |			,
	               |			,
	               |			Счет В ИЕРАРХИИ (&Счет60),
	               |			,
	               |			Субконто1 = &Субконто1_1
	               |				ИЛИ Субконто1 = &Субконто1_2
	               |				ИЛИ Субконто1 = &Субконто1_3) КАК ХозрасчетныйОстаткиИОбороты";
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		//ДСПО_Н = 0; 
		//ДСПО_К = 0;
		ДСПО_Н = Выборка.СуммаНачальныйОстатокДт;
		ДСПО_К = Выборка.СуммаКонечныйОстатокДт;
		ОбластьДанные.Параметры.ДСПО_Н = ДСПО_Н;
		ОбластьДанные.Параметры.ДСПО_К = ДСПО_К;
		
				
	КонецЦикла;

	                 
//  Запрос "Дебиторская задолженность"
	Запрос = новый Запрос;
	Запрос.УстановитьПараметр("Счет62",ПланыСчетов.Хозрасчетный.НайтиПоКоду("62"));
	Запрос.УстановитьПараметр("Счет6201",ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"));
	Запрос.УстановитьПараметр("Счет6202",ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"));
	Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(НачалоПериода));
	Запрос.УстановитьПараметр("КонецПериода",КонецДня(КонецПериода));
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК ДебиторскаяЗадолженность_Н,
	               |	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК ДебиторскаяЗадолженность_К
	               |ИЗ
	               |	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
	               |			&НачалоПериода,
	               |			&КонецПериода,
	               |			,
	               |			,
	               |			Счет В ИЕРАРХИИ (&Счет62)
	               |				И НЕ Счет В (&Счет6201, &Счет6202),
	               |			,
	               |			) КАК ХозрасчетныйОстаткиИОбороты";
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		ДебиторскаяЗадолженность_Н = 0; 
		ДебиторскаяЗадолженность_К = 0;
		ДебиторскаяЗадолженность_Н = Выборка.ДебиторскаяЗадолженность_Н;
		ДебиторскаяЗадолженность_К = Выборка.ДебиторскаяЗадолженность_К;
		ОбластьДанные.Параметры.ДебиторскаяЗадолженность_Н = ДебиторскаяЗадолженность_Н;
		ОбластьДанные.Параметры.ДебиторскаяЗадолженность_К = ДебиторскаяЗадолженность_К;
			
	КонецЦикла;
	
	//  Запрос "Готовая продукция"
	Запрос = новый Запрос;
	Запрос.УстановитьПараметр("Счет43",ПланыСчетов.Хозрасчетный.НайтиПоКоду("43"));
	Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(НачалоПериода));
	Запрос.УстановитьПараметр("КонецПериода",КонецДня(КонецПериода));
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК ГотоваяПродукция_Н,
	               |	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток КАК ГотоваяПродукция_К
	               |ИЗ
	               |	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Счет В (&Счет43), , ) КАК ХозрасчетныйОстаткиИОбороты";
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		ГотоваяПродукция_Н = 0; 
		ГотоваяПродукция_К = 0;
		ГотоваяПродукция_Н = Выборка.ГотоваяПродукция_Н;
		ГотоваяПродукция_К = Выборка.ГотоваяПродукция_К;
		ОбластьДанные.Параметры.ГотоваяПродукция_Н = ГотоваяПродукция_Н;
		ОбластьДанные.Параметры.ГотоваяПродукция_К = ГотоваяПродукция_К;
			
	КонецЦикла;
	//Задолженность перед подотчетными лицами  
	
	Запрос = новый Запрос;
	Запрос.УстановитьПараметр("Счет60",ПланыСчетов.Хозрасчетный.НайтиПоКоду("60"));
	Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(НачалоПериода));
	Запрос.УстановитьПараметр("КонецПериода",КонецДня(КонецПериода));
	Запрос.УстановитьПараметр("Субконто1_1",Справочники.Контрагенты.НайтиПоКоду("БП-000431")); 
	Запрос.УстановитьПараметр("Субконто1_2",Справочники.Контрагенты.НайтиПоКоду("БП-000433"));//
	Запрос.УстановитьПараметр("Субконто1_3",Справочники.Контрагенты.НайтиПоКоду("БП-000432"));
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт КАК РасходныеМатериалы_Н,
	               |	ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт КАК РасходныеМатериалы_К
	               |ИЗ
	               |	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
	               |			&НачалоПериода,
	               |			&КонецПериода,
	               |			,
	               |			,
	               |			Счет В ИЕРАРХИИ (&Счет60),
	               |			,
	               |			Субконто1 = &Субконто1_1
	               |				ИЛИ Субконто1 = &Субконто1_2
	               |				ИЛИ Субконто1 = &Субконто1_3) КАК ХозрасчетныйОстаткиИОбороты";
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		РасходныеМатериалы_Н = 0; 
		РасходныеМатериалы_К = 0;
		РасходныеМатериалы_Н = Выборка.РасходныеМатериалы_Н;
		РасходныеМатериалы_К = Выборка.РасходныеМатериалы_К;
		ОбластьДанные.Параметры.ЗППЛ_Н = РасходныеМатериалы_Н;
		ОбластьДанные.Параметры.ЗППЛ_К = РасходныеМатериалы_К;
		
	КонецЦикла;
	
	//Собственный капитал.  
	
	Запрос = новый Запрос;
	Запрос.УстановитьПараметр("Счет99",ПланыСчетов.Хозрасчетный.НайтиПоКоду("99"));
	Запрос.УстановитьПараметр("НачалоПериода",НачалоДня(НачалоПериода));
	Запрос.УстановитьПараметр("КонецПериода",КонецДня(КонецПериода));
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК РасходныеМатериалы_Н,
	               |	ХозрасчетныйОстаткиИОбороты.СуммаОборот КАК РасходныеМатериалы_К
	               |ИЗ
	               |	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , Счет В ИЕРАРХИИ (&Счет99), , ) КАК ХозрасчетныйОстаткиИОбороты";
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		РасходныеМатериалы_Н = 0; 
		РасходныеМатериалы_К = 0;
		РасходныеМатериалы_Н = Выборка.РасходныеМатериалы_Н;
		РасходныеМатериалы_К = Выборка.РасходныеМатериалы_К;
		ОбластьДанные.Параметры.СК_Н = РасходныеМатериалы_Н;
		ОбластьДанные.Параметры.СК_К = РасходныеМатериалы_К;
		
	КонецЦикла;
		
	ТабДок.Вывести(ОбластьДанные);
	
КонецПроцедуры


Процедура ЗаполнитьПараметрыРасшифровкиОборотноСальдовойВедомости(Знач ДатаНач, Знач ДатаКон, Знач ИмяРегистраБухгалтерии,
	Область, Выборка, ОтборСубконто = Неопределено, ВыведенныйСчет = Неопределено, Знач ВВалютеСценария = Неопределено)
	
	// Заполение значений для расшифровки
	СчетДляРасшифровки = ?(Выборка.Счет <> NULL, Выборка.Счет, ВыведенныйСчет);
	
	// Заполнение параметров расшифровки
	ПараметрыОСВПоСчету = Новый Соответствие;
	ПараметрыОСВПоСчету.Вставить("ИмяОбъекта", "ОборотноСальдоваяВедомостьПоСчету" + ИмяРегистраБухгалтерии);
	ПараметрыОСВПоСчету.Вставить("ЗаполнитьПоУмолчанию", Истина);
	ПараметрыОСВПоСчету.Вставить("Счет", СчетДляРасшифровки);
	ПараметрыОСВПоСчету.Вставить("ДатаНач", ДатаНач);
	ПараметрыОСВПоСчету.Вставить("ДатаКон", ДатаКон);
	ПараметрыОСВПоСчету.Вставить("Отбор", ОтборСубконто);
	Если ВВалютеСценария <> Неопределено Тогда
		ПараметрыОСВПоСчету.Вставить("ВВалютеСценария", ВВалютеСценария);
	КонецЕсли;
	
	СписокРасшифровки = Новый СписокЗначений;		
	СписокРасшифровки.Добавить(ПараметрыОСВПоСчету,    "ОСВ по счету " + Выборка.СчетПредставление);
	
	Область.Параметры.Расшифровка = СписокРасшифровки;
	
КонецПроцедуры

Процедура ТабДокОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
	
	БухгалтерскиеОтчеты.ДокументРезультатОбработкаРасшифровкиОборотноСальдовойВедомо­сти(Элемент, Расшифровка, СтандартнаяОбработка, Ложь);
	
КонецПроцедуры


Показать
Прикрепленные файлы:
По теме из базы знаний
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

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