Сумма по контрагенту за день.

1. Intercititude 25.03.20 10:25 Сейчас в теме
Доброе утро.
Необходимо получить сумму по контрагенту за день для документов "Заказ покупателя".

Корректно ли это(дата документа заказа покупателя и контрагент оттуда)? :
	Запрос2 = Новый запрос;
	Запрос2.Текст = "ВЫБРАТЬ
	|	РасчетыСКонтрагентамиОбороты.Контрагент,
	|	РасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
	|	РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаОборот
	|ИЗ
	|	РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, День, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты";
	
	Запрос2.УстановитьПараметр("Контрагент",Контрагент);
	Запрос2.УстановитьПараметр("ДатаНач",НачалоДня(Дата));
	Запрос2.УстановитьПараметр("ДатаКон",КонецДня(Дата));
	
	ВыборкаСуммаЗаДень = Запрос2.Выполнить().Выбрать();
	
	Пока ВыборкаСуммаЗаДень.Следующий() Цикл
		СуммаЗаДень = ВыборкаСуммаЗаДень.СуммаОборот;
	КонецЦикла;
Показать


Думаю,что по этому регистру делают движения много документов и это некорректно,как сделать правильнее?
+
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
18. Intercititude 25.03.20 12:45 Сейчас в теме
(17) Ну вот у меня так вышло. Вроде суммы верны теперь. Но как мне получить одну сумму,так как в итоге мне необходимо с ней играться будет.

ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.СуммаПоЗаказам) КАК СуммаПоЗаказам,
	СУММА(ВложенныйЗапрос.СуммаПоРеализациям) КАК СуммаПоРеализациям
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
		0 КАК СуммаПоРеализациям
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		0,
		ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОбороты
	ГДЕ
		ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. danjer74 3 25.03.20 10:52 Сейчас в теме
(1)"ВЫБРАТЬ
| РасчетыСКонтрагентамиОбороты.Контрагент,
| РасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
| РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаОборот
|ИЗ
| РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты ГДЕ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя". Примерно так по всем заказам контрагента за день.
Intercititude; +1
4. Intercititude 25.03.20 11:00 Сейчас в теме
(3)

Появился ещё вопрос,заказ покупателя же может быть связан с документом "Реализация товаров и услуг" и по идее же сумму из РТУ тоже надо учитывать ?
+
5. Intercititude 25.03.20 11:37 Сейчас в теме
(4) Не наверно,а да надо. А РТУ не делает движения по регистру "РасчетыСКонтрагентами". Как быть ?!
+
7. danjer74 3 25.03.20 11:51 Сейчас в теме
(5)ВзаиморасчетыСКонтрагентами
+
6. danjer74 3 25.03.20 11:50 Сейчас в теме
(4)Конструкция "ГДЕ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя" отсекает только по документам ЗаказаПокупателя. Здесь передается тип документа, а не ссылка на конкретный. добавьте в выборку Регистратор и увидите :)
+
8. danjer74 3 25.03.20 11:53 Сейчас в теме
(4)Делать объединением. Во второй выборке регистратор РТИУ с условием, что у них основания - заказы за выбранный период
+
9. Intercititude 25.03.20 12:07 Сейчас в теме
(8)Извините,не совсем понял этого. Где сделать условие на регистратор основание?

ВЫБРАТЬ
	РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК Сумма
ИЗ
	РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
ГДЕ
	РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
ИЗ
	РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОбороты
Показать
+
10. danjer74 3 25.03.20 12:13 Сейчас в теме
(9)
ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.СуммаПоЗаказам) КАК СуммаПоЗаказам,
	СУММА(ВложенныйЗапрос.СуммаПоРеализациям) КАК СуммаПоРеализациям
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
		0 КАК СуммаПоРеализациям
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		0,
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать

