Подскажите пожалуйста, сформировал запросы для сверки ндс по счетам 62 и 76, строки не разбиваются подробно.

1. user973528 18.04.19 10:06 Сейчас в теме
Сформировал запросы для сверки суммы НДС по счетам 62 и 76. У некоторых контрагентов строки не разбиваются подробно, тем самым показывая не правильные расчеты по НДС

У него получился одинаковый договор и одинаковый документ поступления, что сделал не так?

Запрос для счета 62.02

Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	ХозрасчетныйОстаткиИОбороты.СуммаОборотДт,
	               |	ХозрасчетныйОстаткиИОбороты.СуммаОборотКт,
	               |	ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Контрагент,
	               |	ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Договор,
	               |	ХозрасчетныйОстаткиИОбороты.Субконто3 КАК ДокументРасчетов
	               |ИЗ
	               |	РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Дата1, &Дата2, , , , , ) КАК ХозрасчетныйОстаткиИОбороты
	               |ГДЕ
	               |	ХозрасчетныйОстаткиИОбороты.Счет = &Счет1";
	
	Если ЗначениеЗаполнено(ЭтотОбъект.Контрагент) Тогда
		 Запрос.Текст = Запрос.Текст + "
		 |	И ХозрасчетныйОстаткиИОбороты.Субконто1 = &Субконто1";
		 Запрос.УстановитьПараметр("Субконто1", ЭтотОбъект.Контрагент);
		 
		 Если ЗначениеЗаполнено(ЭтотОбъект.ДоговорКонтрагента) Тогда
			Запрос.Текст = Запрос.Текст + "
			|	И ХозрасчетныйОстаткиИОбороты.Субконто2 = &Субконто2";
			Запрос.УстановитьПараметр("Субконто2", ЭтотОбъект.ДоговорКонтрагента);
		КонецЕсли;
	КонецЕсли;
	
	Запрос.УстановитьПараметр("Счет1",ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02"));
	Запрос.УстановитьПараметр("Дата1", НачалоДня(ЭтотОбъект.НачалоПериода));
	Запрос.УстановитьПараметр("Дата2", КонецДня(ЭтотОБъект.КонецПериода));

	
	ТЗ1 = Запрос.Выполнить().Выгрузить();
	
	Для Каждого Стр Из ТЗ1 Цикл
		
	//Найдем документы поступления по 62.02
		
		Если (Найти(Стр.ДокументРасчетов, "Поступление на расч") > 0) И Стр.СуммаОборотДТ > 0 Тогда
					
				А = ЭтотОбъект.Отчет.Добавить();
				А.Контрагент = Стр.Контрагент;
				А.Договор    = Стр.Договор;
				А.СуммаДокумента = Стр.СуммаОборотДт;
				А.ДокументРасчетов = Стр.ДокументРасчетов;
					
		КонецЕсли;
Показать


Запрос по 76.АВ

Процедура ПолучитьЗаписиКнигиПокупокКредит()
	
	Запрос = Новый Запрос;
	
	Запрос.Текст = "ВЫБРАТЬ
	               |	НДСЗаписиКнигиПокупок.СчетФактура КАК ДокументРасчетов,
	               |	НДСЗаписиКнигиПокупок.СтавкаНДС,
	               |	НДСЗаписиКнигиПокупок.ДоговорКонтрагента,
	               |	НДСЗаписиКнигиПокупок.СуммаБезНДС КАК СуммаБезНДС,
	               |	НДСЗаписиКнигиПокупок.НДС КАК НДС,
	               |	НДСЗаписиКнигиПокупок.Поставщик КАК Контрагент,
	               |	НДСЗаписиКнигиПокупок.ДатаСобытия
	               |ИЗ
	               |	РегистрНакопления.НДСЗаписиКнигиПокупок КАК НДСЗаписиКнигиПокупок
	               |ГДЕ
	               |	НДСЗаписиКнигиПокупок.Период МЕЖДУ &Дата1 И &Дата2";
	
	Запрос.УстановитьПараметр("Дата1", НачалоДня(ЭтотОбъект.НачалоПериода));
	Запрос.УстановитьПараметр("Дата2", КонецДня(ЭтотОбъект.КонецПериода));
	
	ТЗПокупок = Запрос.Выполнить().Выгрузить();
	
	//Установим НДС по документам из книги покупок
	
	Для Каждого Струк из ЭтотОбъект.Отчет Цикл
		ОтборНДС = Новый Структура;
		ОтборНДС.Вставить("ДокументРасчетов",Струк.ДокументРасчетов);
		ОтборНДС.Вставить("Контрагент",Струк.Контрагент);
		ОтборНДС.Вставить("ДоговорКонтрагента",Струк.Договор);
		
		МассНДС = ТЗПОкупок.НайтиСтроки(ОтборНДС);
		
		Если МассНДС.Количество() > 0 Тогда
			
			СтрМас1 = МассНДС.Получить(0);
			Струк.СтавкаНДС = СтрМас1.СтавкаНДС;
		КонецЕсли;
Показать


В первом запросе вытаскивает сумму Оборота (Общую сумму по документам)
Во втором вытягивает 3 строки и теряет третью строку как раз с недостающей суммой ндс

А вот как разбивает в книге покупок
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Drak0n 187 18.04.19 10:33 Сейчас в теме
Не понял что конкретно у Вас не работает.

Из того что заметил. 1 запрос:
- (рекомендация) пользуйтесь СхемаЗапроса;
- Отбор закиньте в параметры виртуальной таблицы;
- Зачем Вам ОстаткиИОбороты если используете только Обороты?
- Группируйте по Контрагент, Договор, ДокументРасчетов.

2 запрос
- Группируйте
- по 1 документу могут быть несколько ставок НДС
3. user973528 18.04.19 10:51 Сейчас в теме
(2)

Получается в 62 2 строки
А в 76 3, и он не может их сопоставить
Прикрепленные файлы:
4. Drak0n 187 18.04.19 11:31 Сейчас в теме
Повторюсь. По 1 документу могут быть несколько строк с записью в регистр НДСЗаписиКнигиПокупок

НайденныеСтроки= ТЗПОкупок.НайтиСтроки(ОтборНДС);
    
Если НайденныеСтроки.Количество() = 1 Тогда 
    Струк.СтавкаНДС = НайденныеСтроки[0].СтавкаНДС;  
Иначе НайденныеСтроки.Количество() > 1 Тогда 
    Для Каждого НайденнаяСтрока Из НайденныеСтроки Цикл
    // Отрабатываем вариант с несколькими строками
    КонецЦикла;
КонецЕсли;
Показать
5. user973528 18.04.19 22:22 Сейчас в теме
(4) не подскажите как вообще корректировки закрывать, если на 76.АВ только поступления на расчетный счёт?
Оставьте свое сообщение

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