Как посчитать сумму по счетам

1. jeniks 28.02.17 09:29 Сейчас в теме
Конф. Бух 7.7.
Отчет по командировкам собирает на какие расходы командировочных расходов были выделены деньги.
Док.КомуЗаЧто1 суточные, проживание, прочее.
Нужно разделить поступления по счетам: 26.1 23.1 10.10 25.3 чтобы итого по ним выводилось.

Док.КоррСчет = счет
Не могу написать цикл чтобы собирались счета и перечисления на них.
Пускай я сделаю 4 столбца в таблице и отдельно по каждому счету собиралось из ТЗ туда.

Перем ДатаДеноминации;
Процедура Сформировать()

	ТЗ = СоздатьОбъект("ТаблицаЗначений");
	ТЗ.НоваяКолонка("Дата");
	ТЗ.НоваяКолонка("КомуЗаЧто");
	ТЗ.НоваяКолонка("Сумма");
	ТЗ.НоваяКолонка("Счет26_1");
	Если ЦелевоеНазначение.Выбран()=0 Тогда
		Предупреждение("ВЫбрать целевое назначение");
		Возврат;
		СтатусВозврата(0);
		
		
	КонецЕсли;	

	//	
	
	
	Док = СоздатьОбъект("Документ.АвансовыйОтчет");
	Док.ВыбратьДокументы(ДатаНач,ДатаКон);
	
	Пока Док.ПолучитьДокумент() = 1 Цикл
		Если Док.Проведен() = 1 Тогда          
			Если 	(Док.Цель=ЦелевоеНазначение) Тогда	
				Если ((Счет=1)и(Док.ТипОтчета = 1)) 
				или ((Счет=2)и(Док.ТипОтчета = 2))  Тогда
					
					Док.ВыбратьСтроки();
					Пока Док.ПолучитьСтроку() =1 Цикл
						
						ТЗ.НоваяСтрока();
					//	ТЗ.Дата =СокрЛП(Формат(Док.ДатаДок ,"ДММММГГГГ"));
						ТЗ.Дата =СокрЛП(Формат(Док.ДатаДок ,"ДММММГГГГ"));
						ТЗ.КомуЗаЧто = Док.КомуЗаЧто1;  
						ДатаДеноминации = Дата("01.07.2016");
						Если Док.ДатаДок < ДатаДеноминации Тогда
							
						ТЗ.Сумма = Док.Сумма/10000
					Иначе
						ТЗ.Сумма = Док.Сумма;
					КонецЕсли; 
					
						
						
					КонецЦикла;				
				
				КонецЕсли;	
			
			КонецЕсли;	
	
		Иначе
			Продолжить;
		Конецесли;	
	КонецЦикла; 		            
	

   
	Таб = СоздатьОбъект("Таблица");
	Таб.ВывестиСекцию("Шапка"); 
	//
	ТЗ_ИтогПоДню = СоздатьОбъект("ТаблицаЗначений");
	ТЗ_ИтогПоДню.Загрузить(ТЗ);
	ТЗ_ИтогПоДню.Свернуть("Дата", "Сумма");
	//
	//
	ТЗ_ИтогПоКОМУ = СоздатьОбъект("ТаблицаЗначений");
	ТЗ_ИтогПоКому.Загрузить(ТЗ);
	ТЗ_ИтогПоКому.Свернуть("Комузачто", "Сумма");
	//
	Таб.ПрисоединитьСекцию("Шапка_г|Шапка_в");
	ТЗ_ИтогПоКому.ВыбратьСтроки();
	Пока ТЗ_ИтогПоКому.ПолучитьСтроку() = 1 Цикл
		Таб.ПрисоединитьСекцию("Шапка_г|КомуЗаЧто");
	КонецЦикла;  
	Таб.ПрисоединитьСекцию("Шапка_г|ИтогПоДню");
	
	
	 	ТЗ.Свернуть("Дата,Комузачто", "Сумма");
	
	ТЗ_ИтогПоДню.ВыбратьСтроки();
	Пока ТЗ_ИтогПоДню.ПолучитьСтроку() = 1 Цикл
   
		Таб.ВывестиСекцию("Дата|Шапка_в");
		
		ТЗ_ИтогПоКому.ВыбратьСтроки();
		Пока ТЗ_ИтогПоКому.ПолучитьСтроку() = 1 Цикл
			
			ПрТТ = 0;
			
			ТЗ.ВыбратьСтроки();
			Пока ТЗ.ПолучитьСтроку() = 1 Цикл 
				Если (ТЗ.КомуЗаЧто <> ТЗ_ИтогПоКому.КомуЗаЧто)  или
				(ТЗ.Дата <> ТЗ_ИтогПоДню.Дата)  Тогда
					Продолжить;
				Иначе
					Таб.ПрисоединитьСекцию("Дата|КомуЗаЧто");
					ПрТТ = 1;
					Прервать;
				КонецЕсли;
			КонецЦикла; 
			
			Если ПрТТ = 0 Тогда
				Таб.ПрисоединитьСекцию("Дата|Пусто");
			КонецЕсли;                         
			
		КонецЦикла;
		
		Таб.ПрисоединитьСекцию("Дата|ИтогПоДню");
		
	КонецЦикла;
	
	
	Всего = 0;	
	
	Таб.ВывестиСекцию("Итог|Шапка_в");
	ТЗ_ИтогПоКому.ВыбратьСтроки();
	Пока ТЗ_ИтогПоКому.ПолучитьСтроку() = 1 Цикл
		Таб.ПрисоединитьСекцию("Итог|КомуЗаЧто");
		Всего = Всего + ТЗ_ИтогПоКому.Сумма;
	КонецЦикла;  
	Таб.ПрисоединитьСекцию("Итог|ИтогПоДню"); 
	
	Таб.Опции(0,0);
	Таб.Показать("Отчет по кас. аппарату");
	
КонецПроцедуры  
//_______________________
Процедура ПриОткрытии()
	ДатаНач = НачМесяца(ТекущаяДата());
	ДатаКон = КонМесяца(ТекущаяДата());
	Счет=1;
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. jeniks 02.03.17 10:15 Сейчас в теме
Решил так:

ТЗ.НоваяКолонка("Счет_");

	ТЗ.Счет_ = Док.КоррСчет;

Далее ТЗ

	ТЗ_Счет = СоздатьОбъект("ТаблицаЗначений");
	ТЗ_Счет.Загрузить(ТЗ);
	ТЗ_Счет.Свернуть("Счет_", "Сумма");

	Пока ТЗ_Счет.ПолучитьСтроку() = 1 Цикл
   
		Таб.ВывестиСекцию("Счет_");
		КонецЦикла;

Ну и в таблице:

На Счет:	ТЗ_Счет.Счет_	ТЗ_Счет.Сумма
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. jeniks 02.03.17 10:15 Сейчас в теме
Решил так:

ТЗ.НоваяКолонка("Счет_");

	ТЗ.Счет_ = Док.КоррСчет;

Далее ТЗ

	ТЗ_Счет = СоздатьОбъект("ТаблицаЗначений");
	ТЗ_Счет.Загрузить(ТЗ);
	ТЗ_Счет.Свернуть("Счет_", "Сумма");

	Пока ТЗ_Счет.ПолучитьСтроку() = 1 Цикл
   
		Таб.ВывестиСекцию("Счет_");
		КонецЦикла;

Ну и в таблице:

На Счет:	ТЗ_Счет.Счет_	ТЗ_Счет.Сумма
Показать
Оставьте свое сообщение

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