Как-то так. Два поля будет. Это без учета, что у реализаций есть основания - это по всем реализациям. Ваш вариант просто сумму покажет по этим документам.
+
11. Intercititude 25.03.20 12:22 Сейчас в теме
(10) СуммаПоРеализациям почему то 0. И Мне же нужна одна сумма только по идее. И как сделать чтобы учитывались основания рту ?
+
12. danjer74 3 25.03.20 12:34 Сейчас в теме
(11)
ВЫБРАТЬ
    СУММА(ВложенныйЗапрос.СуммаПоЗаказам) КАК СуммаПоЗаказам,
    СУММА(ВложенныйЗапрос.СуммаПоРеализациям) КАК СуммаПоРеализациям
ИЗ
    (ВЫБРАТЬ
        РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
        0 КАК СуммаПоРеализациям
    ИЗ
        РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
    ГДЕ
        РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        0,
        РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
    ИЗ
        РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
    ГДЕ
        РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать


У меня этот запрос норм отрабатывает. Вы правильно указваете инетрвал? Например: ДатаНач 01.01.2020 00:00:00, ДатаКон - 01.01.2020 23:59:59 Они в консоли могут меняться местами. Проверьте, пожалуйста. А еще как вариант - по контрагенту иожет не быть движений. :)
+
13. Intercititude 25.03.20 12:36 Сейчас в теме
(12) у Вас регистры одинаковые. В этом дело похоже.
+
14. danjer74 3 25.03.20 12:38 Сейчас в теме
(11)
ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.Сумма) КАК Сумма
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК Сумма
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать
это просто по реализациям и заказам
+
15. Intercititude 25.03.20 12:39 Сейчас в теме
(14)у меня РТУ вообще не делает движения по "РасчетыСКонтрагентами"
+
17. danjer74 3 25.03.20 12:40 Сейчас в теме
(15)Надо открыть любой документ реализации и посмотреть, где делаются движения
+
18. Intercititude 25.03.20 12:45 Сейчас в теме
(17) Ну вот у меня так вышло. Вроде суммы верны теперь. Но как мне получить одну сумму,так как в итоге мне необходимо с ней играться будет.

ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.СуммаПоЗаказам) КАК СуммаПоЗаказам,
	СУММА(ВложенныйЗапрос.СуммаПоРеализациям) КАК СуммаПоРеализациям
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК СуммаПоЗаказам,
		0 КАК СуммаПоРеализациям
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		0,
		ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОбороты
	ГДЕ
		ВзаиморасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать
+
19. danjer74 3 25.03.20 12:49 Сейчас в теме
(18)
ВЫБРАТЬ
	СУММА(ВложенныйЗапрос.Сумма) КАК Сумма
ИЗ
	(ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот КАК Сумма
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ЗаказПокупателя
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовОборот
	ИЗ
		РегистрНакопления.РасчетыСКонтрагентами.Обороты(&ДатаНач, &ДатаКон, Регистратор, Контрагент = &Контрагент) КАК РасчетыСКонтрагентамиОбороты
	ГДЕ
		РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ВложенныйЗапрос
Показать
Вот таким образом. Громоздко, но методолгически правильно :) Но здесь учитываются все заказы и все реализации. Их общая сумма.
+
21. Intercititude 25.03.20 12:53 Сейчас в теме
(19) Не пойму почему вы не используете регистр "ВзаиморасчетыСКонтрагентами". Рту делает движения по нему,по РасчетСКонтрагентами совсем не делает реализация.
+
22. danjer74 3 25.03.20 13:00 Сейчас в теме
(21)Ну, поправьте. Я на УПП смотрю - у меня делает :)
Intercititude; +1
20. danjer74 3 25.03.20 12:53 Сейчас в теме +0.3 $m
(18)Здесь у Вас нагляднее получается - отдельно заказы, отдельно реализации. Если надо будет, можно вычитать одну из другой или складывать. Но это уже в объектной модели, при обработке результата запроса.
Intercititude; +1
16. danjer74 3 25.03.20 12:39 Сейчас в теме
(11)Надо создать временную таблицу с заказами и при получении суммы по реализациям указать в условии, что основание В временная таблица
+
2. alex_bob 246 25.03.20 10:49 Сейчас в теме
Недостаточно данных. Если у вас в базе одна организация, один договор с контрагентом, не ведется учет по сделкам, то в принципе может случайно быть получен верный результат. В общем случае вы получите сумму из последней строки выборки.
+
Внимание! Тема сдана в архив

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