УТ 10.3. Как запросом получить неоплаченные заказы поставщику?

1. Aleksandr_prof 192 15.09.21 08:33 Сейчас в теме
На данный момент такая функция, которая почему-то отрабатывает некорректно (показывает также оплаченные заказы, и переплаченные, и неоплаченные в т. ч.). Я думаю из-за того, что по одному договору может быть несколько сделок.


&НаСервере
Функция ПолучитьНеоплаченныеЗаказыПоставщику()
	
	СписокДокументов = новый СписокЗначений;
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток,
	|	РасчетыСКонтрагентамиОстатки.Сделка
	|ИЗ
	|	РегистрНакопления.РасчетыСКонтрагентами.Остатки(, ДоговорКонтрагента = &ДоговорКонтрагента) КАК РасчетыСКонтрагентамиОстатки
	|ГДЕ
	|	РасчетыСКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток < 0";
	
	Запрос.УстановитьПараметр("ДоговорКонтрагента", Объект.ДоговорКонтрагента);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	РезультатЗапроса = РезультатЗапроса.Выгрузить();
	СписокДокументов.ЗагрузитьЗначения(РезультатЗапроса.ВыгрузитьКолонку("Сделка"));
	
	Возврат СписокДокументов;
	
КонецФункции
Показать
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. ZergKRSK 129 15.09.21 09:06 Сейчас в теме
(1) наверное надо смотреть не остаток, а приход денег по сделке.
4. ZergKRSK 129 15.09.21 09:15 Сейчас в теме +0.3 $m
(1) типа такого
ВЫБРАТЬ
	РасчетыСКонтрагентами.Сделка КАК Заказ,
	РасчетыСКонтрагентами.ДоговорКонтрагента КАК ЗаказДоговорКонтрагента,
	РасчетыСКонтрагентами.СуммаВзаиморасчетовРасход КАК Запланировано,
	РасчетыСКонтрагентами.СуммаВзаиморасчетовПриход КАК Оплачено
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентами.СуммаВзаиморасчетовПриход КАК СуммаВзаиморасчетовПриход,
		РасчетыСКонтрагентами.СуммаВзаиморасчетовРасход КАК СуммаВзаиморасчетовРасход,
		РасчетыСКонтрагентами.Сделка КАК Сделка,
		РасчетыСКонтрагентами.ДоговорКонтрагента КАК ДоговорКонтрагента
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(, &ДатаАнализа, , ДоговорКонтрагента = &ДоговорКонтрагента) КАК РасчетыСКонтрагентами
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		0,
		0,
		&Заказ,
		&ДоговорКонтрагента) КАК РасчетыСКонтрагентами
Показать
5. Aleksandr_prof 192 15.09.21 09:54 Сейчас в теме
(4) Кажется понял. Получается надо выбирать потом из этого те заказы, где "Оплачено" >= "Запланировано". Верно?
И ещё вопрос. Для чего нам второй запрос с объединением?
Прикрепленные файлы:
6. ZergKRSK 129 15.09.21 09:59 Сейчас в теме
(5) я привел пример для анализа одного заказа поставщику. Для списка заказов запрос ясно дело надо подрихтовать.
Если вы ищите полностью неоплаченные заказы то условие будет Оплачено = 0.
7. Aleksandr_prof 192 15.09.21 10:09 Сейчас в теме
(6) Точно, я не так написал условие. Частично оплаченные - это тоже для нас неоплаченные. Тогда получается "Оплачено" < "Запланировано".
8. ZergKRSK 129 15.09.21 10:11 Сейчас в теме
(7)
Тогда получается "Оплачено" < "Запланировано".

Да
2. user1582372 15.09.21 08:39 Сейчас в теме
Попробуй в запросе сделать отбор по неоплаченным заказам
9. starjevschik 15.09.21 10:18 Сейчас в теме
Если взаиморасчеты не "по заказам", то все это работать не будет.
Надо сначала уточнить условия задачи, потом делать...
10. ZergKRSK 129 15.09.21 10:26 Сейчас в теме
(9) ну раз он получает запросом Сделки то всё норм
Оставьте свое сообщение

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