Не правильно выводит долг

1. user973528 13.12.18 17:07 Сейчас в теме
При выполнении запроса, нахожу лицевой счет по услуге, почему-то выдаёт долг за период 01.10 по 31.10, в базе долга нету а есть переплата,
Начисления и оплату считает корректно
Подскажите пожалуйста, где ошибся
Заполняю ДБФ файл для соц.защиты.
&НаСервере
Процедура ВыгрузитьСодержаниеТекущийРемонт()
	
	ОплатыК = КонецМесяца(КонецМесяца(ДатаОбр)+1)-46799;
	Запрос = новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	РасчетыПоНачислениямОстаткиИОбороты.Квартиросъемщик.ЛицевойСчет КАК КвартиросъемщикЛицевойСчет,
	               |	РасчетыПоНачислениямОстаткиИОбороты.Начисление,
	               |	СУММА(РасчетыПоНачислениямОстаткиИОбороты.СуммаНачальныйОстаток) КАК НачальноеСальдо,
	               |	СУММА(РасчетыПоНачислениямОстаткиИОбороты.СуммаПриход) КАК Оплата,
	               |	СУММА(-РасчетыПоНачислениямОстаткиИОбороты.СуммаКонечныйОстаток) КАК Долг,
	               |	СУММА(ВложенныйЗапрос.Потреблено) КАК Потреблено,
	               |	СУММА(ВложенныйЗапрос.Тариф) КАК Тариф,
	               |	СУММА(ВложенныйЗапрос.Начислено) КАК Начислено,
	               |	NULL КАК НачальноеСальдо2,
	               |	NULL КАК Оплата2,
	               |	NULL КАК Долг2,
	               |	NULL КАК Потреблено2,
	               |	NULL КАК Тариф2,
	               |	NULL КАК Начислено2
	               |ПОМЕСТИТЬ втСвоп
	               |ИЗ
	               |	РегистрНакопления.РасчетыПоНачислениям.ОстаткиИОбороты(&Нач, &Кон, Период, , ) КАК РасчетыПоНачислениямОстаткиИОбороты
	               |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	               |			ПолныеСведенияОНачислениях.Квартиросъемщик.ЛицевойСчет КАК ЛС,
	               |			ПолныеСведенияОНачислениях.Количество КАК Потреблено,
	               |			ПолныеСведенияОНачислениях.Начисление КАК Начисление,
	               |			ПолныеСведенияОНачислениях.Тариф КАК Тариф,
	               |			ПолныеСведенияОНачислениях.Сумма КАК Начислено
	               |		ИЗ
	               |			РегистрНакопления.ПолныеСведенияОНачислениях КАК ПолныеСведенияОНачислениях
	               |		ГДЕ
	               |			ПолныеСведенияОНачислениях.Период МЕЖДУ &НачалоН И &КонецН
	               |			И ПолныеСведенияОНачислениях.Начисление.Наименование = ""Общедомовые ГВС ХВС нагрев"") КАК ВложенныйЗапрос
	               |		ПО РасчетыПоНачислениямОстаткиИОбороты.Квартиросъемщик.ЛицевойСчет = ВложенныйЗапрос.ЛС
	               |			И РасчетыПоНачислениямОстаткиИОбороты.Начисление = ВложенныйЗапрос.Начисление
	               |ГДЕ
	               |	РасчетыПоНачислениямОстаткиИОбороты.Начисление.Наименование = ""Общедомовые ГВС ХВС нагрев""
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	РасчетыПоНачислениямОстаткиИОбороты.Квартиросъемщик.ЛицевойСчет,
	               |	РасчетыПоНачислениямОстаткиИОбороты.Начисление
	               |
	               |ОБЪЕДИНИТЬ ВСЕ
	               |
	               |ВЫБРАТЬ
	               |	РасчетыПоНачислениямОстаткиИОбороты.Квартиросъемщик.ЛицевойСчет,
	               |	РасчетыПоНачислениямОстаткиИОбороты.Начисление,
	               |	NULL,
	               |	NULL,
	               |	NULL,
	               |	NULL,
	               |	NULL,
	               |	NULL,
	               |	СУММА(РасчетыПоНачислениямОстаткиИОбороты.СуммаНачальныйОстаток),
	               |	СУММА(РасчетыПоНачислениямОстаткиИОбороты.СуммаПриход),
	               |	СУММА(-РасчетыПоНачислениямОстаткиИОбороты.СуммаКонечныйОстаток),
	               |	СУММА(ВложенныйЗапрос.Потреблено),
	               |	СУММА(ВложенныйЗапрос.Тариф),
	               |	СУММА(ВложенныйЗапрос.Начислено)
	               |ИЗ
	               |	РегистрНакопления.РасчетыПоНачислениям.ОстаткиИОбороты(&Нач, &Кон, Период, , ) КАК РасчетыПоНачислениямОстаткиИОбороты
	               |		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	               |			ПолныеСведенияОНачислениях.Квартиросъемщик.ЛицевойСчет КАК ЛС,
	               |			ПолныеСведенияОНачислениях.Количество КАК Потреблено,
	               |			ПолныеСведенияОНачислениях.Начисление КАК Начисление,
	               |			ПолныеСведенияОНачислениях.Тариф КАК Тариф,
	               |			ПолныеСведенияОНачислениях.Сумма КАК Начислено
	               |		ИЗ
	               |			РегистрНакопления.ПолныеСведенияОНачислениях КАК ПолныеСведенияОНачислениях
	               |		ГДЕ
	               |			ПолныеСведенияОНачислениях.Период МЕЖДУ &НачалоН И &КонецН
	               |			И ПолныеСведенияОНачислениях.Начисление.Наименование = ""Квартплата"") КАК ВложенныйЗапрос
	               |		ПО РасчетыПоНачислениямОстаткиИОбороты.Квартиросъемщик.ЛицевойСчет = ВложенныйЗапрос.ЛС
	               |			И РасчетыПоНачислениямОстаткиИОбороты.Начисление = ВложенныйЗапрос.Начисление
	               |ГДЕ
	               |	РасчетыПоНачислениямОстаткиИОбороты.Начисление.Наименование = ""Квартплата""
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	РасчетыПоНачислениямОстаткиИОбороты.Квартиросъемщик.ЛицевойСчет,
	               |	РасчетыПоНачислениямОстаткиИОбороты.Начисление
	               |;
	               |
	               |////////////////////////////////////////////////////////////­////////////////////
	               |ВЫБРАТЬ
	               |	втСвоп.КвартиросъемщикЛицевойСчет КАК КвартиросъемщикЛицевойСчет,
	               |	СУММА(втСвоп.НачальноеСальдо) КАК НачальноеСальдо,
	               |	СУММА(втСвоп.Оплата) КАК Оплата,
	               |	СУММА(втСвоп.Долг) КАК Долг,
	               |	СУММА(втСвоп.Потреблено) КАК Потреблено,
	               |	СУММА(втСвоп.Тариф) КАК Тариф,
	               |	СУММА(втСвоп.Начислено) КАК Начислено,
	               |	СУММА(втСвоп.НачальноеСальдо2) КАК НачальноеСальдо2,
	               |	СУММА(втСвоп.Оплата2) КАК Оплата2,
	               |	СУММА(втСвоп.Долг2) КАК Долг2,
	               |	СУММА(втСвоп.Потреблено2) КАК Потреблено2,
	               |	СУММА(втСвоп.Тариф2) КАК Тариф2,
	               |	СУММА(втСвоп.Начислено2) КАК Начислено2
	               |ИЗ
	               |	втСвоп КАК втСвоп
	               |
	               |СГРУППИРОВАТЬ ПО
	               |	втСвоп.КвартиросъемщикЛицевойСчет
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	КвартиросъемщикЛицевойСчет";
	
	Запрос.УстановитьПараметр("Нач",НачалоМесяца(КонецМесяца(ДатаОбр)+1));
	Запрос.УстановитьПараметр("Кон",ОплатыК);
	Запрос.УстановитьПараметр("НачалоН",НачалоМесяца(ДатаОбр));
	Запрос.УстановитьПараметр("КонецН",КонецМесяца(ДатаОбр));	
	РезультатЗапроса = Запрос.Выполнить();
	
	ТЗ = РезультатЗапроса.Выгрузить();
	БД = Новый XBase;
	БД.ОткрытьФайл(ПутьКФайлу);
	//Первая итерация
					Поиск = УбратьПробелы(БД.lchet);
					Строка = ТЗ.Найти(Поиск,"КвартиросъемщикЛицевойСчет");
					Если Строка <> Неопределено Тогда
						НачСал = -Строка.НачальноеСальдо;  
						Оплат = Строка.Оплата;                       
						Тар = Строка.Тариф;                           
						Кол = Строка.Потреблено;                 
						Нач = Строка.Начислено;                   
						
						БД.SUMNCH = БД.SUMNCH + Нач;
						БД.SUMOPL = БД.SUMOPL + Оплат;
												
						Если НачСал < Оплат Тогда
							БД.SUMDOLG = БД.SUMDOLG + 0;
						ИначеЕсли НачСал > Оплат Тогда
							БД.SUMDOLG = БД.SUMDOLG + Строка.Долг;
						КонецЕсли;
						БД.TARIF_9 = Тар;
						БД.FAKT_9 = Кол;
						БД.SUMTAR_9 = Нач;
						БД.Записать();
					Иначе
						Сообщить("Ошибка поиска строки  "+ Поиск);
					КонецЕсли;
	Пока БД.Следующая() Цикл
		Поиск = УбратьПробелы(БД.lchet);
		Строка = ТЗ.Найти(Поиск,"КвартиросъемщикЛицевойСчет");
		Если Строка <> Неопределено Тогда
			НачСал = -(Строка.НачальноеСальдо); //Сумма по Содержанию и Текущему ремонту на начало месяца 
			Оплат = Строка.Оплата;                       //Сумма оплат по содержанию и текущему ремонту
			Тар = Строка.Тариф;                           //Тариф по двум видам
			Кол = Строка.Потреблено;                 //Потребление в месяц
			Нач = Строка.Начислено;                   //Начисление как произведение Тар на Кол
			
			БД.SUMNCH = БД.SUMNCH + Нач;
			БД.SUMOPL = БД.SUMOPL + Оплат;
			Если НачСал > Оплат Тогда
				БД.SUMDOLG = БД.SUMDOLG + Строка.Долг;
			КонецЕсли;
			БД.TARIF_9 = Тар;
			БД.FAKT_9 = Кол;
			БД.SUMTAR_9 = Нач;
			БД.Записать();
		Иначе
			//Сообщить("Ошибка поиска строки  "+ Поиск);
		КонецЕсли;		
	КонецЦикла;
		БД.ЗакрытьФайл();
	
	КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user973528 13.12.18 17:09 Сейчас в теме
Конфигурация КАМИН:Квартплата. Редакция 2.0
3. user973528 13.12.18 17:19 Сейчас в теме
762
1) Начальное сальдо
2) Оплата
3) Долг
Как я понимаю в моём условии запроса Минусовое начальное сальдо является долгом, а здесь идёт переплата
Прикрепленные файлы:
Оставьте свое сообщение

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