Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
6.6 kB
5
Indexable
Never
&НаСервере
Функция СформироватьНаСервере()       
	
	Обработка =  РеквизитФормыВЗначение("Объект");
    ТабДок = Новый ТабличныйДокумент;
	Макет = Обработка.ПолучитьМакет("Макет");
		
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
		|	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК НаименованиеБанка,
		|	СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт) КАК НачальныйОстаток,
		|	ХозрасчетныйОстаткиИОбороты.Период КАК ПериодНеделя
		|ИЗ
		|	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Неделя, , Счет В (&НомерСчета), &ВидыСубконто, ) КАК ХозрасчетныйОстаткиИОбороты
		|
		|СГРУППИРОВАТЬ ПО
		|	ХозрасчетныйОстаткиИОбороты.Счет,
		|	ХозрасчетныйОстаткиИОбороты.Субконто1,
		|	ХозрасчетныйОстаткиИОбороты.Период
		|ИТОГИ
		|	СУММА(НачальныйОстаток)
		|ПО
		|	ПериодНеделя ПЕРИОДАМИ(НЕДЕЛЯ, , )";  
	
	Запрос.УстановитьПараметр("ВидыСубконто", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.БанковскиеСчета);
	СписокСчетовДляПараметра = Новый Массив;
	СписокСчетовДляПараметра.Добавить(ПланыСчетов.Хозрасчетный.РасчетныеСчета);
	СписокСчетовДляПараметра.Добавить(ПланыСчетов.Хозрасчетный.ВалютныеСчета);
 	Запрос.УстановитьПараметр("НомерСчета",СписокСчетовДляПараметра);	 
	Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);	
	Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);	
	РезультатЗапроса = Запрос.Выполнить();
	
	ОбластьСтатичнаяКолонка = Макет.ПолучитьОбласть("СтатичнаяКолонка");
	ТабДок.Вывести(ОбластьСтатичнаяКолонка);
	ОбластьКолонка = Макет.ПолучитьОбласть("Колонка");

	ВыборкаПериодНеделя = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
 	
	Пока ВыборкаПериодНеделя.Следующий() Цикл
		Если ВыборкаПериодНеделя.ПериодНеделя >= Объект.Период.ДатаНачала Тогда 
			
			ВыборкаДетальныеЗаписи = ВыборкаПериодНеделя.Выбрать();
			
			Пока ВыборкаДетальныеЗаписи.Следующий() Цикл       
                                                  
				НеделяПоСчету = НеделяГода(ВыборкаДетальныеЗаписи.ПериодНеделя);
				ОбластьКолонка.Параметры.Неделя = Формат(ВыборкаДетальныеЗаписи.ПериодНеделя, "ДФ=dd.MM.yyyy");
				ОбластьКолонка.Параметры.НомерНедели = НеделяПосчету; 
				Если ВыборкаДетальныеЗаписи.НаименованиеБанка = Справочники.БанковскиеСчетаОрганизаций.НайтиПоНаименованию("р/с ""КОММЕРЦБАНК (ЕВРАЗИЯ)""") Тогда
					ОбластьКолонка.Параметры.БКР = ВыборкаДетальныеЗаписи.НачальныйОстаток;  
				ИначеЕсли ВыборкаДетальныеЗаписи.НаименованиеБанка = Справочники.БанковскиеСчетаОрганизаций.НайтиПоНаименованию("RUR Расчетный в АО ""РАЙФФАЙЗЕНБАНК"" (Расчетный)")Тогда
					ОбластьКолонка.Параметры.БРР = ВыборкаДетальныеЗаписи.НачальныйОстаток;			
				ИначеЕсли ВыборкаДетальныеЗаписи.НаименованиеБанка = Справочники.БанковскиеСчетаОрганизаций.НайтиПоНаименованию("RUR Расчетный в ПАО ""ПРОМСВЯЗЬБАНК""") Тогда
					ОбластьКолонка.Параметры.БПР = ВыборкаДетальныеЗаписи.НачальныйОстаток;	
				ИначеЕсли ВыборкаДетальныеЗаписи.НаименованиеБанка = Справочники.БанковскиеСчетаОрганизаций.НайтиПоНаименованию("EUR КОММЕРЦБАНК (валютный текущий)") Тогда
					ОбластьКолонка.Параметры.БКЕ = ВыборкаДетальныеЗаписи.НачальныйОстаток;
				ИначеЕсли ВыборкаДетальныеЗаписи.НаименованиеБанка = Справочники.БанковскиеСчетаОрганизаций.НайтиПоРеквизиту("НомерСчета","40702978400000011129") Тогда
					ОбластьКолонка.Параметры.БРЕ = ВыборкаДетальныеЗаписи.НачальныйОстаток;
				КонецЕсли;
				
			КонецЦикла;   
			
			ОбластьКолонка.Параметры.БББ = ВыборкаПериодНеделя.НачальныйОстаток;
			ТабДок.Вывести(ОбластьКолонка); 
		КонецЕсли; 
		      	
	КонецЦикла;  
	
	Возврат ТабДок;
	
КонецФункции